🇨🇳 中文更新日志
🚀 新增特性
- JRMP 绕过:支持高版本 JDK 的 JRMP 反序列化绕过 (@n1ght)。
- 新增 Gadget:新增 JtaTransactionManager 利用链。
- MemShell 支持:支持 MemShellParty v2.4.0 版本 (@ReaJason)。
- 自定义执行:新增 ExecCustom 功能支持 #32。
- Fastjson Payload:新增 Fastjson MySQL 不出网 Payload (1.2.68, 1.2.76-1.2.80) (@unam4)。
- 新增 Gadget:新增 SpringBeansFastjson 利用链 (@unam4)。
- 新增加载器:新增 SpringBeanXMLDecoderClassLoader (@xcxmiku)。
- Fastjson Gadget:新增 FastjsonPostgreSQLJdbc1_2_80 利用链 (@unam4 @xcxmiku)。
⬆️ 优化与改进
- 若依 Shell 优化:定制若依 Shell,表达式注入内存马小于 1W 字符,并修复定时任务跨线程 Context 丢失问题 (@unam4)。
- Ruoyi 兼容性:RuoyiShellBytecode 改为 Valve 实现,兼容分离版 (@unam4)。
- Groovy 链优化:GroovyGString 利用链 (@xcxmiku)。
- FakeMySQL 增强:FakeMySQLPipeFile 新增 MysqlPassword 属性 (@unam4)。
- 清理与描述:删除无效利用链,更新高版本利用链描述,AOP 代理支持选择版本 (@unam4)。
- 依赖兼容:兼容 Commons IO 2.0-2.7,解决 Fastjson 1.2.80 expectedClass 编码问题 (@unam4 @xcxmiku)。
🐛 问题修复
- Hessian 修复:修复 Hessian XSLT 链在 Windows 下的路径问题 (@xcxmiku)。
- CLI 修复:修复 CLI 错误 #33。
- SpringLoader 修复:修复 SpringLoader Base64 错误 #29。
- Issue 修复:修复 Issue #30。
- 综合修复:修复 useJdkAT Bug,SpringAOP aspectjweaver 兼容旧版,修复 MozillaRhino2 报错 (@xcxmiku)。
- Javassist 修复:重命名前分离 pooled CtClass (@xcxmiku)。
- 编码修复:修复 StandardCharsets 兼容性问题 (@xcxmiku)。
- 构建修复:修复 K2 构建期空指针异常 (@xcxmiku)。
- Groovy 修复:修复 Groovy 链与新增其他链 (@xcxmiku)。
- FindClass 兼容性:FindClass 兼容性 (@xcxmiku)。
- FakeMySQLPipeFile修复:FakeMySQLPipeFile PasswordBuf 置空,避免缓存影响 (@unam4)。
❤️ 致谢
- 感谢 @ViCrack @seizer-zyx @Not-my @localurk 提出 Bug。
English Changelog
🚀 New Features
- JRMP Bypass: Supported JRMP deserialization bypass for higher JDK versions (@n1ght).
- New Gadget: Added JtaTransactionManager gadget.
- MemShell Support: Supported MemShellParty v2.4.0 (@ReaJason).
- Custom Execution: Added support for ExecCustom #32.
- Fastjson Payload: Added Fastjson MySQL payload for non-internet environments (1.2.68, 1.2.76-1.2.80) (@unam4).
- New Gadget: Added SpringBeansFastjson gadget (@unam4).
- New Loader: Added SpringBeanXMLDecoderClassLoader (@xcxmiku).
- Fastjson Gadget: Added FastjsonPostgreSQLJdbc1_2_80 gadget (@unam4 @xcxmiku).
⬆️ Improvements
- Ruoyi Shell Optimization: Customized Ruoyi Shell (expression injection memory shell < 1W chars) and fixed scheduled task cross-thread context loss (@unam4).
- Ruoyi Compatibility: Changed RuoyiShellBytecode to Valve implementation for split version compatibility (@unam4).
- Groovy Hardening: Hardened GroovyGString gadget chain (@xcxmiku).
- FakeMySQL Enhancement: Added MysqlPassword property to FakeMySQLPipeFile (@unam4).
- Cleanup & Updates: Removed invalid chains, updated high-version chain descriptions, and added version selection for AOP proxy (@unam4).
- Dependency Compatibility: Compatible with Commons IO 2.0-2.7, resolved Fastjson 1.2.80 expectedClass encoding issue (@unam4 @xcxmiku).
🐛 Bug Fixes
- Hessian Fix: Fixed Hessian XSLT chain path issue on Windows (@xcxmiku).
- CLI Fix: Fixed CLI error #33.
- SpringLoader Fix: Fixed SpringLoader Base64 error #29.
- Issue Fix: Fixed Issue #30.
- General Fixes: Fixed useJdkAT bug, SpringAOP aspectjweaver legacy compatibility, and MozillaRhino2 errors (@xcxmiku).
- Javassist Fix: Detached pooled CtClass before renaming (@xcxmiku).
- Encoding Fix: Fixed StandardCharsets compatibility issue (@xcxmiku).
- Build Fix: Fixed NPE during K2 build (@xcxmiku).
- Groovy Fix: Fixed Groovy chain entry and sandbox extension (@xcxmiku).
- Sandbox Compatibility: Fixed compatibility between Groovy sandbox chain and FindClass (@xcxmiku).
- Cache Fix: Cleared FakeMySQLPipeFile PasswordBuf to avoid cache side effects (@unam4).
❤️ Acknowledgements
- Thanks to @ViCrack @seizer-zyx @Not-my @localurk for reporting bugs.
docker run -d \
--name java-chains \
--restart=always \
-p 8011:8011 \
-p 58080:58080 \
-p 50389:50389 \
-p 50388:50388 \
-p 3308:3308 \
-p 13999:13999 \
-p 50000:50000 \
-p 11527:11527 \
-e CHAINS_AUTH=true \
-e CHAINS_PASS= \
javachains/javachains:1.4.4