Les Cross-Site Scripting (XSS) restent l'une des vulnérabilités web les plus communes et les plus souvent découvertes en audit, pentest ou Bug Bounty. Certaines peuvent sembler être des faux-positifs, où la réflexion est bien présente dans le DOM, mais hélas l'injection ne se déclenche pas en raison d'erreurs préalables dans le code source... Avant de déclarer forfait en tant qu’auditeur ou hunter, n’est-il pas possible de corriger/réparer le code légitime pour tout de même réussir l’injection ?
1. Introduction et contextualisation
1.1 Erreur de dev… Correction d’attaquant !
Combien de fois un pentester / bug-hunter a subit l’ascenseur émotionnel d’une réflexion DOM-based (sans possibilité de sortir du <script></script> courant) qui au final ne se déclenche pas, car le code JavaScript légitime qui préfixe l’injection sur la page comporte des erreurs ?
Un exemple vaut mieux qu’un long discours :
Dans cet exemple, une réflexion est décelée au niveau d’INJECTION. Un attaquant cherchera à démontrer la présence d’une XSS via l’usage d’une charge utile (payload) telle que ";alert(document.domain);//.
Cependant, cette injection XSS ne se déclenchera jamais en...
- 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