下载技能 ZIP
在 Claude 中上传
前往 设置 → 功能 → 技能 → 上传技能
开启并开始使用
测试它
正在使用“IDOR Vulnerability Testing”。 测试 example.com/api/profile?id=1001 是否存在 IDOR 漏洞
预期结果:
开始 IDOR 漏洞评估...
测试 1:递增/递减 ID
原始:GET /api/profile?id=1001 → 返回 user_1001 数据
修改:GET /api/profile?id=1000 → 返回 user_1000 数据
漏洞已确认:检测到横向权限提升。应用程序在返回数据前未验证所有权即返回其他用户的个人资料数据。
受影响的端点:
- /api/profile?id={id}
- /api/user/{id}
建议修复:在返回数据前实施服务器端所有权检查,比较 request.user.id 与请求的个人资料 id。
正在使用“IDOR Vulnerability Testing”。 配置 Burp Suite Intruder 枚举发票 ID
预期结果:
Burp Suite Intruder 配置:
1. 发送 GET /api/invoice/123 到 Intruder(Ctrl+I)
2. 在 URL 中的 '123' 位置设置 payload 位置
3. 攻击类型:Sniper
4. Payloads:
- 类型:Numbers
- 从:1
- 到:500
- 步长:1
5. 开始攻击
分析指南:
- 过滤 200 OK 状态码
- 检查响应内容是否有不同的发票数据
- 验证任何 200 响应是否属于其他用户
- 查找 403/404 模式以识别有效与无效 ID
风险:如果 200 响应返回其他用户的发票数据,这是暴露敏感财务信息的关键 IDOR 漏洞。
正在使用“IDOR Vulnerability Testing”。 为发现的 IDOR 漏洞生成修复代码
预期结果:
修复:地址更新 IDOR
当前易受攻击的代码:
def update_address(request, address_id):
address = Address.objects.get(id=address_id)
address.update(request.data) # 无所有权检查!
安全实现:
选项 1 - 所有权验证:
```python
def update_address(request, address_id):
address = get_object_or_404(Address, id=address_id)
if address.user_id != request.user.id:
return HttpResponseForbidden('Unauthorized')
address.update(request.data)
return JsonResponse({'status': 'success'})
```
选项 2 - 间接引用模式:
```python
def update_address(request):
# 始终按认证用户过滤
address = get_object_or_404(Address, user=request.user)
address.update(request.data)
return JsonResponse({'status': 'success'})
```
建议:使用选项 2(间接引用),因为它通过设计防止 IDOR,而不是依赖验证检查。
安全审计
低风险Static analysis detected 80 external command patterns flagged as Ruby/shell backtick execution. After evaluation, all findings are FALSE POSITIVES - the backticks appear exclusively in Markdown code blocks as educational examples demonstrating IDOR vulnerability testing techniques. The skill provides legitimate security testing guidance for authorized penetration testing activities. No actual executable code or command injection risks present.
低风险问题 (1)
风险因素
⚙️ 外部命令 (80)
质量评分
你能构建什么
Web 应用程序渗透测试
安全专业人员在恶意攻击者发现之前,执行授权渗透测试以识别客户端应用程序中的 IDOR 漏洞
应用程序安全审计
开发团队在安全审查期间或作为安全开发生命周期流程的一部分,验证访问控制实现
漏洞赏金狩猎
独立研究人员通过负责任披露计划,系统性地测试应用程序中的 IDOR 缺陷以获取奖励
试试这些提示
测试 example.com 应用程序是否存在 IDOR 漏洞。我有两个用户账户(user1@test.com 和 user2@test.com)。请逐步指导我如何检查在作为 user1 认证时是否可以访问 user2 的数据。
帮助我配置 Burp Suite Intruder 来测试 /api/user/{id} 和 /api/order/{orderId} 端点是否存在 IDOR 漏洞。设置使用 1 到 1000 数字 payload 的 Sniper 攻击,并向我展示如何分析结果。对 /api/admin/users/{id} 的 GET 请求返回 403 Forbidden。请向我展示如何使用 HTTP 方法切换(POST、PUT、PATCH)和参数污染技术来绕过访问控制并测试 IDOR。我在 /download/receipt_{id}.pdf 中发现了一个 IDOR 漏洞,可以访问其他用户的收据。生成一份概念验证报告,并提供 Python 代码示例,展示正确的访问控制实现以修复此问题。最佳实践
- 在生产系统上执行 IDOR 测试前,务必获得书面授权。记录所有测试活动和发现以进行适当报告。
- 为安全评估创建专用测试账户,而非使用真实用户数据。使用可清晰识别的数据(例如 'IDOR_TEST_USER')来验证访问权限,而无需暴露实际个人信息。
- 结合多种测试技术:参数操作、HTTP 方法切换和自动化枚举。某些 IDOR 漏洞仅通过特定请求模式才会显现。
避免
- 切勿在未经明确许可的应用程序上测试 IDOR 漏洞。未经授权的访问控制测试是非法的,违反计算机欺诈法。
- 在 IDOR 测试期间避免修改或删除数据。仅执行读取操作以验证漏洞存在。数据修改可能导致生产问题和法律责任。
- 不要假设随机标识符(UUID/GUID)可以防止 IDOR。UUID 有时可以通过 API 响应、JavaScript 文件或基于时间的预测算法进行枚举。
常见问题
什么是 IDOR 漏洞?
此技能仅适用于安全专业人员吗?
我需要使用 Burp Suite 才能使用此技能吗?
此技能能否检测所有类型的 IDOR 漏洞?
测试应用程序是否存在 IDOR 漏洞合法吗?
如果我发现了 IDOR 漏洞该怎么办?
开发者详情
作者
sickn33许可证
MIT
仓库
https://github.com/sickn33/antigravity-awesome-skills/tree/main/web-app/public/skills/idor-testing引用
main
文件结构
📄 SKILL.md