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
fastjson-jsontype-rce-lab — Laboratori Docker + scanner difensivo per la RCE remote-class-load di fastjson. fastjson 1.2.66-1.2.83: sonda di risorse @JSONType (CVE-2026-16723). fastjson2 2.0.57: l'@type dell'attaccante raggiunge loadClass con autoType DISABLED tramite tipi polimorfici (@JSONType(seeAlso) / Jackson @JsonSubTypes). Payload con soli marcatori; controlli safeMode + JDK17. | Kitploit
Strumenti/GitHubGitHub/dinosn/fastjson-jsontype-rce-lab
Analisi StaticaAnalisi Dinamica (Sandboxing)Analisi delle VulnerabilitàExploitSfruttamento di Applicazioni WebPenetration TestingApprendimento e FormazioneLab e Pratica
GitHubdinosn/fastjson-jsontype-rce-lab

fastjson-jsontype-rce-lab

Vedi Repository
20392122 mesi faRevisionato da Kitploit

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 →

Informazioni

Laboratori Docker + scanner difensivo per la RCE remote-class-load di fastjson. fastjson 1.2.66-1.2.83: sonda di risorse @JSONType (CVE-2026-16723). fastjson2 2.0.57: l'@type dell'attaccante raggiunge loadClass con autoType DISABLED tramite tipi polimorfici (@JSONType(seeAlso) / Jackson @JsonSubTypes). Payload con soli marcatori; controlli safeMode + JDK17.

Condividi

Lab di rilevamento e riproduzione @JSONType remote-JAR/FD-chain di Fastjson

Questo repository conserva ora due distinte linee di ricerca su Fastjson:

  • modern-fd/ è la ricostruzione consigliata, solo-marker, della catena remote-JAR/file-descriptor in un singolo corpo di richiesta di Fastjson 1.2.83 su Spring Boot 3, Tomcat embedded standard e JDK 17. Usa il sink letterale con DTO fisso JSON.parseObject(body, BoundEnvelope.class) con AutoType disabilitato.
  • Il progetto originale Docker Compose di primo livello conserva la precedente rotta diretta di classi remote su JDK 8. È in grado di eseguire comandi e va trattato come una prova legacy e isolata, non come il metodo per JDK moderni.
  • scanner/ contiene rilevamento passivo di richieste/log, inventario statico degli artefatti e una sonda di raggiungibilità non eseguente.

Il bug: ParserConfig.checkAutoType sonda ogni valore @type alla ricerca dell'annotazione @JSONType eseguendo getResourceAsStream(typeName.replace('.','/') + ".class"). Sulle combinazioni Linux/JDK moderne, una sonda remota jar:http può lasciare il JAR memorizzato nella cache dietro un descrittore aperto; successive sonde jar:file:/proc/self/fd/N nello stesso corpo possono riaprirlo con nomi di classe validi e inizializzare una classe annotata. La composizione esatta di 1.2.83 funziona con AutoType disabilitato e attraverso un DTO fisso contenente List<Object>. Il solo binding non è quindi una mitigazione. Analisi completa: docs/MECHANISM.md.

Risultati della review di sicurezza

La review completa dell'intero progetto ha coperto 2.041 righe tra callable e static-initializer in tutti i 193 file Java di produzione di Fastjson 1.2.83. La tabella sottostante dà priorità ai risultati a maggiore impatto; non è un'affermazione che ogni deployment di Fastjson sia vulnerabile. Questo repository riproduce direttamente F105. Le voci rimanenti riassumono una review separata del sorgente sigillato e prove di laboratorio limitate.

