温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

如何用BurpSuite实现越权漏洞IDOR的自动发现识别

发布时间:2021-12-18 15:10:49 来源:亿速云 阅读:351 作者:柒染 栏目:安全技术
# 如何用BurpSuite实现越权漏洞IDOR的自动发现识别 ## 一、IDOR漏洞概述 **不安全的直接对象引用**(Insecure Direct Object Reference,IDOR)是OWASP Top 10中的经典漏洞类型。攻击者通过修改请求参数(如用户ID、订单号等)直接访问未授权资源,典型场景包括: - 用户A通过修改URL中的`user_id=1001`访问用户B的数据 - 通过递增发票编号`/invoice/12345`获取他人票据 - 未验证权限的API接口返回敏感数据 ## 二、BurpSuite自动化检测原理 BurpSuite通过以下机制实现IDOR自动化检测: 1. **流量代理**:拦截所有HTTP请求/响应 2. **参数标记**:识别潜在的可控参数(数字、GUID等) 3. **变异测试**:自动修改参数值并重放请求 4. **差异分析**:对比响应内容判断越权可能 ## 三、具体操作步骤 ### 3.1 环境准备 ```bash # 所需工具 - BurpSuite Professional 2023+ - 测试目标:DVWA/vulnerable-api - 浏览器配置代理:127.0.0.1:8080 

3.2 基础配置流程

  1. 启动代理监听

  2. 爬取目标站点

    # 使用Burp Spider自动爬取 Target > Site map > Right click > Spider this host 
  3. 启用Scanner模块

    • Dashboard > New scan > 配置扫描范围
    • 勾选”Audit checks - Insecure direct object references”

3.3 高级自动化技巧

方法一:使用Intruder模块

  1. 拦截包含ID参数的请求:

    GET /api/userinfo?uid=1001 
  2. 发送至Intruder > Positions:

    GET /api/userinfo?uid=§1001§ 
  3. 设置Payload类型:

    • Numbers:1001-1005(顺序递增)
    • Custom list:已知存在的ID值
    • Runtime file:导入用户ID字典
  4. 添加Grep-Match规则:

    // 标记敏感字段用于差异比对 "email":".+@.+\\..+", "phone":"\\d{11}" 

方法二:Autorize插件

  1. 安装扩展:

    • BApp Store > 搜索”Autorize” > Install
  2. 配置检测逻辑:

    # 以低权限用户(如user)登录后 # 插件自动用高权限账户(如admin)重放请求 
  3. 检查响应差异:

    • 200状态码 + 不同数据内容 → 潜在IDOR
    • 403状态码 → 安全

3.4 结果验证方法

  1. 人工确认步骤

    • 相同请求不同参数返回数据相似度 >80%
    • 响应包含其他用户的PII信息
  2. Burp Scanner报告示例

    <issue> <severity>High</severity> <confidence>Certain</confidence> <detail> 通过修改uid参数可越权访问用户数据 [请求对比] uid=1001 vs uid=1002 [响应差异] 手机号、地址字段不同 </detail> </issue> 

四、绕过防护的进阶技巧

当遇到防御措施时,可尝试:

  1. 编码混淆

    # 原始ID:1001 → 变异为: HEX:0x3e9 Base64:MTAwMQ== URL编码:%31%30%30%31 
  2. 参数移位: “`http

    原始请求

    GET /api/data?id=1001

# 修改为 GET /api/data/1001 POST /api/data {“id”:1001}

 3. **时间延迟**: ```java // 在Intruder中添加随机延迟(300-500ms) Thread.sleep(random.nextInt(200) + 300); 

五、防御建议

  1. 服务端措施

    // 强制权限验证 function getOrder($order_id) { if ($_SESSION['user_id'] != Order::owner($order_id)) { throw new ForbiddenException(); } // ... } 
  2. 替代方案

    • 使用UUID代替自增ID
    • 实现临时访问令牌(JWT)
  3. 监控方案

    -- 审计日志记录异常访问 INSERT INTO access_log VALUES (NOW(), 'uid=1001->1002', '403'); 

六、总结

BurpSuite的自动化检测可覆盖70%以上的基础IDOR漏洞,但需注意: - 结合手动测试验证关键业务流 - 定期更新ID生成规则字典 - 关注API GraphQL等新型接口

本文测试方法仅限授权环境使用,未经授权的测试属于违法行为。 “`

该文档包含: - 技术原理说明 - 分步骤操作指南 - 实际配置示例 - 防御方案建议 - 符合Markdown语法规范 - 字数约1250字

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI