Hello from the inside
Votre nouveau stagiaire aimerait bien vous persuader que les architectures orientées
micro-service améliorent nettement la sécurité de vos systèmes d'information.
Il a décidé de vous le démontrer en réalisant une preuve de concept du type
"Hello world", déployé à la hâte sur un serveur HTTP Apache.
Allez-vous lui proposer un contrat à la fin de son stage ?
https://hello-from-the-inside.france-cybersecurity-challenge.fr/
Note : Aucun bruteforce n'est nécessaire à la résolution du challenge.
Analyse
Le code source n’est pas donné pour ce challenge, visitons dans un premier temps le site.
Page par défaut.
Ok, d’après la première page et la description du challenge, on constate que le créateur appuie sur deux choses. Le service Apache
par défaut et les microservices
.
La seule fonction de la page est la possibilité d’envoyer une chaîne qui sera reflétée dans la page.
Retour de la page après avoir envoyé son nom.
On a deux champs et beaucoup de possibilité d’attaque. De plus, la chaîne Nice try
juste avant le contenu de la page me fait penser qu’il pourrait y avoir le flag si le proxy pense que la requête vient du localhost.
Contournement d’IP
Ajouter des header afin de faire croire au proxy que la requête viendrait de l’intérieur ne fonctionne pas.
Requête contenant la plupart des header pour réaliser du contournement d’IP.
SQL Injection
On continue avec une tentative naïve d’injection SQL.
SQL Injection retournant une 400 Bad Request.
Étrange, Le retour est 400 Bad Request
, cela ressemble beaucoup au retour d’une page.
Serait-on potentiellement face à une SSRF ?
SSRF
Cette fois, on va modifier le microservice.
Utilisation du microservice hello.
On obtient la page par défaut, essayons autre chose.
Utilisation du microservice localhost.
Tiens ! On retombe sur notre page ! Il y a donc bien une SSRF !
Maintenant, il faut savoir où aller.
Apache HTTP Server
Après moult relecture et comme indiqué au début, le mot Apache semble vraiment revenir trop souvent.
C’est sans aucun doute le point principal.
Après de multiples recherches sur internet, je tombe sur cette page de la documentation Apache https://httpd.apache.org/docs/trunk/getting-started.html qui indique server-status
.
Cela traverse mon esprit. Il arrive que lorsque Apache est configuré par défaut et que le module mod_status
est activé, il existe un endpoint qui porte ce nom. Regardons de plus près.
Requête vers le endpoint /server-status
.
Le endpoint existe bien et on y en découvre un nouveau intéressant /fcsc-secret-admin-page-5d7f93d6/
.
Flag
Après l’avoir requêté, on découvre que c’est derrière celui-ci que se cachait le flag.
flag: FCSC{b7701b7c6a40ac1ec27ea7ade92fbe7b74c1444b13047a795435fb4d8c549828}