Andrey-Soares8/web-security-labs
GitHub: Andrey-Soares8/web-security-labs
记录 PortSwigger Web Security Academy 靶场实践过程与漏洞分析的安全学习仓库。
Stars: 0 | Forks: 0
# Web Security 实验室




本仓库包含了 PortSwigger Web Security Academy 靶场的技术 write-up,主要关注 Web 应用安全、漏洞分析以及在受控环境中的实战渗透方法论。
本项目旨在记录我在 Application Security 方面的实践经验,包括技术思路、分析步骤、使用的 payload、证据、漏洞影响以及可能的缓解措施。
所有记录的靶场均在教育且获得授权的环境中完成。
## 目标
通过以下方式构建在 Web 安全方面的实战经验:
- 在受控靶场中分析真实漏洞
- 使用 Burp Suite、浏览器和 DevTools
- 读取、拦截和篡改 HTTP/HTTPS 请求
- 在自动化之前优先进行手动测试
- 清晰客观的技术文档
- 通过截图和 payload 记录证据
- 了解每个漏洞的实际影响
- 创建面向 Application Security 的公开作品集
## 当前进度
| 类别 | 已发布 write-up | 状态 |
|---|---:|---|
| SQL Injection | 9 | ✅ 已记录 |
| Information Disclosure | 4 | ✅ 已记录 |
| Cross-Site Scripting (XSS) | 3 | ✅ 已记录 |
| Broken Authentication | 3 | ✅ 已记录 |
| Access Control | 3 | ✅ 已记录 |
| Server-Side Request Forgery (SSRF) | 2 | ✅ 已记录 |
| XML External Entity (XXE) | 2 | ✅ 已记录 |
| File Upload Vulnerabilities | 2 | ✅ 已记录 |
**总计:已发布 28 篇 write-up。**
## 已记录模块
### SQL Injection
这些 write-up 专注于 SQL Injection 漏洞的利用,包括隐藏数据检索、登录绕过、数据库结构枚举、UNION attacks、提取多个值、基于条件响应和 time-based 的 blind SQL Injection。
**主要演示技术:**
- 篡改易受攻击的参数
- 通过 SQL Injection 绕过身份验证
- 使用 `UNION SELECT`
- 枚举表和列
- 提取敏感数据
- 带有条件响应的 Blind SQL Injection
- 具有 time-based 的 Blind SQL Injection
- 识别 Oracle、MySQL 和 Microsoft 数据库版本
### 信息泄露
这些 write-up 涉及敏感信息的不当暴露、错误消息分析、隐藏文件、管理端点、元数据、应用程序的不安全行为以及通过版本控制信息泄露。
**主要演示技术:**
- 分析错误消息
- 枚举文件和端点
- 识别暴露的 `phpinfo()`
- 利用泄露的信息绕过身份验证
- 利用暴露的 `.git` 目录
- 从公开文件中重建敏感信息
### Cross-Site Scripting (XSS)
关于反射型、存储型和 DOM-based XSS 的 write-up,重点关注执行上下文、分析 sources 和 sinks、最小化 payload 及其对浏览器的影响。
**主要演示技术:**
- 搜索参数中的反射型 XSS
- 评论/聊天功能中的存储型 XSS
- 通过 `location.search` 触发的 DOM XSS
- 分析作为不安全 sink 的 `innerHTML`
- 服务器端执行与浏览器端执行的区别
- 在正确的上下文中验证 payload
### Broken Authentication
关于身份验证漏洞、用户名枚举、2FA 绕过、带有薄弱防护的暴力破解,以及分析应用程序响应差异的 write-up。
**主要演示技术:**
- 用户名枚举
- 靶场环境下的密码暴力破解
- 分析错误消息
- 简单的 2FA 绕过
- 使用 Burp Intruder
- 使用 Resource Pool 控制并发速率
- 使用 Pitchfork 进行并发攻击
### 访问控制
关于授权漏洞、IDOR、非法访问管理区域以及基于用户可控数据的权限控制的 write-up。
**记录的靶场:**
- User ID controlled by request parameter
- Insecure direct object references
- User role controlled by request parameter
**主要演示技术:**
- 通过可预测参数进行的 IDOR
- 通过 ID 枚举对象
- 非法访问其他用户的资源
- 将 cookie `Admin=false` 篡改为 `Admin=true`
- 客户端(client-side)和服务器端(server-side)控制之间的区别
- 按资源验证授权,而不仅仅是按会话验证
### Server-Side Request Forgery (SSRF)
关于滥用服务器端(server-side)功能以迫使后端发起内部请求的 write-up。
**记录的靶场:**
- Basic SSRF against the local server
- Basic SSRF against another back-end system
**主要演示技术:**
- 篡改 `stockApi` 参数
- 通过 `localhost` 访问内部面板
- 理解服务器上下文中的环回地址(loopback)
- 枚举 `192.168.0.X` 内部网络
- 识别 `8080` 端口上的内部后端
- 通过 SSRF 执行管理操作
### XML External Entity (XXE)
关于利用配置不当的 XML 解析器、外部实体和读取内部资源的 write-up。
**记录的靶场:**
- Exploiting XXE using external entities to retrieve files
- Exploiting XXE to perform SSRF attacks
**主要演示技术:**
- 识别 XML 输入
- 创建 `DOCTYPE`
- 使用带 `SYSTEM` 的外部实体
- 使用 `file://` 读取本地文件
- 通过 `&entity;` 调用实体
- 利用 XXE 执行 SSRF
- XML、内部实体与外部实体之间的区别
### 文件上传漏洞
关于不安全的文件上传、在服务器上执行 PHP、基础 web shell 以及绕过薄弱验证的 write-up。
**记录的靶场:**
- Remote code execution via web shell upload
- Web shell upload via Content-Type restriction bypass
**主要演示技术:**
- 上传 `.php` 文件
- 使用 `getcwd()` 确认执行
- 使用 `scandir()` 枚举 filesystem
- 识别相关目录,如 `/home`
- 使用 `file_get_contents()` 读取文件
- 通过更改 `Content-Type` 绕过薄弱验证
- 文件实际扩展名与客户端声明类型之间的区别
## 展现的技能
- 分析 HTTP/HTTPS 请求
- 使用 Burp Suite Proxy 拦截流量
- 使用 Burp Repeater 进行手动测试
- 使用 Burp Intruder 进行枚举和 fuzzing
- 篡改 cookies、参数和 headers
- 利用 SQL Injection
- 基于条件和 time-based 的 Blind SQL Injection
- 利用反射型、存储型和 DOM-based XSS
- 分析 JavaScript、sources 和 sinks
- 利用 Information Disclosure
- IDOR 和 Access Control 漏洞
- 针对本地服务和内部网络的 SSRF
- 利用 XXE 读取文件和进行 SSRF
- 不安全的文件上传和 web shell 执行
- Linux 环境下的 filesystem 枚举
- 利用图像组织技术证据
- 撰写影响、根本原因和缓解措施
## 技术与工具
- Burp Suite
- 带有 DevTools 的浏览器
- HTTP/HTTPS
- HTML
- JavaScript
- SQL
- XML
- File Upload 靶场使用的基础 PHP
- 基础 Linux filesystem
- PortSwigger Web Security Academy
## 仓库结构
```
web-security-labs/
├── sql-injection/
│ ├── screenshots/
│ └── Write-ups de SQL Injection
├── xss/
│ ├── images/
│ └── Write-ups de Cross-Site Scripting
├── information disclosure/
│ └── Write-ups de Information Disclosure
├── Broken Authentication/
│ ├── images/
│ └── Write-ups de falhas de autenticação
├── access-control/
│ ├── images/
│ └── Write-ups de falhas de controle de acesso
├── SSRF/
│ ├── images/
│ └── Write-ups de SSRF
├── XXE/
│ ├── images/
│ └── Write-ups de XXE
├── file-upload/
│ ├── images/
│ └── Write-ups de File Upload
└── README.md
```
## Write-up 结构
每篇 write-up 都遵循一个客观的结构,重点关注技术思路和证据:
```
# 实验名称
## 背景
Descrição breve do lab e do objetivo.
## 初步分析
Primeiros testes, hipóteses e vetores avaliados.
## 利用
Passo a passo da exploração que levou à solução.
## 为何生效
Explicação técnica da causa da vulnerabilidade.
## 影响
Consequência da falha em um ambiente real.
## 缓解措施
Como a falha poderia ser corrigida.
## 经验教训
Pontos práticos absorvidos durante o lab.
```
只要合适,write-up 都会包含来自 Burp Suite、漏洞应用以及靶场最终解决确认的截图。
## 仓库亮点
本仓库不仅记录了最终的 payload。其核心理念是记录完整的思考过程:
- 最初测试了什么
- 哪些方法不起作用
- 为什么放弃特定的攻击向量
- 哪个细节引出了最终解决方案
- 漏洞的根本原因是什么
- 在真实应用中会有什么影响
- 如何正确修复该漏洞
这种格式使作品集更接近于真实的安全技术分析,而不仅仅是一份靶场答案列表。
## 未来目标
- 规范所有模块中的文件名
- 审查旧 write-up 的标题和摘要
- 改善每个靶场的图像组织结构
- 添加按类别划分的内部索引
- 审查技术术语的表述和文本的清晰度
- 更一致地添加严重程度、影响和缓解措施
- 将该仓库发展为面向 Application Security / SOC / Pentest Jr 的作品集
## 伦理使用
本仓库仅供教育目的。
所记录的靶场属于 PortSwigger Web Security Academy,并在受控环境中完成。此处描述的技术仅应用于自有系统、靶场环境或具有明确授权的应用程序。
## 联系方式
GitHub: [@Andrey-Soares8](https://github.com/Andrey-Soares8)
LinkedIn: [andreysoares8](https://www.linkedin.com/in/andreysoares8/)
建立此仓库是为了记录在 Web 应用安全领域的实践进展。
标签:Burp Suite, CISA项目, Web安全, XSS, 多模态安全, 多线程, 数据可视化, 数据泄露, 渗透测试笔记, 漏洞分析, 漏洞情报, 蓝队分析, 路径探测, 靶场实践