逻辑漏洞小结之SRC篇
字数 1577 2025-08-18 11:39:23

逻辑漏洞挖掘与防御指南:SRC实战篇

一、业务逻辑漏洞挖掘

1. 注册环节漏洞

1.1 短信/邮箱轰炸

  • 原理:利用请求重放或参数遍历发送大量验证信息
  • 测试方法
    • 使用Burp Intruder遍历参数
    • 修改手机号格式(加空格、+86、逗号等)
    • 请求参数大小写修改或添加额外参数(如&id=1)
    • 不同接口测试(登录处防护但找回密码处可能无防护)

1.2 用户任意注册/批量注册

  • 检测点
    • 验证机制缺失
    • 验证码可重复使用
    • 验证码与用户未绑定

1.3 枚举用户名

  • 方法:通过注册或登录接口返回信息差异判断用户存在性

1.4 注册处XSS

  • 位置:用户名、个人信息等输入框
  • 特点:虽然危害小但可组合其他漏洞利用

2. 登录环节漏洞

2.1 验证码安全问题

  • 类型
    • 万能验证码(如0000)
    • 验证码在返回包中暴露
    • 删除验证码或相关cookie可绕过

2.2 密码爆破

  • 方法
    • 修改password字段为空值发送
    • 使用Burp Intruder进行暴力破解

2.3 认证凭证替换

  • 操作
    • 修改返回包中的账号信息
    • Cookie仿冒
    • 修改数据包登陆其他用户

3. 找回密码漏洞

3.1 重置任意用户密码

  • 常见漏洞
    • 验证码与手机/用户未统一验证
    • 直接跳过验证步骤
    • 返回包中包含敏感信息

4. 支付/充值漏洞

4.1 金额修改

  • 方法
    • 直接修改交易金额/数量参数
    • 替换支付模块
    • 整数溢出(利用int最大值2147483647)

4.2 支付绕过

  • 类型
    • 订单替换
    • 请求重放
    • 单位替换(国际支付场景)

5. 会员系统漏洞

5.1 文件上传

  • 攻击向量
    • 上传恶意HTML/XSS
    • 恶意文档(XXE漏洞)
    • 恶意图片(ImageMagick命令执行)
    • 恶意视频(ffmpeg漏洞导致SSRF)

5.2 横向越权

  • 方法
    • 参数修改遍历用户信息
    • 检查隐藏表单(修改返回包显示隐藏内容)

二、漏洞专项挖掘

1. 验证码问题

  • 测试方法
    • 检查返回包是否包含验证码
    • 尝试删除验证码字段
    • 测试万能验证码

2. 短信轰炸

  • 技术点
    • 请求重放
    • Cookie修改后重放
    • 参数遍历
    • 手机号格式变异

3. 水平越权

  • 技巧
    • 多接口测试
    • 检查网页源代码中的隐藏表单
    • 多账号对比分析请求参数

4. 数据泄露

  • 检测位置
    • 找回密码返回包
    • 订单信息接口
    • 用户资料接口

三、支付逻辑深度漏洞

1. 边界值问题

  • 案例:购买负数商品导致金额反转

2. 顺序执行缺陷

  • 原理:绕过中间步骤(如支付或验证)

3. 金额篡改

  • 方法:直接修改传输中的金额参数

4. 支付流程缺陷

  • 类型
    • 支付后仍可添加商品到购物车
    • 请求重放导致商品重复购买
    • 支付成功后的订单替换

5. 高级支付攻击

  • 技术
    • 用户替换(用他人余额支付)
    • 密钥泄露(反编译获取支付密钥)
    • 函数修改(APK反编译篡改)

6. SSL/TLS漏洞

  • Heartbleed漏洞
    • OpenSSL缓冲区过度读取
    • 可获取敏感信息(如银行密码)

四、防御建议

  1. 验证机制

    • 验证码与用户绑定
    • 限制发送频率
    • 服务端严格校验
  2. 支付安全

    • 金额签名验证
    • 订单状态严格管理
    • 支付流程完整性检查
  3. 权限控制

    • 完善的会话管理
    • 敏感操作二次验证
    • 最小权限原则
  4. 输入输出

    • 严格输入过滤
    • 输出编码
    • 敏感信息脱敏
  5. 传输安全

    • 全流程HTTPS
    • 敏感字段加密
    • 防重放机制
  6. 代码安全

    • 避免硬编码密钥
    • 关键函数混淆
    • 定期安全审计

