Skip to content

Commit 10e0345

Browse files
committed
add ssrf checker
1 parent 0746f9d commit 10e0345

24 files changed

+444
-401
lines changed

README.md

Lines changed: 73 additions & 64 deletions
Original file line numberDiff line numberDiff line change
@@ -1,111 +1,120 @@
1-
# Java Security Code
1+
# Java sec code
22

3-
## 介绍
43

5-
该项目也可以叫做Java Vulnerability Code(Java漏洞代码)。
4+
[中文文档](https://github.com/JoyChou93/java-sec-code/blob/master/README.md)
65

7-
每个漏洞类型代码默认存在安全漏洞(除非本身不存在漏洞),相关修复代码在注释里。具体可查看每个漏洞代码和注释。
6+
## Introduce
87

9-
## 漏洞代码
8+
This project can also be called Java vulnerability code.
109

11-
- [XXE](https://github.com/JoyChou93/java-sec-code/blob/master/src/main/java/org/joychou/controller/XXE.java)
12-
- [SSRF](https://github.com/JoyChou93/java-sec-code/blob/master/src/main/java/org/joychou/controller/SSRF.java)
13-
- [URL重定向](https://github.com/JoyChou93/java-sec-code/blob/master/src/main/java/org/joychou/controller/URLRedirect.java)
14-
- [IP伪造](https://github.com/JoyChou93/java-sec-code/blob/master/src/main/java/org/joychou/controller/IPForge.java)
15-
- [XSS](https://github.com/JoyChou93/java-sec-code/blob/master/src/main/java/org/joychou/controller/XSS.java)
16-
- [CRLF注入](https://github.com/JoyChou93/java-sec-code/blob/master/src/main/java/org/joychou/controller/CRLFInjection.java)
17-
- [远程命令执行](https://github.com/JoyChou93/java-sec-code/blob/master/src/main/java/org/joychou/controller/Rce.java)
18-
- [反序列化](https://github.com/JoyChou93/java-sec-code/blob/master/src/main/java/org/joychou/controller/Deserialize.java)
19-
- [文件上传](https://github.com/JoyChou93/java-sec-code/blob/master/src/main/java/org/joychou/controller/FileUpload.java)
20-
- [SQL注入](https://github.com/JoyChou93/java-sec-code/blob/master/src/main/java/org/joychou/controller/SQLI.java)
21-
- [URL白名单Bypass](https://github.com/JoyChou93/java-sec-code/blob/master/src/main/java/org/joychou/controller/URLWhiteList.java)
22-
- [Java RMI](https://github.com/JoyChou93/java-sec-code/blob/master/src/main/java/org/joychou/RMI/Server.java)
23-
- [Fastjson](https://github.com/JoyChou93/java-sec-code/blob/master/src/main/java/org/joychou/controller/Fastjson.java)
10+
Each vulnerability type code has a security vulnerability by default unless there is no vulnerability. The relevant fix code is in the comments or code. Specifically, you can view each vulnerability code and comments.
11+
12+
## Vulnerability Code
13+
14+
Sort by letter.
15+
16+
- [Actuators to RCE](https://github.com/JoyChou93/java-sec-code/blob/master/src/main/resources/logback.xml)
2417
- [CORS](https://github.com/JoyChou93/java-sec-code/blob/master/src/main/java/org/joychou/controller/CORS.java)
18+
- [CRLF Injection](https://github.com/JoyChou93/java-sec-code/blob/master/src/main/java/org/joychou/controller/CRLFInjection.java)
19+
- [CSRF](https://github.com/JoyChou93/java-sec-code/blob/master/src/main/java/org/joychou/WebSecurityConfig.java)
20+
- [Deserialize](https://github.com/JoyChou93/java-sec-code/blob/master/src/main/java/org/joychou/controller/Deserialize.java)
21+
- [Fastjson](https://github.com/JoyChou93/java-sec-code/blob/master/src/main/java/org/joychou/controller/Fastjson.java)
22+
- [File Upload](https://github.com/JoyChou93/java-sec-code/blob/master/src/main/java/org/joychou/controller/FileUpload.java)
23+
- [IP Forge](https://github.com/JoyChou93/java-sec-code/blob/master/src/main/java/org/joychou/controller/IPForge.java)
24+
- [Java RMI](https://github.com/JoyChou93/java-sec-code/blob/master/src/main/java/org/joychou/RMI/Server.java)
2525
- [JSONP](https://github.com/JoyChou93/java-sec-code/blob/master/src/main/java/org/joychou/controller/JSONP.java)
26+
- [RCE](https://github.com/JoyChou93/java-sec-code/blob/master/src/main/java/org/joychou/controller/Rce.java)
2627
- [SPEL](https://github.com/JoyChou93/java-sec-code/blob/master/src/main/java/org/joychou/controller/SPEL.java)
27-
- [Actuators to RCE](https://github.com/JoyChou93/java-sec-code/blob/master/src/main/resources/logback.xml)
28-
- [CSRF](https://github.com/JoyChou93/java-sec-code/blob/master/src/main/java/org/joychou/WebSecurityConfig.java)
28+
- [SQL Injection](https://github.com/JoyChou93/java-sec-code/blob/master/src/main/java/org/joychou/controller/SQLI.java)
29+
- [SSRF](https://github.com/JoyChou93/java-sec-code/blob/master/src/main/java/org/joychou/controller/SSRF.java)
30+
- [URL Redirect](https://github.com/JoyChou93/java-sec-code/blob/master/src/main/java/org/joychou/controller/URLRedirect.java)
31+
- [URL whitelist Bypass](https://github.com/JoyChou93/java-sec-code/blob/master/src/main/java/org/joychou/controller/URLWhiteList.java)
32+
- [XSS](https://github.com/JoyChou93/java-sec-code/blob/master/src/main/java/org/joychou/controller/XSS.java)
33+
- [XXE](https://github.com/JoyChou93/java-sec-code/blob/master/src/main/java/org/joychou/controller/XXE.java)
2934

30-
## 漏洞说明
3135

32-
- [Java RMI](https://github.com/JoyChou93/java-sec-code/wiki/Java-RMI)
33-
- [XXE](https://github.com/JoyChou93/java-sec-code/wiki/XXE)
34-
- [SQLI](https://github.com/JoyChou93/java-sec-code/wiki/SQL-Inject)
35-
- [Fastjson](https://github.com/JoyChou93/java-sec-code/wiki/Fastjson)
36+
## Vulnerability Description
37+
38+
- [Actuators to RCE](https://github.com/JoyChou93/java-sec-code/wiki/Actuators-to-RCE)
3639
- [CORS](https://github.com/JoyChou93/java-sec-code/wiki/CORS)
3740
- [CSRF](https://github.com/JoyChou93/java-sec-code/wiki/CSRF)
41+
- [Fastjson](https://github.com/JoyChou93/java-sec-code/wiki/Fastjson)
42+
- [Java RMI](https://github.com/JoyChou93/java-sec-code/wiki/Java-RMI)
3843
- [JSONP](https://github.com/JoyChou93/java-sec-code/wiki/JSONP)
39-
- [Actuators to RCE](https://github.com/JoyChou93/java-sec-code/wiki/Actuators-to-RCE)
44+
- [SQLI](https://github.com/JoyChou93/java-sec-code/wiki/SQL-Inject)
4045
- [URL whitelist Bypass](https://github.com/JoyChou93/java-sec-code/wiki/URL-whtielist-Bypass)
46+
- [XXE](https://github.com/JoyChou93/java-sec-code/wiki/XXE)
4147
- [Others](https://github.com/JoyChou93/java-sec-code/wiki/others)
4248

49+
## How to run
4350

44-
## 如何运行
45-
51+
- Tomcat
52+
- IDEA
53+
- JAR
4654

4755
### Tomcat
4856

49-
1. 生成war包 `mvn clean package`
50-
2. 将target目录的war包,cp到Tomcat的webapps目录
51-
3. 重启Tomcat应用
57+
- Exclude tomcat in pom.xml.
5258

59+
```
60+
<dependency>
61+
<groupId>org.springframework.boot</groupId>
62+
<artifactId>spring-boot-starter-web</artifactId>
63+
<exclusions>
64+
<exclusion>
65+
<groupId>org.springframework.boot</groupId>
66+
<artifactId>spring-boot-starter-tomcat</artifactId>
67+
</exclusion>
68+
</exclusions>
69+
</dependency>
70+
```
71+
72+
- Build war package by `mvn clean package`.
73+
- Copy war package to Tomcat webapps directory.
74+
- Start tomcat application.
75+
76+
Example:
5377
5478
```
5579
http://localhost:8080/java-sec-code-1.0.0/rce/exec?cmd=whoami
5680
```
57-
58-
返回
5981
60-
```
82+
return:
83+
84+
```
6185
Viarus
6286
```
6387
6488
### IDEA
6589
66-
如果想在IDEA中直接运行,需要在IDEA中添加Tomcat配置,步骤如下:
90+
Click `run` button.
6791
68-
```
69-
Run -> Edit Configurations -> 添加TomcatServer(Local) -> Server中配置Tomcat路径 -> Deployment中添加Artifact选择java-sec-code:war exploded
70-
```
71-
72-
![tomcat](https://github.com/JoyChou93/java-sec-code/raw/master/idea-tomcat.png)
73-
74-
配置完成后,右上角直接点击run,即可运行。
92+
Example:
7593
7694
```
7795
http://localhost:8080/rce/exec?cmd=whoami
7896
```
79-
80-
返回
8197
82-
```
98+
return:
99+
100+
```
83101
Viarus
84102
```
85103
86-
---
87-
88-
有人反馈不想额外下载Tomcat,想使用SpringBoot自带的Tomcat,所以额外说明。
89-
90-
具体操作:执行`cp pom-idea.xml pom.xml`后,最后在IDEA中右键`Run Application`
104+
### JAR
91105
92-
### Jar包
106+
Change `war` to `jar` in `pom.xml`.
93107
94-
95-
有人反馈想直接打Jar包运行。具体操作:
96-
97-
先修改pom.xml里的配置,将war改成jar
98-
99-
```
100-
<groupId>sec</groupId>
101-
<artifactId>java-sec-code</artifactId>
102-
<version>1.0.0</version>
103-
<packaging>war</packaging>
108+
```
109+
<groupId>sec</groupId>
110+
<artifactId>java-sec-code</artifactId>
111+
<version>1.0.0</version>
112+
<packaging>war</packaging>
104113
```
105114
106-
再打包运行即可。
115+
Build package and run.
107116
108117
```
109118
mvn clean package -DskipTests
110-
java -jar 打包后的jar包路径
111-
```
119+
java -jar target/java-sec-code-1.0.0.jar
120+
```

README_zh.md

Lines changed: 97 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,97 @@
1+
# Java Security Code
2+
3+
## 介绍
4+
5+
该项目也可以叫做Java Vulnerability Code(Java漏洞代码)。
6+
7+
每个漏洞类型代码默认存在安全漏洞(除非本身不存在漏洞),相关修复代码在注释里。具体可查看每个漏洞代码和注释。
8+
9+
## 漏洞代码
10+
11+
- [XXE](https://github.com/JoyChou93/java-sec-code/blob/master/src/main/java/org/joychou/controller/XXE.java)
12+
- [SSRF](https://github.com/JoyChou93/java-sec-code/blob/master/src/main/java/org/joychou/controller/SSRF.java)
13+
- [URL重定向](https://github.com/JoyChou93/java-sec-code/blob/master/src/main/java/org/joychou/controller/URLRedirect.java)
14+
- [IP伪造](https://github.com/JoyChou93/java-sec-code/blob/master/src/main/java/org/joychou/controller/IPForge.java)
15+
- [XSS](https://github.com/JoyChou93/java-sec-code/blob/master/src/main/java/org/joychou/controller/XSS.java)
16+
- [CRLF注入](https://github.com/JoyChou93/java-sec-code/blob/master/src/main/java/org/joychou/controller/CRLFInjection.java)
17+
- [远程命令执行](https://github.com/JoyChou93/java-sec-code/blob/master/src/main/java/org/joychou/controller/Rce.java)
18+
- [反序列化](https://github.com/JoyChou93/java-sec-code/blob/master/src/main/java/org/joychou/controller/Deserialize.java)
19+
- [文件上传](https://github.com/JoyChou93/java-sec-code/blob/master/src/main/java/org/joychou/controller/FileUpload.java)
20+
- [SQL注入](https://github.com/JoyChou93/java-sec-code/blob/master/src/main/java/org/joychou/controller/SQLI.java)
21+
- [URL白名单Bypass](https://github.com/JoyChou93/java-sec-code/blob/master/src/main/java/org/joychou/controller/URLWhiteList.java)
22+
- [Java RMI](https://github.com/JoyChou93/java-sec-code/blob/master/src/main/java/org/joychou/RMI/Server.java)
23+
- [Fastjson](https://github.com/JoyChou93/java-sec-code/blob/master/src/main/java/org/joychou/controller/Fastjson.java)
24+
- [CORS](https://github.com/JoyChou93/java-sec-code/blob/master/src/main/java/org/joychou/controller/CORS.java)
25+
- [JSONP](https://github.com/JoyChou93/java-sec-code/blob/master/src/main/java/org/joychou/controller/JSONP.java)
26+
- [SPEL](https://github.com/JoyChou93/java-sec-code/blob/master/src/main/java/org/joychou/controller/SPEL.java)
27+
- [Actuators to RCE](https://github.com/JoyChou93/java-sec-code/blob/master/src/main/resources/logback.xml)
28+
- [CSRF](https://github.com/JoyChou93/java-sec-code/blob/master/src/main/java/org/joychou/WebSecurityConfig.java)
29+
30+
## 漏洞说明
31+
32+
- [Java RMI](https://github.com/JoyChou93/java-sec-code/wiki/Java-RMI)
33+
- [XXE](https://github.com/JoyChou93/java-sec-code/wiki/XXE)
34+
- [SQLI](https://github.com/JoyChou93/java-sec-code/wiki/SQL-Inject)
35+
- [Fastjson](https://github.com/JoyChou93/java-sec-code/wiki/Fastjson)
36+
- [CORS](https://github.com/JoyChou93/java-sec-code/wiki/CORS)
37+
- [CSRF](https://github.com/JoyChou93/java-sec-code/wiki/CSRF)
38+
- [JSONP](https://github.com/JoyChou93/java-sec-code/wiki/JSONP)
39+
- [Actuators to RCE](https://github.com/JoyChou93/java-sec-code/wiki/Actuators-to-RCE)
40+
- [URL whitelist Bypass](https://github.com/JoyChou93/java-sec-code/wiki/URL-whtielist-Bypass)
41+
- [Others](https://github.com/JoyChou93/java-sec-code/wiki/others)
42+
43+
44+
## 如何运行
45+
46+
47+
### Tomcat
48+
49+
1. 生成war包 `mvn clean package`
50+
2. 将target目录的war包,cp到Tomcat的webapps目录
51+
3. 重启Tomcat应用
52+
53+
54+
```
55+
http://localhost:8080/java-sec-code-1.0.0/rce/exec?cmd=whoami
56+
```
57+
58+
返回
59+
60+
```
61+
Viarus
62+
```
63+
64+
### IDEA
65+
66+
直接点击run按钮即可运行。
67+
68+
```
69+
http://localhost:8080/rce/exec?cmd=whoami
70+
```
71+
72+
返回
73+
74+
```
75+
Viarus
76+
```
77+
78+
79+
80+
### Jar包
81+
82+
83+
先修改pom.xml里的配置,将war改成jar。
84+
85+
```
86+
<groupId>sec</groupId>
87+
<artifactId>java-sec-code</artifactId>
88+
<version>1.0.0</version>
89+
<packaging>war</packaging>
90+
```
91+
92+
再打包运行即可。
93+
94+
```
95+
mvn clean package -DskipTests
96+
java -jar 打包后的jar包路径
97+
```

java-sec-code.iml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -169,5 +169,6 @@
169169
<orderEntry type="library" name="Maven: org.springframework.security:spring-security-config:4.2.12.RELEASE" level="project" />
170170
<orderEntry type="library" name="Maven: org.springframework:spring-aop:4.3.6.RELEASE" level="project" />
171171
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-security:2.1.5.RELEASE" level="project" />
172+
<orderEntry type="library" name="Maven: commons-net:commons-net:3.6" level="project" />
172173
</component>
173174
</module>

0 commit comments

Comments
 (0)