sivakumarkondredy47-web/webapp-security-testing-lab
GitHub: sivakumarkondredy47-web/webapp-security-testing-lab
一个记录 Web 应用安全测试方法、漏洞发现与修复建议的实践项目,旨在帮助在受控环境中识别与修复常见 Web 漏洞。
Stars: 0 | Forks: 0
# Web 应用程序安全测试实验室
一个实践项目,记录了 Web 应用程序安全测试方法、发现的漏洞以及修复建议。所有测试均在受控实验室环境中针对故意设计存在漏洞的练习应用程序进行。
## 目标
识别并记录常见的 Web 应用程序漏洞,包括跨站脚本(XSS)、SQL 注入和跨站请求伪造(CSRF),使用手动测试技术和 Burp Suite。
## 使用的工具
| 工具 | 用途 |
|------|------|
| Burp Suite | 拦截和分析 HTTP 请求与响应 |
| DVWA (Damn Vulnerable Web App) | 存在漏洞的目标应用程序 |
| Firefox / Chrome | 基于浏览器的手动测试 |
| OWASP Testing Guide | 方法论参考 |
## 目标应用程序
**DVWA (Damn Vulnerable Web Application)** — 一个故意存在漏洞的 PHP/MySQL Web 应用程序,旨在让安全专业人员在合法环境中练习技能。
## 发现的漏洞
| # | 漏洞 | OWASP 类别 | 严重性 | CWE |
|---|------|------------|--------|-----|
| 1 | 反射型 XSS | A03:2021 — 注入 | 高 | CWE-79 |
| 2 | 存储型 XSS | A03:2021 — 注入 | 高 | CWE-79 |
| 3 | SQL 注入 | A03:2021 — 注入 | 严重 | CWE-89 |
| 4 | CSRF | A01:2021 — 破损的访问控制 | 中 | CWE-352 |
## 测试方法论
1. **侦察** — 映射应用程序中的所有输入字段、表单和参数
2. **拦截** — 使用 Burp Suite 拦截和修改 HTTP 请求
3. **XSS 测试** — 向输入字段和 URL 参数注入 JavaScript 载荷
4. **SQL 注入测试** — 向登录和搜索字段注入 SQL 语法
5. **CSRF 测试** — 分析表单是否缺少防 CSRF 令牌
6. **文档记录** — 记录每个发现的载荷、截图、影响和修复方法
## 示例发现 1 — 反射型 XSS
**端点:** `GET /vulnerabilities/xss_r/?name=`
**使用的工具:** Burp Suite + 手动
**注入的载荷:**
```
```
**结果:** JavaScript 在浏览器中执行 — 弹出了确认漏洞的警告框。
**影响:** 攻击者可以构造恶意 URL 并诱使用户点击,从而窃取会话 Cookie 或重定向到钓鱼页面。
**修复:**
- 使用 HTML 实体编码对所有用户提供的输出进行编码
- 实施内容安全策略(CSP)头部
- 在服务器端验证和清理所有输入
## 示例发现 2 — SQL 注入
**端点:** `POST /vulnerabilities/sqli/`
**使用的工具:** Burp Suite + 手动
**注入的载荷:**
```
' OR '1'='1
```
**结果:** 应用程序从数据库返回了所有用户记录,绕过了认证逻辑。
**影响:** 攻击者可以提取整个数据库、绕过登录、修改或删除记录。
**修复:**
- 使用参数化查询 / 预编译语句
- 永远不要将用户输入直接拼接到 SQL 查询中
- 对数据库账户应用最小权限原则
## 示例发现 3 — CSRF
**端点:** `POST /vulnerabilities/csrf/`
**使用的工具:** Burp Suite + 手动
**问题:** 密码修改表单未包含防 CSRF 令牌。恶意页面可以在用户登录状态下静默提交伪造请求。
**影响:** 如果用户在登录状态下访问恶意页面,攻击者可以更改其密码而用户不知情。
**修复:**
- 在所有状态更改表单上实施防 CSRF 令牌
- 在服务器端验证 `Origin` 和 `Referer` 头部
- 使用 `SameSite=Strict` Cookie 属性
## 文件夹结构
## webapp-security-testing-lab/
├── README.md
├── DISCLAIMER.md
├── findings/
│ ├── 01-reflected-xss.md
│ ├── 02-stored-xss.md
│ ├── 03-sql-injection.md
│ └── 04-csrf.md
├── screenshots/
│ ├── xss-payload-fired.png
│ ├── sqli-db-dump.png
│ └── csrf-poc.png
└── remediation-report.md
## 关键收获
- 用户输入永远不应被信任 — 始终在客户端和服务器端进行验证和清理
- Burp Suite 的拦截功能对于识别隐藏参数和请求操作至关重要
- XSS 和 CSRF 经常被忽视,但结合在一起可能导致完整的账户接管
- 尽管 SQL 注入早已为人所知且可预防,它仍然是最严重的漏洞之一
## 参考资料
- [OWASP Top 10](https://owasp.org/www-project-top-ten/)
- [DVWA - Damn Vulnerable Web Application](https://github.com/digininja/DVWA)
- [PortSwigger Web Security Academy](https://portswigger.net/web-security)
- [CWE-79 XSS](https://cwe.mitre.org/data/definitions/79.html)
- [CWE-89 SQL Injection](https://cwe.mitre.org/data/definitions/89.html)
## 免责声明
本项目仅用于教育目的。所有测试均在故意存在漏洞的应用程序的隔离实验室环境中进行。未经明确许可对任何系统进行测试是非法且不道德的。
*由 Siva Kumar Kondredy 开发 | 网络安全 *
标签:Burp Suite, Chrome, CISA项目, CSRF, CWE-352, CWE-79, CWE-89, DVWA, Firefox, Gradle, HTTP拦截, OWASP Testing Guide, Reflected XSS, SQL Injection, Stored XSS, Streamlit, Web安全, Web渗透, XML 请求, XSS, 安全实验室, 安全开发, 安全测试, 手工测试, 攻击性安全, 注入, 浏览器测试, 漏洞修复, 漏洞情报, 漏洞测试, 网络安全培训, 网络安全审计, 自动化分析, 蓝队分析, 访问控制, 跨站脚本, 跨站请求伪造