[ PROMPT_NODE_27618 ]
IDOR 漏洞测试
[ SKILL_DOCUMENTATION ]
# IDOR 漏洞测试
## 目的
提供系统化的方法来识别和利用 Web 应用程序中的不安全的对象直接引用 (IDOR) 漏洞。此技能涵盖数据库对象引用和静态文件引用、使用参数操作和枚举的检测技术、通过 Burp Suite 进行的利用,以及针对未经授权访问的应用程序加固修复策略。
## 输入 / 前置条件
- **目标 Web 应用程序**: 具有用户特定资源的应用程序 URL
- **多个用户账户**: 至少两个测试账户以验证跨用户访问
- **Burp Suite 或代理工具**: 用于请求操作的拦截代理
- **授权**: 安全测试的书面许可
- **了解应用程序流程**: 了解对象是如何被引用的(ID、文件名)
## 输出 / 交付物
- **IDOR 漏洞报告**: 已发现的访问控制绕过文档
- **概念验证 (PoC)**: 跨用户上下文未经授权访问数据的证据
- **受影响的端点**: 易受攻击的 API 端点和参数列表
- **影响评估**: 数据暴露严重性分类
- **修复建议**: 针对已识别漏洞的具体修复方案
## 核心工作流
### 1. 理解 IDOR 漏洞类型
#### 数据库对象的直接引用
当应用程序通过用户可控参数引用数据库记录时发生:
# 原始 URL (以用户 A 身份验证)
example.com/user/profile?id=2023
# 操作尝试 (访问用户 B 的数据)
example.com/user/profile?id=2022
#### 静态文件的直接引用
当应用程序暴露可被枚举的文件路径或名称时发生:
# 原始 URL (用户 A 的收据)
example.com/static/receipt/205.pdf
# 操作尝试 (用户 B 的收据)
example.com/static/receipt/200.pdf
### 2. 侦察与设置
#### 创建多个测试账户
账户 1: "attacker" - 主要测试账户
账户 2: "victim" - 我们尝试访问其数据的账户
#### 识别对象引用
捕获并分析包含以下内容的请求:
- URL 中的数字 ID: `/api/user/123`
- 参数中的数字 ID: `?id=123&action=view`
- 请求体中的数字 ID: `{"userId": 123}`
- 文件路径: `/download/receipt_123.pdf`
- GUIDs/UUIDs: `/profile/a1b2c3d4-e5f6-...`
#### 映射用户 ID
# 访问用户 ID 端点 (如果可用)
GET /api/user-id/
# 注意 ID 模式:
# -