Bypass avec octet nul et validation d’extension
File path traversal, validation of file extension with null byte bypass
Ce laboratoire présente une vulnérabilité de path traversal lors de l'affichage des images produits. L’application vérifie que le nom de fichier fourni se termine bien par l’extension attendue.
L’objectif est de lire le contenu du fichier /etc/passwd.
Analyse
Si l’on fournit directement le chemin
l’application retourne une erreur, car elle exige que le fichier possède l’extension .jpg.
Dans les anciennes versions de PHP (avant 5.3.4), il était possible d’exploiter un octet nul (%00) pour contourner cette validation : le moteur PHP arrêtait la lecture du nom de fichier au niveau du null byte, tandis que l’application continuait d’y voir une extension valide.

Payload
On ajoute donc un null byte avant l’extension :
Le navigateur interprète toujours « .jpg », mais PHP s’arrête à « /etc/passwd », ce qui permet de lire le fichier sensible.

Mis à jour
Ce contenu vous a-t-il été utile ?