Skip to the content.

Q1

On fait un scan des ports et on obtient la réponse à la première question, il n’y a que 2 ports ouverts en tcp.

Q2

On doit maintenant accéder au site web. Une fois le zip téléchargé on voit que l’application qui tourne est tomcat.

Q3

On doit maintenant chercher le nom du fichier qui contient le nom des dépendances de l’application.

Il se trouve qu’il existe un fichier pom.xml qui contient justement ce genre d’infos.

Q4

En listant les dépendances on trouve justement apache struts qui est une dépendance de framework MVC.

Q5

On doit maintenant découvrir la version de la dépendance, il se trouve que cette dépendance est importée en utilisant le template ${struts2.versions}. Il nous faut donc énumérer les fichiers. On continue à énumérer les fichier et on voit le fichier jar de configuration de struts et on y trouve la version.

ls strutted/target/strutted-1.0.0/WEB-INF/lib

Q6

Pour cette question on ne trouve aucun exploit pour cette librairie sur exploitDB, en revanche la recherche “struts 6.3.0.1 exploit” nous donne quelques résultats, on trouve notamment une cve de file upload: CVE-2024-53677.

Q7

On trouve un exploit en ligne qui nous permet d’exécuter une commande (il se trouve que l’exploit a été développé pour cette box spécifiquement).

https://github.com/Cythonic1/CVE-2024-53677-POC.git

On trouve aussi un guide de l’exploitation (bon il ne faut pas aller trop loin, c’est aussi un guide pour ) https://medium.com/@qinncade/strutted-htb-walkthrough-31bd09097eb0

On prend le webshell que l’on voit et on l’ajoute à la photo en laissant quand même un début de données. Au début de nos données on modifie le “upload” en “Upload” et à la fin on ajoute un content-separator pour ajouter un header.

------geckoformboundaryec386a111f5fe25c16553aacde672d5
Content-Disposition: form-data; name="Upload"; filename="cat.png"
Content-Type: image/png

‰PNG

   
IHDR  h      °€
>