Comment démontrer une exploitation de extract($_POST)?

Je suis pas un développeur PHP mais je suis évaluation de la sécurité d'une application PHP5.

L'auteur a invoqué extract($_POST) et extract($_GET) dans certains endroits, en dehors des fonctions.

Ma suggestion est d'appeler extract($_POST, EXTR_PREFIX_ALL, 'form') et de modifier le code en conséquence, mais sa position est que toute variable est en train d'être redéfini à l'intérieur ultérieure comprend de toute façon.

Je peux facilement changer les superglobales en fournissant, par exemple, _ENV=something à l'intérieur du poste de valeurs, mais les superglobales sont des tableaux et je suis à la transformer en des chaînes, je ne suis pas sûr que ça peut avoir de mauvais effets.

Je pouvais avoir un coup d'oeil à la plusieurs isset() utilise et revenir en arrière à partir de là.. mais j'imagine qu'il y a des attaques de ce genre qui ne nécessitent pas de connaissances ou de divination de la source.

Est-il intéressant de la variable à définir/changé, peut-être dans les entrailles de PHP?

Grâce

La seule chose qui vient à l'esprit est d'écraser une superglobale de cette façon (c'est à dire la définition d'un tableau nommé _SERVER à l'intérieur de $_POST et de l'extraction que dans l'espace mondial). Est-ce possible? Il va remplacer $_SERVER? Probablement pas (je l'espère). Je vais essayer un peu de temps.
Oui, il a travaillé avec _ENV au moins. Fournir EXTR_SKIP permettrait de résoudre ce problème.
(suggestion) en Utilisant Suhosin évite d'écraser des Superglobales et contribue à atténuer les vecteurs d'attaque.

OriginalL'auteur Marco Mariani | 2010-10-01