Skip to content

Latest commit

 

History

16 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

JavaVul

介绍

Java 安全漏洞靶场集合,主要用于验证 IAST、被动扫描器和各类安全测试工具在真实业务接口场景下的效果。

仓库把不同漏洞拆成独立项目,并通过 Docker 为每个靶场提供隔离运行环境,方便按项目单独验证,也方便统一批量回放流量。

文章:IAST实践总结

快速开始

  1. 克隆项目:
git clone https://github.com/lokerxx/JavaVul
cd JavaVul
  1. 按需选择一种启动方式:
文件 作用 推荐命令
docker-compose-local.yaml 宿主机本地先构建,再启动全部靶场,构建速度更快,推荐 bash run-local-build.sh
docker-compose-build.yaml 直接在容器内构建各项目,速度较慢 bash run-build_images.sh
docker-compose-remote.yaml 直接拉取我已发布的镜像,更新可能不及时 bash run-remote.sh
  1. 启动后按需使用:

部署

下面的版本信息是我开发这个仓库时使用过的参考环境,不要求完全一致,但建议使用较新的 Docker 和 Docker Compose。

Maven 版本参考:

# mvn --version
Apache Maven 3.0.5 (Red Hat 3.0.5-17)
Maven home: /usr/share/maven
Java version: 1.8.0_192, vendor: Oracle Corporation
Java home: /usr/java/jdk1.8.0_192/jre
Default locale: en_US, platform encoding: UTF-8
OS name: "linux", version: "3.10.0-1160.el7.x86_64", arch: "amd64", family: "unix"

Docker / Docker Compose 版本参考:

# docker version
Client:
 Version:         1.13.1
 API version:     1.26
 Package version: docker-1.13.1-209.git7d71120.el7.centos.x86_64
 Go version:      go1.10.3
 Git commit:      7d71120/1.13.1
 Built:           Wed Mar  2 15:25:43 2022
 OS/Arch:         linux/amd64

Server:
 Version:         1.13.1
 API version:     1.26 (minimum version 1.12)
 Package version: docker-1.13.1-209.git7d71120.el7.centos.x86_64
 Go version:      go1.10.3
 Git commit:      7d71120/1.13.1
 Built:           Wed Mar  2 15:25:43 2022
 OS/Arch:         linux/amd64
 Experimental:    false

# docker-compose version
docker-compose version 1.18.0, build 8dd22a9
docker-py version: 2.6.1
CPython version: 3.6.8
OpenSSL version: OpenSSL 1.0.2k-fips  26 Jan 2017

如果宿主机默认的 Docker / Docker Compose 版本过低,建议升级到更新版本后再运行。

 yum remove docker \
              docker-client \
              docker-client-latest \
              docker-common \
              docker-latest \
              docker-latest-logrotate \
              docker-logrotate \
              docker-engine

sudo yum install -y yum-utils
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

sudo yum install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin docker-compose

运行说明

  • 当前 compose 默认已经挂载 agent/agent.jar。如果你要测试 IAST Agent,可以直接替换这个文件。
  • SimpleAgent 的构建与挂载说明见 doc/projects/simpleagent.md
  • 仓库当前不再包含 index 首页控制台服务,测试请直接访问各靶场端口和对应入口。
  • 仓库里的靶场较多,默认每个应用分配 512M-1024M 内存;全部启动时建议预留 16G 左右内存。
  • 如果需要增大内存测试 Agent 或压力场景,可以统一调整 compose 文件里的 -Xms512m -Xmx1024m

基础 Web 漏洞代码审计细节可参考:

支持靶场

当前仓库里的数据库类靶场已经统一为本地 SQLite 初始化,base_vulbase_vul_repairdruid_unauthorizeddruid_authorized 都不再依赖 MySQL。 目前项目内已经移除了 MySQL 运行依赖,启动单体靶场时不需要额外准备数据库容器。

可以按下面几类理解当前仓库里的靶场:

基础 Web 漏洞与数据访问

文件夹 安全漏洞 测试用途 备注
base_vul SQL 注入、XSS、不安全文件操作、重定向、ReDoS、CRLF、命令执行、SPEL、SSRF、SSTI、不安全反射、XXE 漏洞 综合基础漏洞集合
base_vul_repair base_vul 对应的修复版本 修复 方便与漏洞版对照
HSQLDB HSQLDB 注入漏洞 修复、漏洞
Hibernate Hibernate 注入漏洞 修复、漏洞
druid_unauthorized Druid 未授权访问 漏洞
druid_authorized Druid 未授权访问修复版 修复
logic_vul 伪造身份、水平越权、垂直越权、流程绕过 漏洞 业务逻辑漏洞综合靶场

Spring / Java 生态组件

文件夹 安全漏洞 测试用途 备注
actuator_unauthorized_1.X Actuator 未授权访问 1.X 漏洞
actuator_authorized_1.X Actuator 未授权访问 1.X 修复版 修复
actuator_unauthorized_2.X Actuator 未授权访问 2.X 漏洞
actuator_authorized_2.X Actuator 未授权访问 2.X 修复版 修复
log4jvul Log4j2 漏洞 漏洞
wxpay-xxe 微信支付 XXE 漏洞
cas_xxe CAS XXE 漏洞 CAS 3.1.1-3.5.1 存在 XXE,修复版本为 3.6.0+

