- 新增 Echo 回显支持:集成了多种新的 Echo 利用方式 @ReaJason
- 高版本 JDK 支持:新增多个支持 JDK 17+ 的利用链(Gadget 名称后缀带有
HighJDK或HighVersion) @n1ght (https://www.n1ght.cn/) - 内嵌 JDK 支持:支持发布包内嵌 JDK 环境,开箱即用。
- Payload 生成扩展:
- 新增 FakeMySQLPipeFile 生成功能 @unam4
- 新增 JSF 加密 Payload 生成功能 @B0T1eR
- 新增 FileUpload1 上传利用链 @B0T1eR
- 新增 Hutool MapProxy 二次反序列化利用 @unam4
- 环境探测:新增
javax_servlet与jakarta_servlet环境探测功能 @B0T1eR
- JRMPListener 增强:优化了 JRMP 监听器,防止泄漏本地 Lib 库信息,提高安全性 @unam4
- 依赖区分:明确区分了
MchangeC3p0Reference(com.mchange:c3p0) 与C3p0_C3p0Reference(c3p0:c3p0) 两种依赖,避免混淆。 - UI 体验:优化了前端登录界面的 UI 设计。
- 修复了端口冲突导致服务无法启动的问题。
- 修复了在 Windows 环境下触发 Security Manager(安全管理器)异常的问题。
感谢以下用户反馈 Bug 并帮助改进项目: @Catherines77 @1diot9 @yuxianzi @Skay @jlkl @Ckmount
Added
- 新增部分 fastjson payload 生成,以及 unicode 绕 waf 方案 @xcxmiku 参考文章
- 展示 HTTPServer 请求来源 User-Agent 值
- 新增文件上传参数类型,方便自定义二进制字节码文件,参考对应 Gadget: BytecodeFromUploadFile
- 新增 JmgCustomShellGadget,可实现注入自定义内存马
- 支持通过环境变量指定监听的 address
Changed
- 移除了 CB 链中的 comparatorType 选项
- 日志输出参数值最多展示 200 个字符
- 修复拼接错误 #9
- 优化 Choice 选择参数的前端显示
- 修复自定义字节码导致的异常
- 优化前端预设链的显示
- 在下载/保存模式下,输出格式将自动切换为 Raw 格式
Added
- 集成部分 FastjsonPayload @iSafeBlue
- 添加以下表达式注入 Payload
- FreeMarker
- JXPath @unam4
- Thymeleaf @unam4
- Aviator @ReaJason
- JINJava @ReaJason
- Velocity @ReaJason
- Exploit 模块生成时自动判断服务端口是否开放,若未开放则自动启动
Changed
- java-chains 迁移至 vulhub 项目下
- 项目从 web-chains 更名 java-chains
- class-obf 混淆项目 从 v1.4.0 更新至 v1.5.0
- 删除 WriteFile 字节码
新增
- SpringAopAspectjweaver 链
Bug修复
- 修复在 1.3.0 版本中 Payload 参数不生效问题
- 修复一些 Gadget 参数设置报错问题
优化
- 提高脏数据 overlong utf8 大包生成速度
- 在二次反序列化中支持混淆
- 部分链的描述
- Context 输出框新增额外信息
- 前端UI显示
- i18n
- [功能] 新增 SerializationDumper 解析Java序列化数据,并自定义修改任意类 SUID 等功能
- [功能] 开放 Chains 插件编写,参考:https://github.com/Java-Chains/chains-plugin-demo ,前端支持reload重加载插件
- [功能] 新增 Hessian2ToStringPayload,通过 except 可触发toString链
- [功能] 前端提供展示所有 Payload、Gadget 基础信息
- [功能] 新增 CommonsBeanutils5 Gadget,适用于 cb 1.10 版本
- [功能] 新增 FakeMySQLReadPayload 读文件利用,同时兼容 fileread_/etc/passwd 格式 ,参考 https://github.com/4ra1n/mysql-fake-server
- [功能] Generate 生成模块提供 URL Encoding 编码选项
- [功能] gadget 注解中新增 preTags 字段,可用于指定前面的链
- [功能] 同步更新 Class-Obf v1.4.0 版本
- [优化] JNDI、JRMP 等模块若端口未开放则会进行提醒
- [优化] 前端图标展示
- [优化] 整理后端代码
- [Bugfix] 修复Groovy生成Jar的问题。现在可以通过 OtherPayload -> GroovyJarConvert 中生成 Fastjson Groovy Jar
- [功能] 同步更新 Class-Obf v1.3.1 版本 (https://github.com/jar-analyzer/class-obf) @4ra1n
- [功能] 同步更新 java-memshell-generator(Jmg) v1.0.9 版本
- [功能] 新增 XmlDeSerPayload @unam4
- [功能] 新增 OpengaussJdbc 链 @guchangan1
- [功能] 自定义web登录密码,自定义是否关闭鉴权
- [优化] java-memshell-generator(Jmg) 优化报错提示;支持自动生成随机字符串参数,用于减少特征
- [功能] 支持字节码混淆,集成 Class-Obf(https://github.com/jar-analyzer/class-obf)项目 @4ra1n
- [功能] 新增 ExpressionPayload、JDBCPayload,方便生成表达式相关Payload以及JDBC URL相关Payload @Ar3h
- [优化] FakeMySQL日志更详细的输出 @Ar3h
- [BUG] 修复前端展开BUG @Ar3h
更新内容:
- [功能] 支持国际化,页面支持英文切换,登陆页面后右上角可进行切换语言 @Ar3h
- [功能] 新增
OneForAllEchoGadget,属于字节码类型,可实现Tomcat、WebLogic、Jetty、Spring环境下的一键回显 @4ra1n - [功能] 新增
XMLDecoderPayload 生成 @4ra1n - [新链] 新增 HutoolJndiDSFactory、hutoolSimpleDSFactory、hutoolPooledDSFactory 三条hutools相关Getter链 @unam4
- [优化] Java反序列化支持完全 UTF8 Overlong(参考 PPPYSO 项目) @Ar3h
- [优化] 优化前端Gadget选项提示,前端使用青色提醒Gadget存在一些不适用的情况,需要阅读详细说明后自行判断 @Ar3h
- [优化] 拆分出 DNSLogWithInfo 链,专门用于通过DNSLog回显gadget链信息,方便在梭哈链中进行判断可用链 @Ar3h
- [优化] 前端添加缓存,减少请求量,提高速度 @Ar3h
- [BUG] 修复 DNSLog、DNSLogAndHttp 无法正常使用的严重BUG
感谢以下用户的贡献:
- Ar3h (https://github.com/Ar3h)
- 4ra1n (https://github.com/4ra1n)
- unam4 (https://github.com/unam4)
推荐使用 Docker 一键启动
更新内容:
- [功能] 新增
Hessian LazyValueWithSleep链 @unam4 - [功能] 新增
TomcatEcho回显 (可在Jeg无法使用时使用) @匿名 - [优化] 优化预设链的描述 @Ar3h
- [优化] 优化
JNDI相关以及部分Gadget的描述 @Ar3h
感谢以下用户的贡献:
- Ar3h (https://github.com/Ar3h)
- unam4 (https://github.com/unam4)
- 某匿名安全研究师傅
使用 java -jar java-chains.jar 即可启动
推荐使用 docker 一键启动
更新内容:
- [重要] 新增预设链功能,常用链可实现一键勾选 @Ar3h
- [重要] 所有选项和配置添加详细的描述提示信息 @Ar3h
- [功能] 支持下载
payload为文件功能 @Ar3h - [功能]
OtherPayload新增JMG格式的JSP@Ar3h - [功能]
OtherPayload新增Java两种命令处理 @4ra1n - [BUG] 修复前端
gadget参数描述信息显示异常问题 @Ar3h - [BUG] 修复前端部分
payload传参错误搭导致无效生成 @Ar3h - [BUG] 修复
JSP模板无法正常使用的BUG@Ar3h - [BUG] 没有导入
aspectj依赖导致部分gadget错误 @Ar3h - [优化] 优化部分
gadget的优先级排序 @Ar3h - [优化] 支持展示
jmg的提示输出信息 @Ar3h - [优化] 登录用户名固定
admin仅随机登陆密码 @4ra1n - [优化] 安全方面删除
security path功能 @4ra1n @ssrsec - [优化] 前端默认使用更好看的黑色主题 @Ar3h
- [优化] 前端界面
run和copy按钮位置优化 @Ar3h
感谢以下用户的贡献:
- Ar3h (https://github.com/Ar3h)
- 4ra1n (https://github.com/4ra1n)
- 说书人 (https://github.com/ssrsec)
使用 java -jar java-chains.jar 即可启动
推荐使用 docker 一键启动
更新内容:
- [重要] 前端大重构和优化 @Ar3h
- [重要] 提供
docker一键启动命令 @Ar3h @4ra1n - [重要] 提供了从
jar文件加载的简易插件系统 @Ar3h - [重要] 新增
h2 without js全版本通杀链 @unam4 - [功能] 基于
spring security的登录功能 @springkill @4ra1n - [功能] 新增两种
equals和c3p0 jndi/jdbc链 @unam4 - [功能]
hessian新增groovy利用链 @Ar3h - [功能] 字节码可添加
main静态入口函数 @Ar3h - [BUG] 无法正确显示
favicon.ico图标问题 @xcxmiku - [优化]
server探测新增netty框架探测 @Ar3h - [优化] 高版本
Oralce JDK可以使用BCEL相关 @4ra1n - [优化] 优化某些仅
unix类型的gadget提示信息 @4ra1n - [优化] 格式化输出日志,为日志附加颜色 @springkill
- [优化] 启动时检测
java版本给出警告 @4ra1n - [优化] 优化拦截器逻辑 @ssrsec
- [优化] 优化
base64通用性 @ssrsec - [文档] 编写新版本使用文档 @ssrsec
感谢以下用户的贡献:
- Ar3h (https://github.com/Ar3h)
- 某匿名安全研究师傅
- unam4 (https://github.com/unam4)
- 小晨曦 (https://github.com/xcxmiku)
- 4ra1n (https://github.com/4ra1n)
- springkill (https://github.com/springkill)
- 说书人 (https://github.com/ssrsec)
使用 java -jar java-chains.jar 即可启动(仅支持 java 8 环境)
推荐使用 docker 一键启动(请参考 README 页面)
其中 chains-config.zip 是补充插件,解压后放在 jar 同级目录即可
初始开源版本