Bypass de seguridad front-end (CL.TE)
Exploiting HTTP request smuggling to bypass front-end security controls, CL.TE vulnerability
Le lab utilise un serveur front-end et un back-end. Le front-end ne prend pas en charge le chunked encoding, tandis que le back-end, lui, l’accepte. L’accès au panneau d’administration situé à /admin est bloqué par le front-end.
L’objectif est de smuggler une requête vers le back-end permettant d’accéder au panneau d’administration, puis de supprimer l’utilisateur carlos.

1. Vérification de la vulnérabilité CL.TE
Le front-end interprète le Content-Length, tandis que le back-end utilise Transfer-Encoding.
Payload de base CL.TE :
Cela renvoie un 200, ce qui confirme que le back-end prend en compte Transfer-Encoding.

2. Injection d’une requête smuggled
Lorsque l’on enchaîne ensuite une requête, le back-end lit la requête smuggled :
Le back-end répond que seuls les utilisateurs locaux peuvent accéder à /admin.

3. Usurpation du host pour paraître local
Pour contourner la restriction, il faut que le back-end croie que la requête provient de localhost.
Tentative initiale :
Mais le serveur renvoie :
Le back-end n’interprète donc pas cette requête comme une nouvelle requête complète.
4. Construction d’une requête smuggled correcte
On ajoute un Content-Length dans la requête smuggled, afin qu’elle soit traitée correctement :
Pour que le back-end lise correctement la requête, on ajuste la taille :
La requête complète envoyée au front-end devient alors :

5. Suppression de l’utilisateur carlos
Il suffit maintenant de remplacer la ligne GET par l’appel à la suppression :

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