OWASP WebGoat:Silent Transactions Attacks

From aldeid
Jump to navigation Jump to search

Silent Transactions Attacks

L'objectif de cette leçon est double. Vous montrer :

  • que la seule validation des données au niveau client (JavaScript) peut facilement être contournée.
  • que l'ordre d'appel de plusieurs fonctions JavaScript peut être inversé par un attaquant.
Note
La validation des données peut être effectuée en amont à condition d'être doublée en aval, sur le serveur.

Le but est ici de transférer sur un compte un montant plus important que les fonds disponibles sur la source.

L'étude du code source nous apprend que le fonctionnement est le suivant :

Comme on peut le constater, la fonction submitData() n'est appelée que lorsque tous les tests préliminaires sont remplis. Or, ce qui est demandé ici consiste justement à s'en affranchir. Pour ce faire, il est possible (tous les navigateurs récents prennent en charge cette fonctionnalité) d'appeler directement dans l'URL la fonction JavaScript comme suit :

La fonction attend deux paramètres, respectivement :

  • Le numéro de compte : 1234556
  • Le montant de la transaction : 11000