# HACKTHEBOX REDPANDA - WriteUp # ``` Auteur: Abdellah EL ASRI Date: 22/09/2022 ``` --- # Infos HTB IP:10.10.11.170 # # Enumération des services # Pour avoir des informations sur la machine cible et les ports ouverts ainsi que les services et leurs versions. J'utilise un scanneur de ports nmap avec la commande suivante: ``` nmap -sS -sV -O -p- 10.10.11.170 ``` * 22 ssh * 8080 http-server (Spring boot) fichier nmap1.txt # Http-sever Dans un premier temps je lance une énumération web avec dirbuster pour savoir les pages et les répertoires de mon site: J'ouvre le site : http://10.10.11.170:8080 ![](https://i.imgur.com/2WYQYr2.png) Je saisi une lettre au hasard dans la barre de recherche d'obtiens la page suivante: ![](https://i.imgur.com/vAUxMPF.png) J'ai déjà deux auteurs: * woodenk * damien Je cherche un panda avec son nom, j'obtiens la page suivante: ![](https://i.imgur.com/c9EoSi8.png) On parle d'injections: Quel type d'injections ? Du coté du dirbuster, j'ai une page /stats/ ![](https://i.imgur.com/B1IMwtn.png) ![](https://i.imgur.com/0iGwjY8.png) Chaque lien renvoie sur une page avec les statistiques des images de chaque auteur. ![](https://i.imgur.com/TLHVO5O.png) ## Recheche de vulnérabilités ## Puisque le site web utilise le framework SpringBoot, je regarde sur internet pour des CVE. Il existe une vulnérabilité mais malheureusement on a pas les conditions pour l'exploiter. [CVE-2022-22965 ](https://www.kaspersky.com/blog/spring4shell-critical-vulnerability-in-spring-java-framework/44034/) ## SSTI Injections ## J'ai testé des injections sql, XSS, Injection commande J'utilise le github suivant: [PayloadsAllTheThings](https://github.com/swisskyrepo/PayloadsAllTheThings) ![](https://i.imgur.com/3tBCaX3.png) Le texte mis dans le template #{} est exécuté. Il s'agit donc d'une injection SSTI. [SSTI](https://)https://www.acunetix.com/blog/web-security-zone/exploiting-ssti-in-thymeleaf/ J'execute le commande suivante pour lister les fichiers de mon serveur. ${T(java.lang.Runtime).getRuntime().exec('....')} ![](https://i.imgur.com/QZjZIcV.png) Certains carcatères ne sont pas autorisés. Je modifie ma commande pour contourner ce problème. ![](https://i.imgur.com/CQW6NC3.png) Un processus est crée, ma commande s'execute. Je peux donc faire du reverse shell # Reverse shell # 1. Je génère un reverse shell avec [Reverse Shell generator](https://www.revshells.com/) 2. Je crée un serveur http avec python3![](https://i.imgur.com/XFvjKil.png) 3. Je télécharge mon reverse shell sur la cible ![](https://i.imgur.com/6PuRmZP.png) 4. Je donne droit d'exécution![](https://i.imgur.com/gCtXXVV.png) 5. Je lance un écoute avec netcat sur le port que j'ai mis dans mon reverse shell 6. J'exécute mon reverse shell ![](https://i.imgur.com/Bopa6Sq.png) La connexion est réussie, je suis connecté au serveur en tant que woodenk. ![](https://i.imgur.com/mtObmRJ.png) # Trouver le premier drapeau # En regardant dans les répertoires je trouve le premier drapeau: ![](https://i.imgur.com/OtTEKrz.png) exiftool /author /../../tmp/aelasr XXE https://portswigger.net/web-security/xxe echo "200||1||2/../../../../../../../../../tmp/test.jpg" > /opt/panda_search/redpanda.log ![](https://i.imgur.com/x8T7S5u.png) ![](https://i.imgur.com/aVAt0Ym.png) ![](https://i.imgur.com/UPku6We.png)