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, 反取证, 安全报告, 安全评估, 实战笔记, 提权, 数据库提权, 数据泄露, 文件上传漏洞, 渗透测试报告, 漏洞情报, 灰盒测试, 电商安全, 网络安全, 越权漏洞, 跨站脚本攻击, 隐私保护