# Dangling Markup - Injeção HTML sem script
☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥 * Você trabalha em uma **empresa de cibersegurança**? Você quer ver sua **empresa anunciada no HackTricks**? ou você quer ter acesso à **última versão do PEASS ou baixar o HackTricks em PDF**? Verifique os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)! * Descubra [**A Família PEASS**](https://opensea.io/collection/the-peass-family), nossa coleção exclusiva de [**NFTs**](https://opensea.io/collection/the-peass-family) * Adquira o [**swag oficial do PEASS & HackTricks**](https://peass.creator-spring.com) * **Junte-se ao** [**💬**](https://emojipedia.org/speech-balloon/) [**grupo Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo telegram**](https://t.me/peass) ou **siga-me** no **Twitter** [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.** * **Compartilhe suas técnicas de hacking enviando PRs para o** [**repositório hacktricks**](https://github.com/carlospolop/hacktricks) **e para o** [**repositório hacktricks-cloud**](https://github.com/carlospolop/hacktricks-cloud).
## Resumo Essa técnica pode ser usada para extrair informações de um usuário quando uma **injeção HTML é encontrada**. Isso é muito útil se você **não encontrar nenhuma maneira de explorar um** [**XSS**](../xss-cross-site-scripting/), mas você pode **injetar algumas tags HTML**.\ Também é útil se algum **segredo estiver salvo em texto claro** no HTML e você quiser **extrair** isso do cliente, ou se você quiser enganar a execução de algum script. Várias técnicas comentadas aqui podem ser usadas para contornar algumas [**Políticas de Segurança de Conteúdo**](../content-security-policy-csp-bypass/) exfiltrando informações de maneiras inesperadas (tags html, CSS, http-meta tags, formulários, base...). ## Principais Aplicações ### Roubo de segredos em texto claro Se você injetar `test ``` ### Roubo de formulários Nesta técnica de injeção de script sem marcação, exploramos uma vulnerabilidade conhecida como "dangling markup" (marcação pendente) para roubar informações de formulários em um site. #### Como funciona? 1. Identifique um site vulnerável que possua formulários interativos. 2. Procure por páginas que possuam código HTML malformado ou incompleto. 3. Verifique se há tags de abertura de formulário `
` sem a correspondente tag de fechamento `
`. 4. Insira um código JavaScript malicioso dentro da tag `
`, aproveitando-se da vulnerabilidade de marcação pendente. 5. O código JavaScript injetado pode ser usado para capturar informações inseridas pelos usuários nos campos do formulário, como senhas, endereços de e-mail, números de telefone, etc. 6. As informações capturadas podem ser enviadas para um servidor controlado pelo atacante ou armazenadas em um arquivo para uso posterior. #### Medidas de proteção Para proteger seu site contra esse tipo de ataque, siga estas práticas recomendadas: - Certifique-se de que todas as tags HTML sejam fechadas corretamente. - Valide e sanitize todos os dados de entrada recebidos dos usuários. - Implemente mecanismos de detecção de código malicioso e bloqueie qualquer tentativa de injeção de script. - Mantenha seu software e frameworks atualizados para corrigir quaisquer vulnerabilidades conhecidas. Lembre-se de que a segurança do seu site é uma responsabilidade contínua. Fique atento a possíveis vulnerabilidades e aplique as medidas de proteção adequadas. ```markup ``` Então, os formulários que enviam dados para um 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 do formulário e todos os dados do formulário serão enviados para o atacante. ### Roubo de formulários 3 O botão pode alterar a URL para onde as informações do formulário serão enviadas com o atributo "formaction": ```markup