PrioritàRilevamentoRisultato provatoConfine importante
1F105 — esecuzione di bytecode @JSONType remotoInizializzazione di classi fornite dall'attaccante attraverso loader Spring Boot compatibili, inclusa la rotta diretta JDK 8 e la continuazione /proc/self/fd/N con JAR trattenuto su Linux/JDK 17Richiede un veicolo @type raggiungibile dal parser, un loader Boot/TCCL compatibile, egress, SafeMode/IgnoreAutoType disattivati e un JAR esatto dell'attaccante. La rotta moderna con DTO fisso richiede inoltre una corsia di valori generici (il lab usa List<Object>), procfs Linux, un descrittore trattenuto e l'allineamento esatto dei nomi; non è universale su ogni JDK, loader o OS
2F1/F45 — esecuzione comandi TemplatesImplEsecuzione di comandi marker attraverso l'API con DTO fisso, inclusa una proprietà del corpo ignorataRichiede una politica server indebolita: ammissione delle classi, AutoType e popolamento di campi privati o percorsi equivalenti; le impostazioni predefinite inviolate la bloccano
3F70/C016 — buffering illimitato ed espansione GZIPI percorsi byte/InputStream tipizzati e DTO annotati espandono o bufferizzano senza limite di output; riprodotto OOME Java con heap vincolataRichiedono raggiungibilità dell'endpoint/schema e dei byte dell'attaccante; un'interruzione a livello di produzione non è stata stabilita
4F18/C089 — esaurimento dello stack del thread del parserValori oggetto ordinari annidati profondamente possono produrre StackOverflowError con parsing predefinitoImpatto sulla disponibilità del thread di richiesta; non un crash invariante della JVM o a livello di servizio
5F120/C162 — SSRF HTTP con schema fisso/caricamento risorse localiJEditorPane/JTextPane.page controllato dal corpo esegue richieste HTTP e può caricare contenuto file: limitato nello stato del DocumentRichiede che l'applicazione dichiari il tipo Swing; nessuna esfiltrazione automatica della risposta o RCE provata
6F118/C160 — fallimento autorizzazione/integrità dati per collisione di hashUna distinta collisione Unicode FNV-1a-64 può legarsi a una costante enum privilegiata o instradare la mutazione JSONPath verso il setter sbagliato del beanRichiede una collisione utilizzabile e fiducia a valle o un'operazione di mutazione JSONPath esposta; nessuna ammissione di classi o RCE
7F121/C163 — raggiungibilità JNDI fissa di JdbcRowSetL'ordine esatto dei setter ha causato una connessione JNDI/LDAP in uscita selezionata dal corpoLe prove si fermano a una connessione: nessuna risposta di naming, object factory, caricamento bytecode o RCE
8F2/F45 — risoluzione DNS predefinitaLa risoluzione di hostname controllata dall'attaccante funziona con configurazione predefinita e attraverso una proprietà ignorata del DTO fissoSolo interazione DNS/OOB, non SSRF HTTP generico o RCE

Vedi findings/FINDINGS.md per etichette di validazione, prerequisiti, risultati di livello inferiore, priorità di remediation e confini negativi espliciti.

⚠️ Solo uso autorizzato

Questo repository è per istruzione, ricerca difensiva e test autorizzati di sistemi che possiedi o per cui hai esplicito permesso di test. La pubblicazione dell'host, quando supportata per la rete interna del lab moderno, è richiesta solo su 127.0.0.1; i suoi script eseguono il test interamente all'interno di quella rete isolata. Il lab moderno non ha alcuna primitiva di esecuzione di processi e imposta solo un marker fisso in-JVM. Il lab legacy JDK 8 esegue effettivamente id e scrive il suo output in /tmp/PWNED; mantienilo isolato. Non puntare l'exploit legacy o la sonda attiva verso sistemi non autorizzati.

Scansione del proprio ambiente

La directory scanner/ include quattro strumenti Python 3 senza dipendenze (nessuna installazione pip).

  • fjdetect.py — ispezione passiva di corpi di richiesta JSON decodificati o log JSON strutturati per semi remote-JAR e sequenze /proc/self/fd o /dev/fd.
  • fjscan_static.py — inventario di jar/war/ear per la combinazione vulnerabile (contenuto verificato, 1.2.83 verificato sui metadati × contenuto effettivo delle classi del loader Spring Boot). Le release 1.2.48–1.2.82 con sonda e i candidati solo-metadati/nome-file vengono riportate separatamente per la review. Adatto a CI-gate (exit 2 su EXPOSED).
  • fjscan_probe.py — controllo di raggiungibilità attivo e sicuro: invia il @type a un canary che controlli tu (listener integrato oppure Burp Collaborator / interactsh) e correla il callback di fetch della risorsa. Il suo listener integrato restituisce un 404 vuoto; configura i listener esterni in modo equivalente. Un callback non prova il caricamento di classi o la RCE.
  • fjpayload.py — genera corpi di fetch di risorse remote per test manuali; usa solo un listener vuoto/404 quando l'esecuzione non è prevista.
# 1) ispezione passiva richieste/log
python3 scanner/fjdetect.py --ndjson gateway.jsonl

# 2) inventario artefatti di build / immagini estratte (parallelo)
python3 scanner/fjscan_static.py /path/to/artifacts --threads 16
Scarica lo strumento