|
1 | | -# Java Security Code |
| 1 | +# Java sec code |
2 | 2 |
|
3 | | -## 介绍 |
4 | 3 |
|
5 | | -该项目也可以叫做Java Vulnerability Code(Java漏洞代码)。 |
| 4 | +[中文文档](https://github.com/JoyChou93/java-sec-code/blob/master/README.md) |
6 | 5 |
|
7 | | -每个漏洞类型代码默认存在安全漏洞(除非本身不存在漏洞),相关修复代码在注释里。具体可查看每个漏洞代码和注释。 |
| 6 | +## Introduce |
8 | 7 |
|
9 | | -## 漏洞代码 |
| 8 | +This project can also be called Java vulnerability code. |
10 | 9 |
|
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) |
24 | 17 | - [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) |
25 | 25 | - [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) |
26 | 27 | - [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) |
29 | 34 |
|
30 | | -## 漏洞说明 |
31 | 35 |
|
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) |
36 | 39 | - [CORS](https://github.com/JoyChou93/java-sec-code/wiki/CORS) |
37 | 40 | - [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) |
38 | 43 | - [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) |
40 | 45 | - [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) |
41 | 47 | - [Others](https://github.com/JoyChou93/java-sec-code/wiki/others) |
42 | 48 |
|
| 49 | +## How to run |
43 | 50 |
|
44 | | -## 如何运行 |
45 | | - |
| 51 | +- Tomcat |
| 52 | +- IDEA |
| 53 | +- JAR |
46 | 54 |
|
47 | 55 | ### Tomcat |
48 | 56 |
|
49 | | -1. 生成war包 `mvn clean package` |
50 | | -2. 将target目录的war包,cp到Tomcat的webapps目录 |
51 | | -3. 重启Tomcat应用 |
| 57 | +- Exclude tomcat in pom.xml. |
52 | 58 |
|
| 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: |
53 | 77 |
|
54 | 78 | ``` |
55 | 79 | http://localhost:8080/java-sec-code-1.0.0/rce/exec?cmd=whoami |
56 | 80 | ``` |
57 | | - |
58 | | -返回 |
59 | 81 |
|
60 | | -``` |
| 82 | +return: |
| 83 | +
|
| 84 | +``` |
61 | 85 | Viarus |
62 | 86 | ``` |
63 | 87 |
|
64 | 88 | ### IDEA |
65 | 89 |
|
66 | | -如果想在IDEA中直接运行,需要在IDEA中添加Tomcat配置,步骤如下: |
| 90 | +Click `run` button. |
67 | 91 |
|
68 | | -``` |
69 | | -Run -> Edit Configurations -> 添加TomcatServer(Local) -> Server中配置Tomcat路径 -> Deployment中添加Artifact选择java-sec-code:war exploded |
70 | | -``` |
71 | | - |
72 | | - |
73 | | - |
74 | | -配置完成后,右上角直接点击run,即可运行。 |
| 92 | +Example: |
75 | 93 |
|
76 | 94 | ``` |
77 | 95 | http://localhost:8080/rce/exec?cmd=whoami |
78 | 96 | ``` |
79 | | - |
80 | | -返回 |
81 | 97 |
|
82 | | -``` |
| 98 | +return: |
| 99 | +
|
| 100 | +``` |
83 | 101 | Viarus |
84 | 102 | ``` |
85 | 103 |
|
86 | | ---- |
87 | | - |
88 | | -有人反馈不想额外下载Tomcat,想使用SpringBoot自带的Tomcat,所以额外说明。 |
89 | | - |
90 | | -具体操作:执行`cp pom-idea.xml pom.xml`后,最后在IDEA中右键`Run Application`。 |
| 104 | +### JAR |
91 | 105 |
|
92 | | -### Jar包 |
| 106 | +Change `war` to `jar` in `pom.xml`. |
93 | 107 |
|
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> |
104 | 113 | ``` |
105 | 114 |
|
106 | | -再打包运行即可。 |
| 115 | +Build package and run. |
107 | 116 |
|
108 | 117 | ``` |
109 | 118 | mvn clean package -DskipTests |
110 | | -java -jar 打包后的jar包路径 |
111 | | -``` |
| 119 | +java -jar target/java-sec-code-1.0.0.jar |
| 120 | +``` |
0 commit comments