# Dangling Markup - HTML scriptless injection {{#include ../../banners/hacktricks-training.md}} ## Resume This technique can be use to extract information from a user when an **HTML injection is found**. This is very useful if you **don't find any way to exploit a** [**XSS** ](../xss-cross-site-scripting/index.html)but you can **inject some HTML tags**.\ It is also useful if some **secret is saved in clear text** in the HTML and you want to **exfiltrate** it from the client, or if you want to mislead some script execution. Several techniques commented here can be used to bypass some [**Content Security Policy**](../content-security-policy-csp-bypass/index.html) by exfiltrating information in unexpected ways (html tags, CSS, http-meta tags, forms, base...). ## Main Applications ### Stealing clear text secrets If you inject `test ``` ### Stealing forms ```html ``` Then, the forms that send data to path (like `
`) will send the data to the malicious domain. ### Stealing forms 2 Set a form header: `` this will overwrite the next form header and all the data from the form will be sent to the attacker. ### Stealing forms 3 The button can change the URL where the information of the form is going to be sent with the attribute "formaction": ```html ``` An attacker can use this to steal the information. Find an [**example of this attack in this writeup**](https://portswigger.net/research/stealing-passwords-from-infosec-mastodon-without-bypassing-csp). ### Stealing clear text secrets 2 Using the latest mentioned technique to steal forms (injecting a new form header) you can then inject a new input field: ```html ` tag. All the data until a closed `` is found will be sent: ```html Click Me ← Injected lines ← Existing form (ignored by the parser) ... ← Subverted field ... ...
``` ### Stealing clear text secrets via noscript `` Is a tag whose content will be interpreted if the browser doesn't support javascript (you can enable/disable Javascript in Chrome in [chrome://settings/content/javascript](chrome://settings/content/javascript)). A way to exfiltrate the content of the web page from the point of injection to the bottom to an attacker controlled site will be injecting this: ```html