Les vulnérabilités XSS, omniprésentes et très communément remontées lors d’audits de sécurité, pentests et Bug Bounty, restent mal considérées et sous-évaluées. Les protections et spécificités des navigateurs modernes ainsi que les contre-mesures applicatives complexifient la conception de payloads génériques. Cet article vise à présenter la dissection d’un payload dans un contexte (très) contraint et filtré rencontré lors d’un audit.
1. Introduction et contextualisation
L’injection de code JavaScript arbitraire côté client, au travers d’une réflexion (Reflected-XSS) ou du stockage persistant (Stored-XSS) de la charge utile au sein d’un applicatif web, reste depuis maintes années l’une des faiblesses les plus communément observées et remontées par les chasseurs de vulnérabilités.
Les XSS permettent de compromettre le contexte de navigation des victimes. Ce sont des vulnérabilités qui impactent le côté client (et non pas l’applicatif côté serveur). Les réelles victimes sont en conséquence les internautes, visiteurs, utilisateurs d’un site web, et non pas le site web lui-même qui n’est que le vecteur de transmission de la XSS.
La traditionnelle fonction « alert(1) » suffit amplement à prouver l’exploitabilité d’une XSS dans 99 % des cas. Tout auditeur, pentesteur ou bug hunter se limite à déclencher une alertbox afin de justifier la présence d’une telle...
- Accédez à tous les contenus de Connect en illimité
- Découvrez des listes de lecture et des contenus Premium
- Consultez les nouveaux articles en avant-première
[REN] RenwaX23, XSS-Payloads Without Parentheses, https://github.com/RenwaX23/XSS-Payloads
[POR] Portswigger, Cross-site scripting (XSS) cheat sheet,
https://portswigger.net/web-security/cross-site-scripting/cheat-sheet
[GA1] Garethheyes, How to abuse throw and onerror on Firefox,
https://twitter.com/garethheyes/status/1126526480614416395
[GA2] Garethheyes, Another way to use throw without a semi-colon,
https://twitter.com/garethheyes/status/1126922526796468224
[TOM] TomAnthony, XSS attackers Googlebot index manipulation,
http://www.tomanthony.co.uk/blog/xss-attacks-googlebot-index-manipulation/
[BEE] BeEF, The Browser exploitation framework project, https://beefproject.com/
[MIS] Yann CAM, « pfSense : obtention d’un reverse-shell root à partir d’une XSS », MISC n°94, novembre 2017, https://connect.ed-diamond.com/MISC/misc-094/pfsense-obtention-d-un-reverse-shell-root-a-partir-d-une-xss
[STA] StackOverflow, How to detect Safari, Chrome, IE, Firefox and Opera browsers?,
https://stackoverflow.com/questions/9847580/how-to-detect-safari-chrome-ie-firefox-and-opera-browsers