SasanLabs/VulnerableApp
GitHub: SasanLabs/VulnerableApp
一款 OWASP 孵化的可扩展 Web 漏洞靶场,专注于为漏洞扫描工具提供测试环境,同时也是学习 Web 安全的实战平台。
Stars: 366 | Forks: 630
#  OWASP VulnerableApp
  [](https://opensource.org/licenses/Apache-2.0)  [](http://makeapullrequest.com) [](https://hub.docker.com/r/sasanlabs/owasp-vulnerableapp/) [](https://codecov.io/gh/SasanLabs/VulnerableApp)
随着 Web 应用程序日益普及,对其进行安全保护的需求变得极为迫切。虽然市面上已有多种漏洞扫描工具,但在开发这些工具时,开发者需要对其进行测试。此外,他们还需要了解漏洞扫描工具的性能表现。目前,现有的用于测试此类工具的易受攻击应用程序寥寥无几,甚至根本没有。市场上确实存在一些故意设计为易受攻击的应用程序,但它们并非为此目的而编写,因此缺乏可扩展性,例如,添加新漏洞相当困难。因此,开发者只能求助于编写自己的易受攻击应用程序,这通常会导致生产力下降和重复工作的痛苦。
**VulnerableApp** 正是考虑到这些因素而构建的。该项目具有可扩展、易扩展、易于集成且易于学习的特点。
由于解决上述问题需要添加各种漏洞,因此这也使其成为学习各种安全漏洞的绝佳平台。
### 用户界面

## 使用的技术
- Java8
- Spring Boot
- ReactJS
- Javascript/TypeScript
## 目前处理的漏洞类型
1. [JWT 漏洞](https://github.com/SasanLabs/VulnerableApp/blob/master/src/main/java/org/sasanlabs/service/vulnerability/jwt/)
2. [命令注入](https://github.com/SasanLabs/VulnerableApp/tree/master/src/main/java/org/sasanlabs/service/vulnerability/commandInjection)
3. [加密失败](https://github.com/SasanLabs/VulnerableApp/tree/master/src/main/java/org/sasanlabs/service/vulnerability/cryptographicFailures)
4. [文件上传漏洞](https://github.com/SasanLabs/VulnerableApp/tree/master/src/main/java/org/sasanlabs/service/vulnerability/fileupload)
5. [路径遍历漏洞](https://github.com/SasanLabs/VulnerableApp/tree/master/src/main/java/org/sasanlabs/service/vulnerability/pathTraversal)
6. [SQL 注入](https://github.com/SasanLabs/VulnerableApp/tree/master/src/main/java/org/sasanlabs/service/vulnerability/sqlInjection)
1. [基于错误的 SQLi](https://github.com/SasanLabs/VulnerableApp/blob/master/src/main/java/org/sasanlabs/service/vulnerability/sqlInjection/ErrorBasedSQLInjectionVulnerability.java)
2. [基于联合查询的 SQLi](https://github.com/SasanLabs/VulnerableApp/blob/master/src/main/java/org/sasanlabs/service/vulnerability/sqlInjection/UnionBasedSQLInjectionVulnerability.java)
3. [盲注 SQLi](https://github.com/SasanLabs/VulnerableApp/blob/master/src/main/java/org/sasanlabs/service/vulnerability/sqlInjection/BlindSQLInjectionVulnerability.java)
7. [XSS](https://github.com/SasanLabs/VulnerableApp/tree/master/src/main/java/org/sasanlabs/service/vulnerability/xss)
1. [持久型 XSS](https://github.com/SasanLabs/VulnerableApp/tree/master/src/main/java/org/sasanlabs/service/vulnerability/xss/persistent)
2. [反射型 XSS](https://github.com/SasanLabs/VulnerableApp/tree/master/src/main/java/org/sasanlabs/service/vulnerability/xss/reflected)
8. [XXE](https://github.com/SasanLabs/VulnerableApp/tree/master/src/main/java/org/sasanlabs/service/vulnerability/xxe)
9. [开放重定向](https://github.com/SasanLabs/VulnerableApp/tree/master/src/main/java/org/sasanlabs/service/vulnerability/urlRedirection)
1. [基于 Http 3xx 状态码](https://github.com/SasanLabs/VulnerableApp/blob/master/src/main/java/org/sasanlabs/service/vulnerability/urlRedirection/Http3xxStatusCodeBasedInjection.java)
10. [SSRF](https://github.com/SasanLabs/VulnerableApp/tree/master/src/main/java/org/sasanlabs/service/vulnerability/ssrf)
## 为项目做贡献
您可以通过多种方式为项目做出贡献:
1. 如果您是开发者并且刚开始接触该项目,建议您查看包含 `good first issue` 的 [问题列表](https://github.com/SasanLabs/VulnerableApp/issues),这是一个很好的起点。
2. 如果您是开发者或安全专业人员,希望添加新的漏洞类型,可以通过运行 `./gradlew GenerateSampleVulnerability` 来生成示例漏洞。它将生成包含占位符和注释的示例漏洞模板。修改后的文件可以在命令的日志或 GitHub 历史记录中看到。您可以导航到这些文件,填充占位符,然后构建项目以查看更改的效果。
3. 如果您希望通过宣传该项目或致力于项目的发展来做出贡献,请随时在讨论区或问题区添加您的想法,我们可以进行讨论。
## 运行项目
有 2 种方式可以运行该项目:
1. 运行项目最简单的方法是使用 Docker 容器,它将运行包含所有组件的完整版 VulnerableApplication。作为 Docker 应用程序运行时,请执行以下步骤:
1. 下载并安装 [Docker Compose](https://docs.docker.com/compose/install/)
2. 克隆此 Github 仓库
3. 打开终端并导航到项目根目录
4. 运行命令 ```docker-compose pull && docker-compose up```
5. 在浏览器中访问 `http://localhost`,这将显示 VulnerableApp 的用户界面。
**注意**:上述步骤将运行最新的未发布 VulnerableApp 版本。如果您想运行最新发布的版本,请使用 docker **latest** 标签。
2. 另一种将 VulnerableApp 作为独立易受攻击应用程序运行的方法是:
1. 导航到 Github 中的 [发布版块](https://github.com/SasanLabs/VulnerableApp/releases) 并下载最新发布版本的 Jar 包
2. 打开终端并导航到项目根目录
3. 运行命令 ```java -jar VulnerableApp-*```
4. 在浏览器中访问 `http://localhost:9090/VulnerableApp`。这将显示 VulnerableApp 的旧版用户界面。
## 构建项目
有 2 种方式可以构建和使用该项目:
1. 作为 Docker 应用程序运行,这将有助于运行完整的 VulnerableApplication。作为 Docker 应用程序运行时,请执行以下步骤:
1. 通过运行 `./gradlew jibDockerBuild` 构建 Docker 镜像
2. 下载 [Docker-Compose](https://github.com/SasanLabs/VulnerableApp-facade/blob/main/docker-compose.yml) 并在同一目录下运行 `docker-compose up`
3. 在浏览器中访问 `http://localhost`,这将显示 VulnerableApp 的用户界面。
2. 作为 SpringBoot 应用程序运行,它将运行旧版 UI 或 Rest API,但具有调试和解决问题的优势。这是简单的方法,
1. 将项目导入您喜欢的 IDE 并运行它
2. 在浏览器中访问:`http://localhost:9090/VulnerableApp`,这将显示 VulnerableApp 的旧版用户界面,您可以使用它进行调试和测试。
### 连接到嵌入式 H2 数据库
如需从浏览器访问数据库,请访问:`http://localhost:9090/VulnerableApp/h2`
数据库连接属性:
```
JDBC Url: jdbc:h2:mem:testdb
User Name: admin
Password: hacker
```
## 联系方式
如果您在任何步骤上遇到困难,或对项目及其目标有任何疑问,请随时发送邮件至 karan.sasan@owasp.org 或提出 [问题](https://github.com/SasanLabs/VulnerableApp/issues),我们将尽力为您提供帮助。
## 文档和参考
1. [文档](https://sasanlabs.github.io/VulnerableApp)
2. [设计文档](https://sasanlabs.github.io/VulnerableApp/DesignDocumentation.html)
3. [Owasp VulnerableApp](https://owasp.org/www-project-vulnerableapp/)
4. [OWASP Spotlight 系列概述视频](https://www.youtube.com/watch?v=HRRTrnRgMjs)
5. [概述视频](https://www.youtube.com/watch?v=AjL4B-WwrrA&ab_channel=OwaspVulnerableApp)
### 博客
1. [Owasp-VulnerableApp 概述 - Medium 文章](https://hussaina-begum.medium.com/an-extensible-vulnerable-application-for-testing-the-vulnerability-scanning-tools-cc98f0d94dbc)
2. [Owasp-VulnerableApp 概述 - Blogspot 帖子](https://hussaina-begum.blogspot.com/2020/10/an-extensible-vulnerable-application.html)
3. [Kenji Nakajima 介绍的 Owasp VulnerableApp](https://jpn.nec.com/cybersecurity/blog/220520/index.html)
4. [基于 Gen AI 的平台 Shannon 攻击 VulnerableApp](https://qiita.com/fiord/items/9351bcff6d646862f181)
### 故障排除参考
1. [Reddit 利用 SQL 注入漏洞](https://www.reddit.com/r/hacking/comments/11wtf17/owasp_vulnerableappfacade_sql_injection/)
### 其他语言的 Readme
1. [俄语](https://github.com/SasanLabs/VulnerableApp/tree/master/docs/i18n/ru/README.md)
2. [中文](https://github.com/SasanLabs/VulnerableApp/tree/master/docs/i18n/zh-CN/README.md)
3. [印地语](https://github.com/SasanLabs/VulnerableApp/tree/master/docs/i18n/hi/README.md)
4. [旁遮普语](https://github.com/SasanLabs/VulnerableApp/tree/master/docs/i18n/pa/README.md)
标签:Apache 2.0, CISA项目, DNS解析, Docker, Gradle, OWASP Top 10, Web安全, Web应用程序, XML 请求, 后台面板检测, 域名枚举, 域名枚举, 安全开发, 安全教育, 安全测试, 安全防御评估, 开源项目, 恶意输入, 攻击性安全, 数据可视化, 数据展示, 无摄像头检测, 漏洞分析, 漏洞测试, 漏洞演示, 漏洞靶场, 红队, 网络安全, 网络测绘, 蓝队分析, 请求拦截, 路径探测, 防御检测, 隐私保护