Don't Learn to Hack but Hack to Learn ***** Apprendre l'attaque pour mieux se défendre

dimanche 5 août 2012

Faille Upload

La faille Upload :
 

1. Définition :

L’upload permet le transfert de fichiers (des images, des documents PDF et autres), depuis votre machine vers un site web qui est le serveur, mais souvent les scripts d’upload contiennent des vulnérabilités car les développeurs oublient  Souvent de vérifier et valider les types des fichiers téléchargés vers le serveur.

2. Comment l'exploiter ?


Cette faille peut être exploitée de différentes manières.

2.1.    Certains scripts d'uploads ne vérifient pas l'extension des fichiers, donc nous pouvons uploader  n’importe quel fichier. (Shell etc)

2.2.    Contournement de la vérification de l’extension de fichier

Avant de l'envoie de notre script php « fichier.php » on doit d’abord modifier son extension en extension image  « fichier.jpg » par exemple.
Lors de l'envoie de ce dernier, pendant que le serveur vérifie l'extension de notre fichier « fichier.jpg » nous pouvons modifier tout simplement le « fichier.jpg »en « fichier.php » dans l'en-tête Content-type, le script comprendra qu'il s'agit d'une image alors que c'est un script php.

2.3.    Contournement de la vérification du contenu du fichier image

Possibilité de tromper la vérification encore une foi, cette fois ci, le script ne vérifie pas les extensions, mais seulement la 1ere ligne du fichier afin de vérifier si le fichier est une image.
Généralement dans les images gif par exemple, la 1ere ligne est "GIF89a;", il vous suffit d'ajouter cette ligne à votre script php, et le serveur considérera votre script comme une image

cas pratique:
voire ce video

3. Solutions de Fille Upload :
La meilleure stratégie pour se protéger conter la faille upload est de limiter la capacité des attaquants afin d'appeler des fichiers de vue de leur emplacement de uploade. Par exemple, les fichiers doivent être uploadés à des répertoires qui existent en dehors de la voie d'application. Cela signifie que le fichier peut toujours être lu par le serveur web, mais ne peut jamais être appelé directement par un attaquant via une URL spécifique.

Donc il faut interdire un attaquant d’appeler les fichiers uploadés
cas pratique:
voire ce video

Aucun commentaire:

Enregistrer un commentaire