gfmcorrea/pentest-web-juice-shop
GitHub: gfmcorrea/pentest-web-juice-shop
一份在本地实验室中对 OWASP Juice Shop 进行 Web 渗透测试的完整实战记录与报告,覆盖漏洞验证、证据收集与修复指导。
Stars: 0 | Forks: 0
# 针对 OWASP Juice Shop 的 Web 应用渗透测试
## 项目概述
本仓库记录了一项在本地 Docker 实验室环境中针对 OWASP Juice Shop 进行的 Web 应用渗透测试项目。
目标是模拟真实的 Web 安全评估工作流,包括环境搭建、侦察、漏洞验证、证据收集、报告、修复指导以及经验总结。
本项目作为我的网络安全作品集的一部分而创建,重点关注 Web 应用安全、应用安全测试以及初级渗透测试岗位。
## 目标
本次评估仅针对本地且经过授权的实验室目标:
```
http://localhost:3000
```
测试的应用程序是在本地使用 Docker 运行的 OWASP Juice Shop。
未对任何外部系统、真实公司、生产环境、公共 IP 地址、第三方应用程序或真实用户进行测试。
## 实验室环境
本项目使用了以下配置:
```
Ubuntu
Docker
OWASP Juice Shop
Firefox
Burp Suite Community Edition
curl
Nmap
Git
GitHub
```
在 XSS 验证阶段,OWASP Juice Shop 以不安全模式重新启动,因为某些危险的 XSS 挑战在默认的容器行为下无法执行。
通过以下方式启用了不安全实验室模式:
```
docker rm -f juice-shop
docker run --rm -p 127.0.0.1:3000:3000 -e NODE_ENV=unsafe --name juice-shop bkimminich/juice-shop
```
此配置仅在本地实验室中使用,用于安全地验证挑战行为。
## 范围
本项目重点关注以下漏洞类别:
```
SQL Injection
Reflected Cross-Site Scripting
Stored Cross-Site Scripting
DOM-Based Cross-Site Scripting
```
以下活动在范围内:
```
Local application reconnaissance
Endpoint mapping
Input mapping
Burp Suite traffic analysis
Manual vulnerability validation
Screenshot evidence collection
Request and response evidence collection
Finding documentation
Remediation documentation
Final reporting
```
以下活动不在范围内:
```
Testing external targets
Testing real users
Testing real companies
Denial-of-service testing
Malware usage
Persistence
Evasion
Real data exfiltration
Destructive actions
Social engineering
Phishing
```
## 方法论
本项目遵循了受 PTES 启发并针对本地 Web 应用实验室进行调整的工作流。
该工作流包括:
```
Pre-engagement preparation
Scope definition
Rules of engagement
Reconnaissance
Endpoint mapping
Input mapping
Vulnerability analysis
Controlled validation
Evidence collection
Impact analysis
Remediation guidance
Final reporting
```
本次评估还参考了 OWASP Top 10 和 OWASP Web 安全测试指南的概念。
## 仓库结构
```
.
├── appendices
│ ├── commands-used.md
│ └── payloads-used.md
├── evidence
│ ├── requests
│ ├── responses
│ ├── screenshots
│ └── tool-outputs
├── findings
│ ├── 01-sql-injection.md
│ ├── 02-reflected-xss.md
│ ├── 03-stored-xss.md
│ └── 04-dom-based-xss.md
├── lessons-learned
│ ├── lessons-learned.md
│ └── skills-demonstrated.md
├── methodology
│ └── ptes-methodology.md
├── reconnaissance
│ ├── endpoint-mapping.md
│ ├── input-mapping.md
│ └── technologies-identified.md
├── remediation
│ └── remediation-summary.md
├── reports
│ └── final-report.md
├── scope
│ ├── rules-of-engagement.md
│ └── scope.md
└── README.md
```
## 已确认的发现
### 1. 登录功能中的 SQL 注入
受影响的 endpoint:
```
POST /rest/user/login
```
状态:
```
Confirmed
```
登录功能存在 SQL 注入漏洞。通过 email 字段提交的恶意 payload 在本地实验室中导致了身份验证绕过行为。
证据:
```
findings/01-sql-injection.md
evidence/requests/sql-injection/
evidence/responses/sql-injection/
evidence/screenshots/sql-injection/
```
### 2. 反射型跨站脚本攻击
受影响的路由:
```
/#/track-result/new?id=
```
状态:
```
Confirmed
```
通过追踪结果路由提供的反射型 XSS payload 在浏览器中执行,并触发了 JavaScript 警告。
证据:
```
findings/02-reflected-xss.md
evidence/requests/reflected-xss/
evidence/responses/reflected-xss/
evidence/screenshots/reflected-xss/
```
### 3. 存储型跨站脚本攻击
受影响的 endpoint:
```
PUT /api/Products/6
```
受影响的产品:
```
Banana Juice (1000ml)
```
状态:
```
Confirmed
```
通过产品描述更新 API 提交了存储型 XSS payload。该 payload 被存储,随后在浏览器中渲染受影响产品的详细信息时执行。
证据:
```
findings/03-stored-xss.md
evidence/requests/stored-xss/
evidence/responses/stored-xss/
evidence/screenshots/stored-xss/
```
### 4. 基于 DOM 的跨站脚本攻击
受影响的路由:
```
/#/search?q=
```
状态:
```
Confirmed
```
通过客户端搜索路由提供的基于 DOM 的 XSS payload 在浏览器中执行。该 payload 通过浏览器端的路由处理机制进行处理,由于它被放置在 URL fragment 标记之后,因此不会在 Burp Suite 中显示为完整的 HTTP 请求。
证据:
```
findings/04-dom-based-xss.md
evidence/requests/dom-xss/
evidence/responses/dom-xss/
evidence/screenshots/dom-xss/
```
## 证据处理
证据按漏洞类型进行分类整理。
请求保存在:
```
evidence/requests/
```
响应保存在:
```
evidence/responses/
```
截图保存在:
```
evidence/screenshots/
```
敏感值(如 cookie 和 token)在发布前已使用以下标记进行脱敏处理:
```
[REDACTED_COOKIE] or [COOKIE], [REDACTED_TOKEN]
```
## 展示的核心技能
本项目展示了以下方面的实践技能:
```
Web application penetration testing
Burp Suite traffic analysis
SQL Injection validation
Reflected XSS validation
Stored XSS validation
DOM-Based XSS validation
Endpoint mapping
Input mapping
Evidence handling
Technical reporting
Remediation writing
Git and GitHub portfolio organization
```
## 主要经验总结
本项目获得的重要经验包括:
```
Lab configuration can affect vulnerability behavior.
Baseline requests are important before payload testing.
A payload being accepted does not automatically confirm a vulnerability.
DOM-Based XSS may not appear as a full request in Burp Suite.
Stored XSS requires proof that the payload was stored and later executed.
Sensitive values must be reviewed and redacted before GitHub publication.
Professional reporting requires technical impact, business impact, and remediation guidance.
```
## 如何在本地复现该实验室
在本地启动 OWASP Juice Shop:
```
docker pull bkimminich/juice-shop
docker run --rm -p 127.0.0.1:3000:3000 --name juice-shop bkimminich/juice-shop
```
在本地实验室中进行不安全的 XSS 挑战验证:
```
docker rm -f juice-shop
docker run --rm -p 127.0.0.1:3000:3000 -e NODE_ENV=unsafe --name juice-shop bkimminich/juice-shop
```
打开应用程序:
```
http://localhost:3000
```
## 道德免责声明
本项目仅在本地且经过授权的实验室环境中使用 OWASP Juice Shop 进行。
本仓库的目的是用于教育目的和专业作品集的开发。
未对任何未经授权的系统进行测试。
标签:Burp Suite, CISA项目, CTI, Docker, OWASP Juice Shop, Web渗透测试, XSS, 安全防御评估, 漏洞情报, 漏洞报告, 网络安全研究, 请求拦截