五、实战技巧

  1. 组合漏洞利用:如XSS+CSRF组合攻击
  2. 接口遍历:同一功能不同接口可能有不同防护
  3. 参数变异:大小写、添加参数、特殊字符等
  4. 流程分析:绘制正常业务流程,寻找可绕过点
  5. 数据对比:多账号请求响应对比发现差异

通过系统性地应用这些方法和技巧,可以有效地发现和修复业务逻辑漏洞,提升系统安全性。

逻辑漏洞挖掘与防御指南:SRC实战篇 一、业务逻辑漏洞挖掘 1. 注册环节漏洞 1.1 短信/邮箱轰炸 原理 :利用请求重放或参数遍历发送大量验证信息 测试方法 : 使用Burp Intruder遍历参数 修改手机号格式(加空格、+86、逗号等) 请求参数大小写修改或添加额外参数(如&id=1) 不同接口测试(登录处防护但找回密码处可能无防护) 1.2 用户任意注册/批量注册 检测点 : 验证机制缺失 验证码可重复使用 验证码与用户未绑定 1.3 枚举用户名 方法 :通过注册或登录接口返回信息差异判断用户存在性 1.4 注册处XSS 位置 :用户名、个人信息等输入框 特点 :虽然危害小但可组合其他漏洞利用 2. 登录环节漏洞 2.1 验证码安全问题 类型 : 万能验证码(如0000) 验证码在返回包中暴露 删除验证码或相关cookie可绕过 2.2 密码爆破 方法 : 修改password字段为空值发送 使用Burp Intruder进行暴力破解 2.3 认证凭证替换 操作 : 修改返回包中的账号信息 Cookie仿冒 修改数据包登陆其他用户 3. 找回密码漏洞 3.1 重置任意用户密码 常见漏洞 : 验证码与手机/用户未统一验证 直接跳过验证步骤 返回包中包含敏感信息 4. 支付/充值漏洞 4.1 金额修改 方法 : 直接修改交易金额/数量参数 替换支付模块 整数溢出(利用int最大值2147483647) 4.2 支付绕过 类型 : 订单替换 请求重放 单位替换(国际支付场景) 5. 会员系统漏洞 5.1 文件上传 攻击向量 : 上传恶意HTML/XSS 恶意文档(XXE漏洞) 恶意图片(ImageMagick命令执行) 恶意视频(ffmpeg漏洞导致SSRF) 5.2 横向越权 方法 : 参数修改遍历用户信息 检查隐藏表单(修改返回包显示隐藏内容) 二、漏洞专项挖掘 1. 验证码问题 测试方法 : 检查返回包是否包含验证码 尝试删除验证码字段 测试万能验证码 2. 短信轰炸 技术点 : 请求重放 Cookie修改后重放 参数遍历 手机号格式变异 3. 水平越权 技巧 : 多接口测试 检查网页源代码中的隐藏表单 多账号对比分析请求参数 4. 数据泄露 检测位置 : 找回密码返回包 订单信息接口 用户资料接口 三、支付逻辑深度漏洞 1. 边界值问题 案例 :购买负数商品导致金额反转 2. 顺序执行缺陷 原理 :绕过中间步骤(如支付或验证) 3. 金额篡改 方法 :直接修改传输中的金额参数 4. 支付流程缺陷 类型 : 支付后仍可添加商品到购物车 请求重放导致商品重复购买 支付成功后的订单替换 5. 高级支付攻击 技术 : 用户替换(用他人余额支付) 密钥泄露(反编译获取支付密钥) 函数修改(APK反编译篡改) 6. SSL/TLS漏洞 Heartbleed漏洞 : OpenSSL缓冲区过度读取 可获取敏感信息(如银行密码) 四、防御建议 验证机制 : 验证码与用户绑定 限制发送频率 服务端严格校验 支付安全 : 金额签名验证 订单状态严格管理 支付流程完整性检查 权限控制 : 完善的会话管理 敏感操作二次验证 最小权限原则 输入输出 : 严格输入过滤 输出编码 敏感信息脱敏 传输安全 : 全流程HTTPS 敏感字段加密 防重放机制 代码安全 : 避免硬编码密钥 关键函数混淆 定期安全审计 五、实战技巧 组合漏洞利用 :如XSS+CSRF组合攻击 接口遍历 :同一功能不同接口可能有不同防护 参数变异 :大小写、添加参数、特殊字符等 流程分析 :绘制正常业务流程,寻找可绕过点 数据对比 :多账号请求响应对比发现差异 通过系统性地应用这些方法和技巧,可以有效地发现和修复业务逻辑漏洞,提升系统安全性。