8.2 KiB
DOM Invader
Aprenda hacking no AWS do zero ao herói com htARTE (HackTricks AWS Red Team Expert)!
Outras formas de apoiar o HackTricks:
- Se você quer ver sua empresa anunciada no HackTricks ou baixar o HackTricks em PDF, confira os PLANOS DE ASSINATURA!
- Adquira o material oficial PEASS & HackTricks
- Descubra A Família PEASS, nossa coleção de NFTs exclusivos
- Junte-se ao grupo 💬 Discord ou ao grupo telegram ou siga-me no Twitter 🐦 @carlospolopm.
- Compartilhe suas técnicas de hacking enviando PRs para os repositórios do GitHub HackTricks e HackTricks Cloud.
DOM Invader
DOM Invader é uma ferramenta de navegador instalada no navegador integrado do Burp. Ela auxilia na detecção de vulnerabilidades DOM XSS usando várias fontes e sumidouros, incluindo mensagens web e poluição de protótipo. A ferramenta já vem pré-instalada como uma extensão.
DOM Invader integra uma aba dentro do painel DevTools do navegador, possibilitando o seguinte:
- Identificação de sumidouros controláveis em uma página web para testes de DOM XSS, fornecendo contexto e detalhes de sanitização.
- Registro, edição e reenvio de mensagens web enviadas pelo método
postMessage()
para testes de DOM XSS. DOM Invader também pode detectar vulnerabilidades automaticamente usando mensagens web especialmente criadas. - Detecção de fontes de poluição de protótipo do lado do cliente e varredura de gadgets controláveis enviados a sumidouros arriscados.
- Identificação de vulnerabilidades de DOM clobbering.
Ative-o
No navegador integrado do Burp, vá até a extensão Burp e ative-a:
Agora atualize a página e, no Dev Tools, você encontrará a aba DOM Invader:
Injete um Canary
Na imagem anterior, você pode ver um grupo aleatório de caracteres, que é o Canary. Agora você deve começar a injetá-lo em diferentes partes da web (parâmetros, formulários, URL...) e cada vez clicar para pesquisá-lo. DOM Invader verificará se o canary terminou em algum sumidouro interessante que poderia ser explorado.
Além disso, as opções Inject URL params e Inject forms abrirão automaticamente uma nova aba injetando o canary em cada parâmetro de URL e formulário encontrado.
Injete um Canary vazio
Se você apenas quer encontrar potenciais sumidouros que a página possa ter, mesmo que não sejam exploráveis, você pode procurar por um canary vazio.
Mensagens Post
DOM Invader permite testar para DOM XSS usando mensagens web com recursos como:
- Registro de mensagens web enviadas via
postMessage()
, semelhante ao registro de histórico de requisições/respostas HTTP do Burp Proxy. - Modificação e reemissão de mensagens web para testar manualmente para DOM XSS, similar à função do Burp Repeater.
- Alteração automática e envio de mensagens web para sondagem de DOM XSS.
Detalhes da mensagem
Você pode clicar em cada mensagem para ver mais informações detalhadas sobre ela, incluindo se as propriedades origin
, data
ou source
da mensagem são acessadas pelo JavaScript do lado do cliente.
origin
: Se a informação de origem da mensagem não for verificada, você pode ser capaz de enviar mensagens cross-origin para o manipulador de eventos de um domínio externo arbitrário. Mas se for verificada, ainda pode ser insegura.data
: Aqui é onde o payload é enviado. Se esses dados não forem usados, o sumidouro é inútil.source
: Avalia se a propriedade source, geralmente referenciando um iframe, é validada em vez da origem. Mesmo que isso seja verificado, não garante que a validação não possa ser contornada.
Responder a uma mensagem
- Na visualização Messages, clique em qualquer mensagem para abrir o diálogo de detalhes da mensagem.
- Edite o campo Data conforme necessário.
- Clique em Send.
Poluição de Protótipo
DOM Invader também pode procurar por vulnerabilidades de Poluição de Protótipo. Primeiro, você precisa ativá-la:
Então, ele irá procurar por fontes que permitam adicionar propriedades arbitrárias ao Object.prototype
.
Se algo for encontrado, um botão Test aparecerá para testar a fonte encontrada. Clique nele, uma nova aba aparecerá, crie um objeto no console e verifique se a testproperty
existe:
let b = {}
b.testproperty
Uma vez que você encontrou uma fonte, você pode procurar por um gadget:
- Na visualização DOM, clique no botão Scan for gadgets ao lado de qualquer fonte de poluição de protótipo que o DOM Invader encontrou. O DOM Invader abre uma nova aba e começa a procurar por gadgets adequados.
- Na mesma aba, abra a aba DOM Invader no painel DevTools. Uma vez que a varredura esteja concluída, a visualização DOM exibe quaisquer sinks que o DOM Invader conseguiu acessar através dos gadgets identificados. No exemplo abaixo, uma propriedade de gadget chamada
html
foi passada para o sinkinnerHTML
.
DOM clobbering
Na imagem anterior é possível ver que a varredura de DOM clobbering pode ser ativada. Uma vez feito, o DOM Invader começará a procurar por vulnerabilidades de DOM clobbering.
Referências
- https://portswigger.net/burp/documentation/desktop/tools/dom-invader
- https://portswigger.net/burp/documentation/desktop/tools/dom-invader/enabling
- https://portswigger.net/burp/documentation/desktop/tools/dom-invader/dom-xss
- https://portswigger.net/burp/documentation/desktop/tools/dom-invader/web-messages
- https://portswigger.net/burp/documentation/desktop/tools/dom-invader/prototype-pollution
- https://portswigger.net/burp/documentation/desktop/tools/dom-invader/dom-clobbering
Aprenda hacking em AWS do zero ao herói com htARTE (HackTricks AWS Red Team Expert)!
Outras formas de apoiar o HackTricks:
- Se você quer ver sua empresa anunciada no HackTricks ou baixar o HackTricks em PDF, confira os PLANOS DE ASSINATURA!
- Adquira o merchandising oficial do PEASS & HackTricks
- Descubra A Família PEASS, nossa coleção de NFTs exclusivos
- Junte-se ao grupo 💬 Discord ou ao grupo telegram ou siga-me no Twitter 🐦 @carlospolopm.
- Compartilhe suas técnicas de hacking enviando PRs para os repositórios github HackTricks e HackTricks Cloud.