Outils d'utilisateurs

Outils du Site


failles_web:xss

Différences

Cette page vous donne les différences entre la révision choisie et la version actuelle de la page.

Lien vers cette vue

failles_web:xss [2012/06/18 20:05]
Xartrick [Cas rare]
failles_web:xss [2017/04/09 15:33] (Version actuelle)
Ligne 89: Ligne 89:
 Vous êtes maintenant protégé ! Vous êtes maintenant protégé !
  
-====Cas rare====+====Cas particulier==== 
 +=== Bypass de htmlentities($input, ENT_QUOTES) ===
  
 <file PHP unsecure.php> <file PHP unsecure.php>
Ligne 106: Ligne 107:
  
 Ceci affichera bien un « 1 ». Ceci affichera bien un « 1 ».
 +Ceci est en faite dû aux évènements HTML.
 +
 +=== Le cas de PHP_SELF ===
 +
 +<file PHP unsecure_form.php>
 +    <form method="POST" action="<?php echo $_SERVER[PHP_SELF] ?>">
 +       ...
 +    </form>
 +</file>
 +
 +$_SERVER[PHP_SELF] a pour valeur le nom du script courant, ainsi de nombreux développeurs l'utilisent dans leurs formulaires : si ils modifient le nom du fichier, inutile de toucher au code.
 +Seulement si on interroge la page suivante :
 +<file>www.monsite.fr/form.php/"><script>alert("Zenk Security");</script><foo </file>
 +Le code s’exécutera coté client, '<foo' est utilisé en fin d'url afin de ne pas laisser le chevron de fermeture de 'form' au milieu de la page.
 +
 +Pour pallier au problème, il suffit d'utiliser à la place le code suivant :
 +<file PHP>echo htmlentities($_SERVER['PHP_SELF']);</file>
failles_web/xss.1340042744.txt.gz · Dernière modification: 2017/04/09 15:33 (modification externe)