Ich schaute heute wieder mal auf pdp’s Blog vorbei und entdeckte dabei diesen recht interessanten Ansatz, um XSS Attacken zu entdecken.
Er sammelt Code Snippets fuer weitere Moeglichkeiten, also wenn ihr etwas habt dann könnt ihr es ihm dort senden GNUCITIZEN
Die Idee hinter dem ersten Snippet ist, die alert() Methode mit einer eigenen Definition zu überschreiben und jeden Aufruf dieser Methode zu loggen, da diese in Livesystem eigentlich nicht zum Einsatz kommt, maximal für Debugging und damit wahrscheinlich wirklich nur durch einen Angreifer genutzt wird, eine gute Idee.
Da Angreifer diese Methode meistens zum testen von XSS Lücken nutzen, wie man unschwer an den alert() basierten PoC’s sehen kann. Einfach mal bei Google nach alert() basierten PoC’s suchen.
Wenn der Angreifer nun damit Vektoren ausprobiert, wissen wir das jemand etwas gefunden hat und euer Logger-Script gibt euch dann den Rest der Informationen die ihr benötigt.
Hier der Code:
var old_alert = alert;
alert = function(a) {
var img = new Image();
img.src = 'http://the/uri/to/your/logger/file';
img.style.height = 0;
img.style.width = 0;
document.body.appendChild(img);
old_alert(a);
return false;
}
Bitte wiegt euch damit nicht in Sicherheit und lasst euch kein Falsches Gefühl der Sicherheit vermitteln, so einfach wie es ist, so einfach kann es auch umgangen werden, es stellt maximal eine Variante dar um Script Kiddies zu entdecken usw. Genauso kann der Logger mit false positives überflutet werden.
- The first snippet – overwrite alert() with a logger von Mario Heiderich
