这是一个基于 SpringBoot 和 Spring Security 的 Java Web 常见漏洞和安全代码示例库。
作者:Sec-Labs | 发布时间:
项目地址
https://github.com/JoyChou93/java-sec-code
Java Sec Code
对于学习Java漏洞代码来说,Java Sec Code是一个非常强大且友好的项目。
介绍
该项目也可以叫做Java Vulnerability Code(Java漏洞代码)。
每个漏洞类型代码默认存在安全漏洞(除非本身不存在漏洞),相关修复代码在注释里。具体可查看每个漏洞代码和注释。
由于服务器到期,在线的Demo网站已不能使用。
登录用户名密码:
admin/admin123
joychou/joychou123
漏洞代码
- Actuators to RCE
- CommandInject
- CORS
- CRLF Injection
- CSRF
- CVE-2022-22978
- Deserialize
- Fastjson
- File Upload
- IP Forge
- Java RMI
- JSONP
- Log4j
- ooxmlXXE
- PathTraversal
- RCE
- Runtime
- ProcessBuilder
- ScriptEngine
- Yaml Deserialize
- Groovy
- SpEL
- SQL Injection
- SSRF
- SSTI
- URL Redirect
- URL whitelist Bypass
- xlsxStreamerXXE
- XSS
- XStream
- XXE
- JWT
漏洞说明
- Actuators to RCE
- CORS
- CSRF
- Deserialize
- Fastjson
- Java RMI
- JSONP
- POI-OOXML XXE
- SQLI
- SSRF
- SSTI
- URL whitelist Bypass
- XXE
- JWT
- Others
如何运行
应用会用到mybatis自动注入,请提前运行mysql服务,并且配置mysql服务的数据库名称和用户名密码(除非是Docker环境)。
spring.datasource.url=jdbc:mysql://127.0.0.1:3306/java_sec_code
spring.datasource.username=root
spring.datasource.password=woshishujukumima
- Docker
- IDEA
- Tomcat
- JAR
Docker
开启应用:
docker-compose pull
docker-compose up
关闭应用:
docker-compose down
Docker环境:
- Java 1.8.0_102
- Mysql 8.0.17
- Tomcat 8.5.11
IDEA
git clone https://github.com/JoyChou93/java-sec-code- 在IDEA中打开,直接点击run按钮即可运行。
例子:
http://localhost:8080/rce/exec?cmd=whoami
返回:
Viarus
Tomcat
git clone https://github.com/JoyChou93/java-sec-code & cd java-sec-code- 生成war包
mvn clean package - 将target目录的war包,cp到Tomcat的webapps目录
- 重启Tomcat应用
例子:
http://localhost:8080/java-sec-code-1.0.0/rce/exec?cmd=whoami
返回:
Viarus
JAR包
先修改pom.xml里的配置,将war改成jar。
<groupId>sec</groupId>
<artifactId>java-sec-code</artifactId>
<version>1.0.0</version>
<packaging>war</packaging>
再打包运行即可。
git clone https://github.com/JoyChou93/java-sec-code
cd java-sec-code
mvn clean package -DskipTests
java -jar 打包后的jar包路径
认证
登录
如果未登录,访问任何页面都会重定向到login页面。用户名和密码如下。
admin/admin123
joychou/joychou123
登出
记住我
Tomcat默认JSESSION会话有效时间为30分钟,所以30分钟不操作会话将过期。为了解决这一问题,引入rememberMe功能,默认过期时间为2周。
贡献者
标签:工具分享, 思路分享, 学习笔记, java安全