反序列化与表达式执行

文件夹 安全漏洞 测试用途 备注
fastjson-* 各版本 Fastjson 反序列化漏洞 漏洞 多版本并行维护
CVE-2019-10173 XStream 反序列化漏洞 漏洞
CVE-2019-12384 Jackson-databind 反序列化漏洞 漏洞
collections Commons Collections 反序列化 漏洞 已接入统一 compose 与回放脚本
ghost-bits Ghost Bits / Cast Attack 低字节语义差异 漏洞 综合演示上传绕过、路径穿越、文件读取、CRLF、Fastjson、SQLi 与 XSS

Shiro 系列

文件夹 安全漏洞 测试用途 备注
shior-1.2.4 Apache Shiro 1.2.4 RememberMe 反序列化漏洞 漏洞 CVE-2016-4437
shiro-1.25_1.42 Apache Shiro RememberMe Padding Oracle 靶场 漏洞 CVE-2019-12422
shiro-1.8.0 Apache Shiro 1.8.0 弱 Key 集成配置靶场 漏洞 高版本仍使用公开弱 rememberMe key
shiro-cve-2020-17523 Apache Shiro 认证绕过靶场 漏洞 CVE-2020-17523

Struts2 系列

文件夹 安全漏洞 测试用途 备注
struts2-s2-001 Struts2 S2-001 OGNL 回填解析靶场 漏洞 CVE-2007-4556
struts2-s2-003 Struts2 S2-003 参数名 OGNL 上下文污染靶场 漏洞 CVE-2008-6504
struts2-s2-005 Struts2 S2-005 参数名 OGNL 命令执行靶场 漏洞 CVE-2010-1870
struts2-s2-007 Struts2 S2-007 类型转换错误 OGNL 靶场 漏洞 CVE-2012-0838
struts2-s2-009 Struts2 S2-009 参数二次求值 OGNL 靶场 漏洞 CVE-2011-3923
struts2-s2-012 Struts2 S2-012 redirect 变量 OGNL 靶场 漏洞 CVE-2013-1965
struts2-s2-013 Struts2 S2-013 includeParams OGNL 靶场 漏洞 CVE-2013-1966
struts2-s2-015 Struts2 S2-015 通配符与二次引用 OGNL 靶场 漏洞 CVE-2013-2134

文档导航

项目操作教程

每个项目的独立操作教程已经整理到 doc/ 目录,建议优先从总索引进入:

doc/README.md

如果你想直接看“按项目怎么测”的总表入口,可以看:

doc/project-tutorials.md

JS Hook 模块

仓库当前包含一个独立的 JS-hook 训练场,定位是前端逆向、协议拆解与 XHR/Hook 实战题库。

  • 目录:JS-hook
  • 默认端口:48159
  • 题库入口:http://宿主机IP:48159/js-labs.html
  • 管理页:http://宿主机IP:48159/admin.html

当前这套题库主要覆盖三类内容:

  • JS 逆向训练:动态执行、字符串数组恢复、控制流平坦化、反调试、JSFuck、动态签名、source map 缺失定位。
  • 协议与加解密:AES-CBC、AES-ECB、AES-GCM、AES-RSA、RSA、DES、3DES、SM2、SM4、双向报文、头签名、动态密钥、重放窗口。
  • XHR / Hook 实战:query sign / encrypt、form body、JSON 字段加密、响应解密、cookie、Hex、Protobuf、拦截器链、视频分片。

模块运行方式与其他单体靶场一致,直接执行 bash run-local-build.sh 即可;单独说明见 doc/projects/js-hook.md

Ghost Bits 模块

仓库当前包含一个独立的 ghost-bits 靶场,定位是复现 Black Hat Asia 2026 公开研究《Cast Attack: A New Threat Posed by Ghost Bits in Java》中提到的低字节语义差异问题。

  • 目录:ghost-bits
  • 默认端口:9943
  • 页面入口:http://宿主机IP:9943/ghost-bits
  • 项目文档:doc/projects/ghost-bits.md

当前这套靶场主要覆盖三类内容:

  • 基础对照:low-byte 视图、上传扩展名绕过。
  • 路径与协议边界:路径穿越、/etc/passwd 文件读取、CRLF / Header 注入。
  • 解析器与业务 Sink:Fastjson @type、JSON 字段绕过、Ghost Bits -> SQLi、Ghost Bits -> XSS。

模块运行方式与其他单体靶场一致,直接执行 bash run-local-build.sh 即可;推荐先从页面入口进入,再按 doc/project-tutorials.md 里的顺序逐个验证。

参考开发代码

Star History Chart

Star History Chart

待进行

  • cas-client xxe(漏洞和修复)
  • SQL注入传 order by 参数, 白名单列表(误报)

About

JAVA 安全靶场,IAST 测试用例,JAVA漏洞复现,代码审计,SAST测试用例,安全扫描(主动和被动),JAVA漏洞靶场,RASP测试用例 ; Java Security Testbed, IAST Test Cases, Java Vulnerability Reproduction, Code Auditing, SAST Test Cases, Security Scanning (Active and Passive), Java Vulnerability Testbed, RASP Test Cases

Resources

Stars

298 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages