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

发布时间:2021-12-18 15:10:49 作者:柒染
来源:亿速云 阅读:336
# 如何用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字

推荐阅读:
  1. zabbix 自动发现规则自动监控
  2. 安卓应用已发现的漏洞

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

idor burpsuite

上一篇:WGCNA怎么挖掘潜在的共表达基因

下一篇:如何进行springboot配置templates直接访问的实现

相关阅读

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

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