Smuggling basé sur les pauses côté serveur

Server-side pause-based request smuggling

Le laboratoire est vulnérable à une attaque de pause-based server-side request smuggling. Le serveur frontal transmet les requêtes au serveur interne de manière continue, et ce dernier ne ferme pas la connexion après un délai d’inactivité sur certains endpoints.

Pour résoudre le lab :

  • Identifier un vecteur de désynchronisation CL.0 basé sur une pause,

  • Smuggler une requête vers le serveur interne afin d’accéder au panneau d’administration /admin,

  • Puis supprimer l’utilisateur carlos.

Note Certaines vulnérabilités de ce type ne peuvent pas être exploitées avec les outils natifs de Burp. Il est nécessaire d’utiliser l’extension Turbo Intruder.

Point vulnérable : /resources

En envoyant une requête vers /resources et en insérant une longue pause (61 secondes), on peut provoquer la désynchronisation entre le front-end et le back-end :

Pour exploiter ce comportement, on utilise Turbo Intruder.

Script de base

Le script par défaut est modifié pour introduire une pause de 61 000 ms après l’envoi du marqueur (pauseMarker), afin que la seconde requête soit injectée après le délai :

L’analyse montre que deux requêtes arrivent côté back-end après environ 62 secondes, ce qui confirme la vulnérabilité.

Injection vers /admin/

En adaptant la requête smuggled vers le panneau administrateur :

Le serveur interne répond avec Found, prouvant que l’accès administrateur a bien été forcé.

Suppression de l’utilisateur carlos

Pour contourner la protection CSRF, on modifie le host de la requête smuggled vers localhost, tout en incluant le body POST avec le token capturé :

L’injection déclenche la requête POST smuggled côté serveur interne, ce qui supprime l’utilisateur carlos.

Mis à jour

Ce contenu vous a-t-il été utile ?