OWASP WebGoat:DOM Injection

From aldeid
Jump to navigation Jump to search

DOM Injection

Cet exercice propose un formulaire d'activation d'un produit avec un numéro de licence. Le bouton "Activate" ne devient opérant que lorsque le numéro de série saisi est valide. Pourtant, la désactivation du bouton "Activate" n'est assurée que par la propriété HTML "disabled", dont il est aisé de s'affranchir, en modifiant le corps de la page.

La consultation de la source HTML de la page nous indique que le bouton "Activate" se nomme "SUBMIT" est est contenu dans l'unique formulaire. Pour accéder à l'élément par le DOM, on fait appel à la chaîne "document.forms[0].SUBMIT". Il suffit d'y ajouter ".disabled=false" pour annuler la propriété "disabled" initialement prévue.

Pour ce faire, utiliser WebScarab afin d'intercepter le chargement du formulaire (cocher "Intercept responses"), puis insérer le contenu suivant à la fin de la page. Cliquer sur "Accept changes" pour rendre le bouton "Activate" actif.

^ Bouton "Validate" désactivé ^ Bouton "Validate" activé par injection d'un script

Il ne vous reste plus qu'à appuyer sur le bouton "Activate" et le tour est joué!

Note
La méthode utilisée ici n'avait de finalité que de vous expliquer comment accéder aux propriétés d'un objet par le DOM. L'exercice aurait également pu être résolu est supprimant directement la propriété "disabled" du champ "key" avec WebScarab.