Writeup du Dojo #22 de YesWeHack — DOM Clobbering sur le challenge Butters Adventure v2.

Description

Le DOM Clobbering se produit quand du HTML injecté crée des éléments DOM qui masquent des fonctions ou variables JavaScript natives, perturbant la logique applicative.

Exploitation

Le payload injecte une balise <img> avec name="getElementById", ce qui fait que document.getElementById retourne l’élément HTML au lieu de la fonction native. Quand le script tente de l’appeler, une TypeError est levée — c’est le déclencheur de la solution.

Payload :

"></input><img name="getElementById">

Mécanisme :

  1. On échappe le champ input avec ">
  2. On crée un élément nommé getElementById
  3. document.getElementById devient l’élément HTML
  4. L’appel échoue → exception capturée → flag

Mitigation

← retour aux articles