# Dangling Markup - HTML scriptless injection {{#include ../../banners/hacktricks-training.md}} ## Resumo Esta técnica pode ser usada para extrair informações de um usuário quando uma **injeção de HTML é encontrada**. Isso é muito útil se você **não encontrar nenhuma maneira de explorar um** [**XSS** ](../xss-cross-site-scripting/index.html)mas você pode **injetar algumas tags HTML**.\ Também é útil se algum **segredo estiver salvo em texto claro** no HTML e você quiser **exfiltrá-lo** do cliente, ou se você quiser enganar alguma execução de script. Várias técnicas comentadas aqui podem ser usadas para contornar algumas [**Content Security Policy**](../content-security-policy-csp-bypass/index.html)exfiltrando informações de maneiras inesperadas (tags html, CSS, tags meta http, formulários, base...). ## Principais Aplicações ### Roubo de segredos em texto claro Se você injetar `` tag. Todas as informações serão enviadas até que a citação seja fechada, mas isso requer alguma interação do usuário (o usuário deve clicar em algum link, porque a tag base terá mudado o domínio apontado pelo link): ```html test ``` ### Roubo de formulários ```html ``` Então, os formulários que enviam dados para o caminho (como `
`) enviarão os dados para o domínio malicioso. ### Roubo de formulários 2 Defina um cabeçalho de formulário: `` isso irá sobrescrever o próximo cabeçalho de formulário e todos os dados do formulário serão enviados para o atacante. ### Roubo de formulários 3 O botão pode mudar a URL para onde as informações do formulário serão enviadas com o atributo "formaction": ```html ``` Um atacante pode usar isso para roubar as informações. Encontre um [**exemplo deste ataque neste relatório**](https://portswigger.net/research/stealing-passwords-from-infosec-mastodon-without-bypassing-csp). ### Roubo de segredos em texto claro 2 Usando a técnica mencionada mais recente para roubar formulários (injetando um novo cabeçalho de formulário), você pode então injetar um novo campo de entrada: ```html `. Todos os dados até que um `` fechado seja encontrado serão enviados: ```html Click Me ← Injected lines ← Existing form (ignored by the parser) ... ← Subverted field ... ...
``` ### Roubo de segredos em texto claro via noscript `` É uma tag cujo conteúdo será interpretado se o navegador não suportar javascript (você pode ativar/desativar Javascript no Chrome em [chrome://settings/content/javascript](chrome://settings/content/javascript)). Uma maneira de exfiltrar o conteúdo da página da web do ponto de injeção até o fundo para um site controlado pelo atacante será injetar isso: ```html