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.

Hello from the inside 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.

Hello Aether 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.

127.0.0.1 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.

Bad Request 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.

hello Microservice Utilisation du microservice hello.

On obtient la page par défaut, essayons autre chose.

localhost Microservice 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.

server-status 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

flag: FCSC{b7701b7c6a40ac1ec27ea7ade92fbe7b74c1444b13047a795435fb4d8c549828}