Skip to content
KitploitKITPLOIT
StrumentiBlog
Log in
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-Proof-of-Concept — Sfida Capture the Flag: CVE-2025-29927 in combinazione con una vulnerabilità di command injection | Kitploit
Strumenti/GitHubGitHub/si-ni/cve-2025-29927-proof-of-concept
Password CrackingEscalation di PrivilegiAnalisi delle VulnerabilitàSfruttamento di Applicazioni WebCTFCommand and ControlApprendimento e Formazione
GitHub

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
si-ni/cve-2025-29927-proof-of-concept

CVE-2025-29927-Proof-of-Concept

Sfida Capture the Flag: CVE-2025-29927 in combinazione con una vulnerabilità di command injection

Vedi Repository
138 mesi faNon ancora revisionato

Procedura dettagliata

Passo 1 (5 min)

Suggerimento Quali servizi di rete sono esposti dal target?

— — —

Soluzione

    kali@kali:~$ nmap <TARGET_IP>
    kali@kali:~$ nmap -sC -sV <TARGET_IP> -p <TARGET_PORTS>
  

Passo 2 (5 min)

Suggerimento 1 La pagina di destinazione mostra solo una pagina di login, ma i server web spesso espongono percorsi aggiuntivi.
Suggerimento 2 Prova a usare uno strumento di brute-forcing delle directory come Gobuster o DirBuster.

— — —

Soluzione

    kali@kali:~$ gobuster dir -u http://<TARGET_IP>:<TARGET_PORT>/ -w /usr/share/wordlists/dirb/common.txt
  

    ===============================================================
    Starting gobuster in directory enumeration mode
    ===============================================================
    api                  (Status: 307) [Size: 35] [--> /api/auth/signin?callbackUrl=%2Fapi]
    apis                 (Status: 307) [Size: 36] [--> /api/auth/signin?callbackUrl=%2Fapis]
    cgi-bin/             (Status: 308) [Size: 8] [--> /cgi-bin]
    dashboard            (Status: 307) [Size: 41] [--> /api/auth/signin?callbackUrl=%2Fdashboard]
    favicon.ico          (Status: 200) [Size: 25931]
    login                (Status: 200) [Size: 6252]
    Progress: 4613 / 4613 (100.00%)
    ===============================================================
    Finished
    ===============================================================
  

Passo 3 (20 min)

Suggerimento 1 La pagina /dashboard reindirizza a /login. Riesci a trovare qualche informazione sulla pagina di login che ti permetta di bypassare il reindirizzamento?
immagine
Suggerimento 2 Riesci a trovare qualcosa per Next.js versione 15.2.2?
Suggerimento 3 Esamina CVE-2025-29927. Usa il proxy di Burp Suite per intercettare la richiesta e manipolare gli header della richiesta prima di inoltrarla.

— — —

Soluzione

Background

Molte applicazioni web proteggono route sensibili (ad es. /dashboard) utilizzando middleware. Il middleware controlla la richiesta, convalida i cookie di sessione e conferma i permessi dell'utente. Se i controlli falliscono, il middleware di solito reindirizza l'utente a /login.

Meccanismo della vulnerabilità

CVE-2025-29927 è un difetto di progettazione nell'elaborazione del middleware di Next.js. Permette a un attaccante di bypassare completamente la protezione del middleware sfruttando l'header x-middleware-subrequest. Next.js usa questo header internamente per prevenire loop infiniti di middleware. Quando una richiesta viene elaborata, la funzione runMiddleware controlla gli header della richiesta:
  • Se x-middleware-subrequest è presente
  • e il suo valore contiene il nome del middleware
  • allora Next.js salta l'esecuzione del middleware e inoltra la richiesta direttamente
Questo dovrebbe essere un'ottimizzazione interna, ma il difetto è che anche utenti esterni possono impostare questo header.

Il codice vulnerabile


    const subreq = params.request.headers["x-middleware-subrequest"];
    const subrequests = typeof subreq === "string" ? subreq.split(":") : [];
    if (subrequests.includes(middlewareInfo.name)) {
      result = {
        response: NextResponse.next(),
        waitUntil: Promise.resolve(),
      }
      continue;
    }
  

Per le versioni 13.2.0 e successive

Next.js ha introdotto una profondità massima di ricorsione per l'esecuzione del middleware. Questo è stato implementato per prevenire loop infiniti ma non influisce sulla vulnerabilità.
x-middleware-subrequest: middleware:middleware:middleware:middleware:middleware
Usando questo header, diciamo al middleware: "Questa è già una richiesta generata dal middleware—non eseguire di nuovo il middleware."
immagine immagine

Correzione

Next.js ora rimuove l'header x-middleware-subrequest da tutte le richieste esterne in entrata prima che il middleware venga eseguito. L'header è considerato attendibile solo quando viene creato all'interno del runtime di Next.js durante un legittimo concatenamento di middleware. Concretamente, il valore di x-middleware-subrequest viene ora convalidato rispetto a una stringa esadecimale generata casualmente, assicurando che solo le richieste di sessione interne legittime superino i controlli di autorizzazione. Quindi anche se un attaccante invia l'header, Next.js può ora distinguere tra una vera sotto-richiesta interna (che porta il token corretto generato casualmente) e una falsificata proveniente da un attaccante esterno.

Passo 4 (15 min)

Suggerimento 1 Anche i caricamenti di file sono protetti dal middleware, quindi devi inviare anche l'header del passo 3 con ogni richiesta.
Suggerimento 2 L'input dell'utente rappresenta sempre un alto rischio. Cos'altro oltre al contenuto del file è considerato input utente qui? E riesci a trovare qualche informazione sulla pagina che rivela come viene elaborata l'immagine?
Suggerimento 3 Prova alcuni nomi di file malevoli. https://www.revshells.com/

— — —

Scarica lo strumento