anjalisingh-cyber/Web-Application-Pentest-Report
GitHub: anjalisingh-cyber/Web-Application-Pentest-Report
一份完整的 Web 应用渗透测试报告,记录了针对电商平台从 SQL 注入到管理员接管的 15+ 漏洞发现与利用全过程。
Stars: 0 | Forks: 0
# Web-应用-渗透测试-报告
基于 OWASP 方法论对电商平台进行渗透测试:从 SQL 注入到管理员权限接管,发现 15+ 个漏洞
# Web 应用渗透测试报告 - 电商平台
使用 **OWASP Web Application Security Testing Guide** 方法论对电商平台进行的综合性 Web 应用安全评估。本次评估通过利用包括 SQL 注入、跨站脚本攻击 (XSS) 和不安全的直接对象引用 (IDOR) 等相关联漏洞,最终实现了完全的管理员权限接管。
## 执行摘要
| 细节 | 信息 |
|---|---|
| **目标** | 电子商务购物平台 (PHP/MySQL, Apache 2.4.3) |
| **方法论** | OWASP Web Application Security Testing Guide v4 |
| **测试类型** | 灰盒渗透测试 |
| **关键发现** | 跨越 11 个 OWASP 测试类别的 15+ 个漏洞 |
| **最高影响** | 通过 SQL 注入完全提取管理员凭据 → 完整数据库导出 |
| **环境** | Kali Linux 攻击机对抗隔离的实验室目标 |
## 发现的漏洞
### 严重
| # | 漏洞 | 影响 |
|---|---|---|
| 1 | **SQL 注入** (手工 + SQLMap) | 完整数据库导出 — 提取了所有用户凭据、管理员密码哈希、订单数据和 PII。实现了管理员级别的访问权限。 |
| 2 | **通过文件上传绕过实现存储型 XSS** | 使用 Burp Suite 请求拦截绕过了客户端文件类型验证。将恶意 HTML/JS 作为头像图片上传。 |
| 3 | **不安全的直接对象引用 (IDOR)** | 通过篡改 `oid` 参数访问了其他用户的订单发票和物流详情。 |
### 高危
| # | 漏洞 | 影响 |
|---|---|---|
| 4 | **反射型跨站脚本攻击 (Reflected XSS)** | 通过搜索字段注入 `` — 无输入过滤。 |
| 5 | **基于 DOM 的跨站脚本攻击 (DOM-Based XSS)** | 通过精心构造的 URL 载荷利用了客户端 DOM 操作。 |
| 6 | **无 SSL/TLS — 仅 HTTP** | 包括凭据在内的所有流量均以明文传输。已通过 `sslscan` 确认。 |
| 7 | **缺少账户锁定机制** | 使用 Hydra/ZAP Fuzzer 进行了 1000+ 次登录尝试,无速率限制或锁定机制。 |
| 8 | **弱密码重置机制** | 更改密码仅需邮箱 + 联系号码(无需旧密码,无安全问题)。 |
| 9 | **目录遍历** | 未经身份验证访问了 `/admin/productimages/`、`/admin/scripts/` 及内部目录。 |
| 10 | **权限提升** | 通过篡改 URL 参数 (`pid`),在未认证情况下向购物车/收藏夹添加了商品。 |
### 中危
| # | 漏洞 | 影响 |
|---|---|---|
| 11 | **点击劫持** | 无 `X-Frame-Options` 头。使用 Burp Clickbandit 演示了攻击。 |
| 12 | **缺失安全头** | 无 CSP、X-XSS-Protection、X-Content-Type-Options 或 HSTS 头。 |
| 13 | **不安全的 Cookie** | 会话 Cookie 未设置 `HttpOnly` 或 `Secure` 标志。 |
| 14 | **信息泄露** | `phpinfo.php` 可公开访问。`robots.txt` 暴露了内部文件路径。服务器版本在响应头和错误页面中暴露。 |
| 15 | **弱注册策略** | 接受单字符的用户名/密码。允许重复注册。无邮箱验证。 |
| 16 | **HTML 注入** | 通过未过滤的输入在搜索结果中渲染任意 HTML。 |
## 使用的工具
| 工具 | 用途 |
|---|---|
| **Nmap** | 服务枚举、端口扫描、版本检测 (`-sV`, `-sT`, `-p0-65535`) |
| **Nikto** | Web 服务器漏洞扫描、响应头分析、目录发现 |
| **OWASP ZAP** | 自动化扫描、爬虫 (发现 283 个 URL)、被动/主动漏洞检测 |
| **DirBuster** | 目录和文件暴力破解 (发现 `/admin/scripts/`、`/phpmyadmin/` 及暴露的目录) |
| **SQLMap** | 自动化 SQL 注入利用 (`--forms --crawl=2 --dump`) — 提取了 7 个数据库表 |
| **Burp Suite** | 请求拦截、文件上传绕过、点击劫持 PoC (Clickbandit) |
| **Hydra** | 暴力破解认证测试 (1000+ 组凭据组合) |
| **Netcat** | HTTP 头部检查、`X-Powered-By` 头部发现 |
| **sslscan** | SSL/TLS 配置评估 — 确认所有协议均被禁用 |
| **curl/wget** | 手动审查 `robots.txt`、响应头分析 |
## 方法论
本次评估遵循 OWASP Web Application Security Testing Guide 的所有 11 个测试类别:
```
1. Information Gathering → Nmap, Nikto, DirBuster, ZAP Spider
2. Configuration Management → Nikto scan, directory indexing checks
3. Identity Management → SQLMap role enumeration, registration testing
4. Authentication Testing → Hydra brute-force, password policy checks
5. Authorization Testing → IDOR, directory traversal, privilege escalation
6. Session Management → Cookie attribute analysis, timeout testing
7. Input Validation → XSS (reflected/stored/DOM), SQLi, HTML injection
8. Error Handling → 404 page information leakage
9. Cryptography → sslscan, Burp Suite traffic interception
10. Business Logic → Workflow bypass, request forgery, upload validation
11. Client-Side Testing → DOM XSS, JavaScript injection, clickjacking
```
## 攻击链 — 从零到管理员
```
Reconnaissance (Nmap + Nikto)
│
├── Discovered Apache 2.4.3, PHP 5.4.7, MySQL, ProFTPD 1.3.4a
├── Found phpinfo.php, robots.txt with internal paths
│
▼
Directory Enumeration (DirBuster + ZAP)
│
├── Exposed /admin/scripts/, /includes/config.php, /admin/index.php
├── 283 URLs mapped via ZAP Spider
│
▼
SQL Injection (Manual + SQLMap)
│
├── Confirmed SQLi in /my-cart.php with: 1' AND '1'='1' --
├── SQLMap: extracted 7 tables from 'shopping' database
├── Dumped admin table: username='admin', password hash extracted
├── Dumped users table: emails, passwords, addresses, contact info
│
▼
Full Admin Access Achieved
│
├── Admin panel: user PII visible in plaintext
├── Password reset exploitable (email + contact = account takeover)
├── File upload bypass via Burp → stored XSS potential
│
▼
Complete Compromise Demonstrated
```
## 修复建议摘要
| 漏洞 | 推荐修复方案 |
|---|---|
| SQL 注入 | 对所有数据库交互使用参数化查询 / 预编译语句 |
| XSS (所有类型) | 输入验证 + 输出编码。实施 CSP 头 |
| 缺失 HTTPS | 部署 SSL/TLS 证书,强制使用 HSTS |
| 弱认证 | 实施账户锁定 (尝试 3-5 次后锁定),强制密码复杂性,添加 MFA |
| IDOR | 对每个资源请求实施服务器端授权检查 |
| 目录遍历 | 禁用目录索引,限制文件路径访问 |
| 文件上传绕过 | 验证文件内容 (魔术字节),而不仅仅是扩展名 |
| 信息泄露 | 移除 `phpinfo.php`,自定义错误页面,剥离服务器版本头 |
| 点击劫持 | 添加 `X-Frame-Options: DENY` 和 `Content-Security-Policy: frame-ancestors 'none'` |
| 不安全的 Cookie | 在所有会话 Cookie 上设置 `HttpOnly`、`Secure` 和 `SameSite` 标志 |
## 仓库结构
```
├── README.md # This file
├── report/
│ └── Web_Application_Pentest_Report.pdf # Full detailed report
├── payloads/
│ ├── xss_payloads.txt # XSS test payloads used
│ ├── sqli_payloads.txt # SQL injection payloads used
│ └── auth_bypass_payloads.txt # Authentication bypass attempts
├── scripts/
│ ├── recon.sh # Automated recon script (Nmap + Nikto + DirBuster)
│ └── header_check.sh # Security header verification script
└── screenshots/
└── [redacted for repository]
```
## 关键要点
- 单个 SQL 注入漏洞即可在几分钟内导致应用程序被完全接管
- 纵深防御的失败加剧了风险 — 没有输入验证,没有加密,没有访问控制
- 该应用程序零速率限制,允许无限制的暴力破解尝试
- 仅基于扩展名的文件上传验证可以通过请求拦截轻易绕过
## 免责声明
本次评估是在经过授权的隔离实验室环境中进行的,作为学术课程 (CMP509 — 道德黑客,阿伯泰大学) 的一部分。未测试或损害任何真实世界的系统。此处记录的所有发现和技术仅用于教育和专业作品集目的。
## 作者
**Anjali Singh**
阿伯泰大学,邓迪,道德黑客理学硕士
HCLTech 网络安全工程师
*如果您觉得这个项目有用,请考虑给它一个 ⭐*
标签:Apache, Burp Suite, CISA项目, CTI, IDOR, OpenVAS, PHP, SQLMap, XSS, 反取证, 安全报告, 安全评估, 实战笔记, 提权, 数据库提权, 数据泄露, 文件上传漏洞, 渗透测试报告, 漏洞情报, 灰盒测试, 电商安全, 网络安全, 越权漏洞, 跨站脚本攻击, 隐私保护