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
Strumenti/GitHubGitHub/ptechamanja/cve-2026-29000-pac4j-jwt-auth-bypass
Analisi delle VulnerabilitàExploitSicurezza WebCTFPenetration TestingAutenticazione
GitHubptechamanja/cve-2026-29000-pac4j-jwt-auth-bypass

CVE-2026-29000-pac4j-jwt-auth-bypass

Proof-of-Concept (PoC) per una vulnerabilità di bypass dell'autenticazione che interessa le applicazioni che utilizzano pac4j-jwt con JWE (JSON Web Encryption).

Vedi Repository
15 mesi 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

HTB Principal — Writeup CVE-2026-29000

Disclaimer: Questo exploit è stato sviluppato esclusivamente per la macchina ritirata di HackTheBox "Principal". Solo a scopo educativo. Non utilizzarlo contro sistemi che non possiedi o per i quali non hai esplicita autorizzazione al test.

Informazioni sulla Macchina

CampoDettagli
NomePrincipal
PiattaformaHackTheBox
Difficoltà—
StatoRitirata

Vulnerabilità — CVE-2026-29000

Libreria interessata: pac4j-jwt < 4.5.9 / 5.7.9 / 6.3.3
Gravità: Critica
Tipo: Bypass dell'autenticazione

Riepilogo

Un difetto logico in JwtAuthenticator consente a un attaccante di bypassare l'autenticazione avvolgendo un PlainJWT non firmato (alg=none) all'interno di un JWE (JWT cifrato).

Quando il server decifra il JWE, tenta di analizzare il token interno come un SignedJWT. Poiché il token interno è un PlainJWT, l'oggetto SignedJWT è nullo e la verifica della firma viene completamente saltata. Il server costruisce quindi un profilo utente a partire dalle claim non verificate — consentendo la completa impersonificazione di qualsiasi utente, inclusi gli amministratori.

Requisiti dell'Attacco

  • La chiave pubblica RSA del server (spesso esposta tramite endpoint JWKS)
  • Conoscenza dei nomi interni delle claim (es. ruoli, formato del subject)

Flusso dell'Exploit

root@kitploit:~
Crea claim malevole (sub=admin, role=ROLE_ADMIN)
        ↓
Costruisci PlainJWT non firmato (alg=none)
        ↓
Avvolgi PlainJWT dentro un JWE usando la chiave pubblica RSA del server
        ↓
Invia il token JWE al server
        ↓
Il server decifra il JWE → trova PlainJWT → salta il controllo della firma → concede l'accesso

Exploit

Vedi exploit.py


Fix

Aggiorna pac4j-jwt a una versione corretta:

  • 4.5.9 o successiva
  • 5.7.9 o successiva
  • 6.3.3 o successiva

Oppure rifiuta esplicitamente i token interni PlainJWT dopo la decifratura del JWE:

root@kitploit:~
if (jwt instanceof PlainJWT) {
    throw new CredentialsException("PlainJWT non consentito dentro JWE");
}

⚙️ Flusso dell'Attacco

  1. Recupera la chiave pubblica da:
root@kitploit:~

/api/auth/jwks

  1. Crea un JWT malevolo:
  • alg: none
  • Inietta il ruolo admin
  1. Avvolgi dentro un JWE usando la chiave pubblica

  2. Invia come:

root@kitploit:~

Authorization: Bearer <token>

  1. Ottieni accesso non autorizzato

🛠️ Utilizzo del PoC

Installa le dipendenze

root@kitploit:~
pip install jwcrypto requests

Esegui l'exploit

root@kitploit:~
python3 poc.py \
--jwks-url http://target/api/auth/jwks \
--target http://target/api/dashboard

📤 Esempio di Output

root@kitploit:~
[+] Token Forgiato:
eyJhbGciOiJSU0EtT0FFUC0yNTYi...

[+] Iniezione nel Browser:
sessionStorage.setItem("auth_token", "eyJhbGciOiJSU0EtT0FFUC0yNTYi...")

[+] Stato: 200
{"user":{"username":"admin","role":"ROLE_ADMIN"}}

🌐 Sfruttamento tramite Browser

Apri DevTools → Console:

root@kitploit:~
sessionStorage.setItem("auth_token", "<PASTE_TOKEN_HERE>")

Poi naviga verso:

root@kitploit:~
/dashboard

🔥 Impatto

  • Bypass completo dell'autenticazione
  • Escalation dei privilegi ad admin
  • Accesso API non autorizzato
  • Potenziale movimento laterale

🛡️ Mitigazione

  • Verifica sempre le firme JWT (JWS) dopo la decifratura
  • Rifiuta i token con alg: none
  • Applica politiche rigorose di validazione dei token
  • Non affidarti alla sola cifratura per la fiducia

👤 Autore

  • Doomsknight

Riferimenti

  • Avviso di sicurezza pac4j
  • HackTheBox
Scarica lo strumento