Voici un astuce pour exploiter une vulnérabilité d’inclusion de fichiers LFI (local file inclusion) sur un serveur PHP qui vous permet de téléverser des fichiers. Il arrive souvent que certains types de fichiers sont bloqués pour le téléversement. Il faut donc trouver des solutions pour l’exploitation. Voici donc comment exploiter php avec un fichier zip.
- Se créer un fichier php avec du code (rce.php)
- Compresser ce fichier dans un archive zip (file.zip)
- Téléverser ce fichier sur le serveur via un script trouvé sur le serveur
- Utiliser le RCE avec http://127.0.0.1/vuln.php?page=zip://path/file.zip%23rce.php
Exemple de fichiers php (payload)
<?php phpinfo(); ?>

Comment exploiter si un fichier zip n’est pas autorisé
Vous pouvez bien sûr recommer le fichier en .jpg si le serveur n’accepte que des jpg -> http://127.0.0.1/vuln.php?page=zip://avatars/myavi.jpg%23rce (chemin relatif) ou http://127.0.0.1/vuln.php?page=zip:///Library/WebServer/Documents/avatars/myavi.jpg%23rce (chemin complet)
À noter que le script va ajouter .php automatiquement -> rce.php
Voilà! C’était ma méthode pour exploiter php avec un fichier zip. Je vous recommande la lecture de mon article sur les vulnérabilités d’inclusion de fichier local et distant (LFI et RFI) pour une meilleure compréhension globale.
Comment se défendre
Les vulnérabilités de type LFI (Local File Inclusion) sur un serveur en PHP permettent à un attaquant d’accéder à des fichiers locaux du serveur en exploitant des erreurs de configuration de l’application ou des vulnérabilités dans le code PHP. En utilisant des techniques telles que l’inclusion de chemin relatif ou absolu, les attaquants peuvent accéder à des fichiers sensibles tels que des fichiers de configuration, des fichiers de sauvegarde ou même des fichiers système, ce qui peut entraîner une compromission complète du serveur. Pour protéger contre ces vulnérabilités, il est important de mettre en place des mesures de sécurité telles que la validation stricte des entrées utilisateur, la configuration correcte de l’application et la limitation des droits d’accès aux fichiers et dossiers du serveur.
Autres ressources
- /proc/self/neviron
- php://input
- journaux d’accès (log)