Skip to content

Commit 7305870

Browse files
committed
v1.2.2
1 parent b734425 commit 7305870

File tree

11 files changed

+358
-75
lines changed

11 files changed

+358
-75
lines changed

CHANGELOG.md

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,25 @@
1+
## 1.2.2
2+
3+
更新内容:
4+
5+
- [功能] 支持国际化,页面支持英文切换,登陆页面后右上角可进行切换语言 @Ar3h
6+
- [功能] 新增 `OneForAllEcho` Gadget,属于字节码类型,可实现Tomcat、WebLogic、Jetty、Spring环境下的一键回显 @4ra1n
7+
- [功能] 新增 `XMLDecoder` Payload 生成 @4ra1n
8+
- [新链] 新增 HutoolJndiDSFactory、hutoolSimpleDSFactory、hutoolPooledDSFactory 三条hutools相关Getter链 @unam4
9+
- [优化] Java反序列化支持完全 UTF8 Overlong(参考 PPPYSO 项目) @Ar3h
10+
- [优化] 优化前端Gadget选项提示,前端使用青色提醒Gadget存在一些不适用的情况,需要阅读详细说明后自行判断 @Ar3h
11+
- [优化] 拆分出 DNSLogWithInfo 链,专门用于通过DNSLog回显gadget链信息,方便在梭哈链中进行判断可用链 @Ar3h
12+
- [优化] 前端添加缓存,减少请求量,提高速度 @Ar3h
13+
- [BUG] 修复 DNSLog、DNSLogAndHttp 无法正常使用的严重BUG
14+
15+
感谢以下用户的贡献:
16+
17+
- Ar3h (https://github.com/Ar3h)
18+
- 4ra1n (https://github.com/4ra1n)
19+
- unam4 (https://github.com/unam4)
20+
21+
推荐使用 Docker 一键启动
22+
123
## 1.2.1
224

325
更新内容:

CHANGELOG_EN.md

Lines changed: 112 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,112 @@
1+
## 1.2.2
2+
3+
What's new:
4+
5+
- [Function] Support internationalization, the page supports English switching, and the language can be switched in the upper right corner after landing on the page@Ar3h
6+
- [Function] Added 'OneForAllEcho' Gadget, which is a bytecode type, which can realize one-click echo @4ra1n in Tomcat, WebLogic, Jetty, and Spring environments
7+
- [Feature] Added 'XMLDecoder' Payload to generate @4ra1n
8+
- [New Chain] Added HutoolJndiDSFactory, hutoolSimpleDSFactory, and hutoolPooledDSFactory three hutool-related Getter chain @unam4
9+
- [Improve] Java deserialization supports full UTF8 overlong (see PPPYSO project) @Ar3h
10+
- [Optimization] Optimized the prompt of the front-end Gadget option, the front-end uses cyan to remind that Gadget is not applicable to some situations, you need to read the detailed description and judge the @Ar3h by yourself
11+
- [Optimization] Add cache to the front-end to reduce the number of requests and improve the speed @Ar3h
12+
- [Improve] Split out the DNSLogWithInfo chain, which is specially used to echo the gadget chain information through DNSLog, which is convenient for judging the available chain @Ar3h in the stud chain
13+
- [BUG] Fixed the serious bug that DNSLog and DNSLogAndHttp could not be used normally
14+
15+
Thanks to the following users for their contributions:
16+
17+
- Ar3h (https://github.com/Ar3h)
18+
- 4ra1n (https://github.com/4ra1n)
19+
- unam4 (https://github.com/unam4)
20+
21+
It is recommended to use 'docker' for one-click startup
22+
23+
## 1.2.1
24+
25+
What's new:
26+
27+
- [Feature] Added @unam4 for 'Hessian LazyValueWithSleep' chain
28+
- [Feature] Added @匿名 of 'TomcatEcho' echo (can be used when 'Jeg' is not available).
29+
- [Improve] Optimized the description of the preset chain @Ar3h
30+
- [Improve] Optimized the description of 'JNDI' and some descriptions of 'Gadget'@Ar3h
31+
32+
Thanks to the following users for their contributions:
33+
34+
- Ar3h (https://github.com/Ar3h)
35+
- unam4 (https://github.com/unam4)
36+
- An anonymous security research master
37+
38+
Use 'java -jar java-chains.jar' to get started
39+
40+
It is recommended to use 'docker' for one-click startup
41+
42+
## 1.2.0
43+
44+
What's new:
45+
46+
- [Important] Added the function of preset chains, which allows you to check @Ar3h with one click for commonly used chains
47+
- [Important] All options and configurations are described in detail, and hints are @Ar3h
48+
- [Function] Support downloading 'payload' as a file function @Ar3h
49+
- [Function] 'OtherPayload' adds a 'JSP' @Ar3h in 'JMG' format
50+
- [Function] 'OtherPayload' adds 'Java' two commands to handle @4ra1n
51+
- [BUG] Fixed the issue that the description of the 'gadget' parameter on the frontend was displayed abnormally @Ar3h
52+
- [BUG] Fixed the problem of invalid @Ar3h generation due to the wrong configuration of the 'payload' parameter in the frontend
53+
- [BUG] FIX THE 'BUG' @Ar3h WHERE THE 'JSP' TEMPLATE CANNOT BE USED PROPERLY
54+
- [BUG] Not importing 'aspectj' dependencies results in some 'gadget' errors @Ar3h
55+
- [Improve] Optimize the priority @Ar3h of some 'gadget'
56+
- [Improve] Added support for displaying the prompt output of 'jmg' @Ar3h
57+
- [Improve] Fixed 'admin' login username and only random login password @4ra1n
58+
- [Improve] Removed the @4ra1n @ssrsec of 'Security Path' function in security
59+
- [Improve] The frontend uses a better black theme @Ar3h by default
60+
- [Improve] Optimized the @Ar3h of the 'run' and 'copy' buttons in the front-end interface
61+
62+
Thanks to the following users for their contributions:
63+
64+
- Ar3h (https://github.com/Ar3h)
65+
- 4ra1n (https://github.com/4ra1n)
66+
- 说书人 (https://github.com/ssrsec)
67+
68+
Use 'java -jar java-chains.jar' to get started
69+
70+
It is recommended to use 'docker' for one-click startup
71+
72+
## 1.1.0
73+
74+
What's new:
75+
76+
- [Important] Front-end refactoring and optimization @Ar3h
77+
- [Important] Provide a @Ar3h @4ra1n of 'docker' one-click startup commands
78+
- [Important] Provides a @Ar3h of easy plugin system to load from 'jar' files
79+
- [Important] Added 'h2 without js' @unam4 for all versions of the kill chain
80+
- [Function] Login function based on 'Spring Security' @springkill @4ra1n
81+
- [Feature] Two new @unam4 for 'equals' and 'c3p0 jndi/jdbc' chains
82+
- [Feature] 'hessian' added 'groovy' to leverage chain @Ar3h
83+
- [Function] Bytecode can add 'main' static entry function @Ar3h
84+
- [BUG] The 'favicon.ico' icon is not displayed correctly Issue @xcxmiku
85+
- [Improve] 'Server' probe added 'netty' framework probe @Ar3h
86+
- [Improve] The later version of 'Oralce JDK' can use @4ra1n related to 'BCEL'
87+
- [Improve] Optimized some 'gadget' tooltips @4ra1n of type 'unix' only
88+
- [Improve] Format the output log, append a color @springkill to the log
89+
- [Improve] Detect 'java' version at startup and give a warning @4ra1n
90+
- [Improve] Optimized interceptor logic @ssrsec
91+
- [Optimization] Optimized the 'base64' versatility @ssrsec
92+
- [Documentation] Write a new version using Documentation @ssrsec
93+
94+
Thanks to the following users for their contributions:
95+
96+
- Ar3h (https://github.com/Ar3h)
97+
- An anonymous security researcher
98+
- unam4 (https://github.com/unam4)
99+
- 小晨曦 (https://github.com/xcxmiku)
100+
- 4ra1n (https://github.com/4ra1n)
101+
- springkill (https://github.com/springkill)
102+
- 说书人 (https://github.com/ssrsec)
103+
104+
Use 'java -jar java-chains.jar' to start ('Java 8' environment only)
105+
106+
It is recommended to use 'docker' to start with one click (please refer to the 'README' page)
107+
108+
Among them, 'chains-config.zip' is a supplementary plug-in, which can be decompressed and placed in the 'jar' directory
109+
110+
## 1.0.0
111+
112+
Initial release

README.md

Lines changed: 71 additions & 75 deletions
Original file line numberDiff line numberDiff line change
@@ -1,73 +1,76 @@
1+
<h4 align="right">中文 | <strong><a href="./README_EN.md">English</a></strong> </h4>
12
<h1 align="center">Web Chains</h1>
23
<div align="center">
34
<img alt="downloads" src="https://img.shields.io/github/downloads/java-chains/web-chains/total"/>
45
<img alt="release" src="https://img.shields.io/github/v/release/java-chains/web-chains"/>
56
<img alt="GitHub Stars" src="https://img.shields.io/github/stars/Java-Chains/web-chains?color=success"/>
7+
<div align="center">
8+
<img src="img/logo.png" width="80" alt="center">
9+
</div>
610
</div>
711

12+
`Web-Chains` 项目,又名 `Java-Chains` 项目,我们站在巨人肩膀上,致力于打造最强的 `Java` 安全研究领域的瑞士军刀
813

9-
`web-chains` 项目,又名 `java-chains` 项目,由 `Ar3h` 师傅主导开发,漏洞百出和代码审计星球支持
10-
11-
12-
<div align="center">
13-
<img src="img/logo.png" width="100" alt="center">
14+
<div style="text-align: center;">
15+
<img src="./img/main.png" width="700px">
1416
</div>
1517

16-
我们站在巨人肩膀上,致力于打造最强的 `Java` 安全研究领域的瑞士军刀
17-
1818
## 介绍
1919

20-
`web-chains` 包含但不限于以下功能:
21-
22-
- `Java` 反序列化原生 `Payload` 生成
23-
- `Hessian1/2` 反序列化 `Payload` 生成
24-
- `Hessian1` 支持生成 `HessianServlet` 格式反序列化数据
25-
- `Shiro` 数据生成(自定义 `KEY` 使用 `GCM` 混淆字符等)
26-
- `AMF3` 数据生成(基于原生数据多种进阶组合)
27-
- `XStream` 数据生成(基于原生数据多种进阶组合)
28-
- `BCEL` 字节码生成(直接执行命令,内存马生成,回显生成,探测字节码,读写文件)
29-
- `Class` 字节码生成(直接执行命令,内存马生成,回显生成,探测字节码,读写文件)
30-
- 多种数据库 `Payload` 生成(`Derby` | `H2` | `PostgreSql` | `Sqlite`
31-
- `Fastjson/SnakeYAML/SpringBeanXML/Velocity/OGNL/MVEL/SPEL/JS/GROOVY`
32-
33-
一些混淆方式:
34-
35-
- 随机集合混淆
36-
- 垃圾类插入
37-
- 去除字节码符号信息
38-
- `TC_RESET` 填充
39-
- `UTF-8 Overlong Encoding` 混淆
40-
41-
一些高级选项:
42-
43-
- 自定义类名/定义字节码版本
44-
- 选择 `Commons Beanutils` 链的多种 `comparator` 类型
45-
- 支持生成 `TemplatesImpl` 格式
46-
- 支持生成 `SnakeYaml Jar` 格式
47-
- 支持生成 `Fastjson Groovy` 格式
48-
- 支持生成 `JavaWrapper` 格式
49-
- 支持生成 `charsets.jar` 格式
50-
- 支持增强魔改版 `JMG/JEG` 格式 (java echo generator, java memshell generator)
51-
52-
Exploit 模块:
53-
54-
- JNDI (远程加载字节码,高版本反序列化绕过,高版本 `ref` 绕过,)
55-
- Fake Mysql Server (经典 `JDBC` 攻击必备,基于生成模块多种进阶组合)
56-
- JRMPListener / TCP Server(Derby RCE)/ HTTP Server
57-
58-
正在开发中:
59-
60-
- 一个完善的插件系统
61-
- 更多的可用的 `gadget``payload` 生成
62-
- 字节码混淆(方法名/隐藏方法/花指令/异或混淆等)
63-
- 多种多样的可能的输出类型指定
64-
- 覆盖更全面的测试和报告
65-
- 多种 `gadget` 排序方式可选
66-
- 用户自定义偏好 `gadget``payload` 展示
67-
- 更多功能...
20+
`Web-Chains` 含有六大模块:
21+
22+
1. `Generate`: 生成模块
23+
- `Java` 反序列化原生 `Payload` 生成
24+
- `Hessian1/2` 反序列化 `Payload` 生成
25+
- `Hessian1` 支持生成 `HessianServlet` 格式反序列化数据
26+
- `Shiro` 数据生成(自定义 `KEY` 使用 `GCM` 混淆字符等)
27+
- `AMF3` 数据生成(基于原生数据多种进阶组合)
28+
- `XStream` 数据生成(基于原生数据多种进阶组合)
29+
- `BCEL` 字节码生成(直接执行命令,内存马生成,回显生成,探测字节码,读写文件)
30+
- `Class` 字节码生成(直接执行命令,内存马生成,回显生成,探测字节码,读写文件)
31+
- 多种数据库 JDBC Payload 生成(`Derby` | `H2` | `PostgreSql` | `Sqlite`
32+
- `SnakeYAML/SpringBeanXML/Velocity/OGNL/MVEL/SPEL/JS/GROOVY`
33+
- Java反序列化、Hessian反序列化支持以下混淆方式:
34+
- 随机集合混淆
35+
- 垃圾类插入
36+
- 去除字节码符号信息
37+
- `TC_RESET` 填充,仅适用于Java反序列化
38+
- `UTF-8 Overlong Encoding` 混淆
39+
- 一些高级选项:
40+
- 自定义类名/定义字节码版本
41+
- 选择 `Commons Beanutils` 链的多种 `comparator` 类型
42+
- 支持生成 `TemplatesImpl` 格式
43+
- 支持生成 `SnakeYaml Jar` 格式
44+
- 支持生成 `Fastjson Groovy` 格式
45+
- 支持生成 `JavaWrapper` 格式
46+
- 支持生成 `charsets.jar` 格式
47+
- 支持增强魔改版 `JMG/JEG` 格式 (java echo generator, java memshell generator)
48+
2. JNDI: JNDI 注入利用模块
49+
- `JndiBasicPayload`: LDAP 远程加载字节码
50+
- `JndiDeserializationPayload`: LDAP 中基于 javaSerializedData 字段实现的反序列化
51+
- `JndiResourceRefPayload`: LDAP 基于 BeanFactory 的 Tomcat EL、Groovy等利用
52+
- `JndiReferencePayload`: LDAP 基于其他 ObjectFactory 的Reference利用,例如各种DataSource JDBC利用
53+
- `JndiRMIDeserializePayload`: LDAP 高版本 JDK 绕过之RMI反序列化
54+
- `JndiRefBypassPayload`: LDAP 高版本 JDK 绕过之ReferenceBypass
55+
- `JndiShowHandPayload`: JNDI梭哈链,一键测试常规利用链,提高测试效率
56+
3. `Fake MySQL`
57+
- `FakeMysqlPayload`: 经典 MySQL JDBC 反序列化利用姿势
58+
- `FakeMysqlShowHandPayload`: FakeMySQL梭哈链,一键测试常规反序列化链,提高测试效率
59+
4. `JRMPListener`
60+
- 可配合 JRMPClient 反序列化链实现RMI低版本的绕过
61+
5. `TCP Server`
62+
- 一个简易的 TCP Server,可以将生成的Payload文件挂载到TCP端口服务上
63+
- 适用于 Derby 反序列化 RCE 场景,可直接通过tcp端口获取反序列化数据
64+
6. `HTTP Server`
65+
- 一个简易的HTTP服务器,将生成的Payload文件挂载到HTTP端口服务上
66+
- 适用于 postgresql 远程加载 SpringBeanXML 文件等场景
6867

6968
## 快速开始
7069

70+
**特别注意:我们只对 8011 端口进行了保护,需要登陆后访问,其他端口可能存在被反制的风险,请自行注意**
71+
72+
### 方式一:Docker
73+
7174
你可以通过 `docker` 一条命令启动 `web-chains` 项目(这也是推荐做法)
7275

7376
```shell
@@ -77,16 +80,17 @@ docker run -d \
7780
-p 8011:8011 \
7881
-p 58080:58080 \
7982
-p 50389:50389 \
83+
-p 50388:50388 \
8084
-p 13999:13999 \
8185
-p 3308:3308 \
8286
-p 11527:11527 \
8387
-p 50000:50000 \
84-
javachains/webchains:1.2.1
88+
javachains/webchains:1.2.2
8589
```
8690

8791
生成功能仅使用 `8011` 端口即可,其他端口为 `exploit` 模块使用
8892

89-
请使用以下命令获得随机的强用户名密码
93+
请使用以下命令获得随机生成的强密码
9094

9195
```shell
9296
docker logs $(docker ps | grep javachains/webchains | awk '{print $1}') | grep -E 'password'
@@ -95,39 +99,29 @@ docker logs $(docker ps | grep javachains/webchains | awk '{print $1}') | grep -
9599
输出示例
96100

97101
```text
98-
11-12 06:59:53.301 INFO [main] c.a.c.w.c.SecurityConfig | | generated random password: XSsWerJFGcCjB8FU
102+
11-12 06:59:53.301 INFO [main] c.a.c.w.c.SecurityConfig | | password: XSsWerJFGcCjB8FU
99103
```
100104

101105
访问 `http://your-ip:8011` 即可(使用这里的用户名密码登录)
102106

103-
你也可以直接使用 `jar` 版本,使用 `java -jar web-chains.jar` 即可启动(推荐使用 `docker` 方式)
107+
### 方式二:Jar包启动
104108

105-
**特别注意:我们只对 8011 端口进行了保护,需要登陆后访问,其他端口可能存在被反制的风险,请自行注意**
109+
使用 `java -jar web-chains-v1.2.2.jar` 即可启动
106110

107111
## 详细使用
108112

109-
文档https://www.yuque.com/shenjingwa-leuvd/wpqdhf/eekyvau9fcblzzt0
113+
详细使用文档https://www.yuque.com/shenjingwa-leuvd/wpqdhf/eekyvau9fcblzzt0
110114

111115
## 更新内容
112116

113-
`v1.2.1` 对部分链的描述信息做了优化
114-
115-
`v1.2.0` 版本大幅改进了配置信息的描述
116-
117-
<img src="img/002.png" width="600px">
118-
119-
`v1.2.0` 版本提供了内置的高质量常用组合链
120-
121-
<img src="img/003.png" width="600px">
117+
[CHANGELOG.md](./CHANGELOG.md)
122118

123119
## 参考和致谢
124120

125121
仅支持个人研究学习,切勿用于非法犯罪活动。
126122

127123
本项目的开发者、提供者和维护者不对使用者使用工具的行为和后果负责,工具的使用者应自行承担风险。
128124

129-
[更新日志 | CHANGELOG](CHANGELOG.md)
130-
131125
参考致谢:
132126

133127
- https://github.com/wh1t3p1g/ysomap
@@ -149,16 +143,18 @@ docker logs $(docker ps | grep javachains/webchains | awk '{print $1}') | grep -
149143

150144
## 交流
151145

152-
交流群请扫码,如果失效可加V备注项目名:`Y2VzaGkyMzQ1Njc=`
146+
交流群请扫码
153147

154148
<div style="text-align: center;">
155149
<img src="img/group.png" width="300px">
156150
</div>
157151

158-
如果你觉得 `Java Chains / Web Chains` 项目对你有帮助,可以考虑支持一下我们
152+
如果二维码失效可加V备注项目名:`Y2VzaGkyMzQ1Njc=`
153+
154+
你觉得该项目对你有帮助的话,可以考虑支持一下我们
159155

160156
<div style="text-align: center;">
161-
<img src="img/01.jpg" width="300px">
157+
<img src="img/zanShang.jpg" width="300px">
162158
</div>
163159

164160
## Star History

0 commit comments

Comments
 (0)