逻辑漏洞

逻辑漏洞

支付逻辑漏洞

概述

支付逻辑漏洞是指在支付、结算或充值等涉及金额操作的业务流程中,由于逻辑设计缺陷导致攻击者能够以非预期的方式修改金额、数量或优惠条件,从而获得不当利益。常见于电商、直播平台、游戏充值和会员订阅场景。

常见场景

  • 购物车结算:用户在结算时修改商品价格或数量。
  • 优惠券使用:绕过优惠券使用限制或重复使用。
  • 直播间刷礼物:通过篡改请求降低礼物价格或增加赠送数量。
  • 游戏充值:修改充值金额以低价获取高额虚拟货币。
  • 会员充值:绕过支付流程直接激活会员权限。

测试方式

  1. 金额相关测试

    • 负数金额:尝试将商品价格、充值金额或优惠金额设置为负数(如-99),观察系统是否接受并退款。
    • 小额修改:将金额从正常值(如 99)改为极小值(如 0.01 或 1),检查是否按修改后的金额结算。
    • 边界值测试:尝试使用超大金额(如 99999999)或小数点后多位(如 0.00000001)测试系统处理逻辑。
  2. 数量相关测试

    • 负数数量:将商品或礼物的购买数量设置为负数,观察是否导致退款或库存异常。
    • 超大数量:设置极大数量(如 999999),测试系统是否因整数溢出或其他异常导致漏洞。
    • 零数量:尝试以数量为 0 下单,检查是否能免费获取商品。
  3. 并发测试

    • 优惠券重复使用:通过快速发送多个请求,测试同一优惠券是否能多次使用。
    • 库存竞争:多线程下单抢购限量商品,检查是否能绕过库存限制。
  4. 参数篡改

    • 优惠券 ID 替换:抓包修改优惠券 ID(如将“满 10 减 1”的 ID 替换为“满 30 减 15”),测试是否能使用更高级优惠券。
    • 商品 ID 替换:将低价商品 ID 替换为高价商品 ID,测试是否能以低价购买高价商品。
    • 支付渠道篡改:修改支付渠道参数,尝试绕过支付流程。
  5. 签约/会员升级漏洞

    • 签约:利用多设备登录挤出和支付页面缓存漏洞,可能实现同一优惠在多笔订单中的重复使用。
    • 会员升级:会员升级漏洞指利用系统未严格校验会员状态或订单的漏洞,通过多设备或并发操作实现重复享受优惠券或升级会员特权的行为。

密码找回逻辑漏洞

概述

密码找回逻辑漏洞是指在用户忘记密码或修改密码的流程中,由于验证机制不严谨,攻击者能够绕过身份验证直接重置他人密码。此类漏洞可能导致账号被盗或敏感信息泄露。

常见场景

  • 忘记密码:通过邮箱、手机号或密保问题重置密码。
  • 账号找回:通过身份信息恢复被锁定的账号。
  • 修改密码:在登录状态下更改密码。

测试方式

  1. 验证码相关测试

    • 验证码爆破:若验证码为 4 位纯数字(0000-9999),尝试暴力枚举,测试系统是否限制尝试次数。
    • 验证码泄露:检查 HTTP 响应体、JS 代码或前端调试工具中是否直接暴露验证码。
    • 验证码复用:使用同一验证码多次提交,测试是否因未失效而被接受。
    • 空验证码:提交空验证码或随机验证码,检查系统是否误判为有效。
  2. 密保问题测试

    • 答案泄露:检查 HTTP 响应或 JS 代码中是否包含密保问题答案(如“你就读的小学名称”)。
    • 弱问题:测试密保问题是否过于简单(如“1+1 =?”),可通过猜测绕过。
  3. 流程跳跃

    • 步骤绕过:若密码重置分为多步(如输入用户名 → 获取验证码 → 输入新密码),尝试直接访问最后一步 URL,检查是否能绕过验证码验证。
    • 状态篡改:修改请求参数(如将“未验证”改为“已验证”),测试是否能跳过验证逻辑。
  4. 逻辑缺陷

    • 弱验证:如仅需提供生日和手机号即可重置密码(如美团案例),测试是否无需额外验证。
    • 链接可猜解:检查邮箱重置密码链接是否可预测(如包含用户 ID 或时间戳),尝试构造链接重置他人密码。
  5. 绑定测试

    • 任意绑定:抓包修改绑定手机号或邮箱的请求,尝试绑定任意号码或邮箱。
    • 解绑绕过:测试是否能无需验证直接解绑已绑定的手机号或邮箱。
  6. 注册覆盖

    • 账号覆盖:注册与已有用户(如 admin)同名的账号,检查是否覆盖原账号信息。
    • 弱注册校验:测试注册流程是否允许使用已存在的敏感用户名。
  7. 返回包篡改

    • 状态修改:将验证失败的返回包(如“false”)改为“true”,测试是否能绕过验证。
    • 错误码修改:修改错误码(如 403 改为 200),观察系统是否接受。

越权漏洞

概述

越权漏洞是指用户能够访问或操作超出其权限范围的资源或功能,通常分为平行越权(同级用户间)和垂直越权(低权限访问高权限)。此类漏洞多见于需要登录的后台管理系统。

常见场景

  • 用户中心:查看或修改其他用户信息。
  • 订单管理:访问或取消他人订单。
  • 后台管理:普通用户访问管理员功能。

测试方式

  1. 平行越权

    • ID 替换:注册两个账号 A 和 B,将 A 的请求中用户 ID 替换为 B 的 ID,测试是否能访问或修改 B 的信息。
    • ID 遍历:若无注册功能,尝试递增或递减用户 ID(如 20250001 改为 20250002),测试是否能访问其他用户数据。
  2. 垂直越权

    • 权限提升:用普通账号 A 尝试访问管理员功能(如修改系统配置),检查是否被允许。
    • 角色篡改:抓包修改类似角色等可能相关的参数(如将“user”改为“admin”),测试是否获得更高权限。
  3. 参数修改

    • GET/POST 参数:修改 URL 或表单中的用户 ID、角色等参数。
    • Cookie 篡改:修改 Cookie 中的用户 ID 或权限标识,测试是否生效。

未授权访问漏洞

概述

未授权访问漏洞是指无需登录或以低权限账号即可访问受限资源,通常发生在前后端分离的系统中,后端 API 未严格校验权限。

常见场景

  • API 接口:直接访问后端 API 获取敏感数据。
  • 管理后台:无需登录即可访问管理员页面。
  • 静态资源:直接访问未受保护的配置文件或备份文件。

测试方式

  1. 未登录访问

    • 收集后端 API 地址,尝试在未登录状态下访问。
    • 检查返回状态码:200 或 405 可能表示未授权访问,403 表示权限控制正常。
  2. 低权限访问

    • 以普通用户登录,尝试访问管理员专属 API 或页面。
    • 检查返回状态码。
  3. 路径遍历

    • 尝试访问敏感路径(如/admin、/api/config),检查是否公开。

验证码逻辑漏洞

概述

验证码逻辑漏洞是指验证码验证机制存在缺陷,导致攻击者能够绕过、猜测或重复使用验证码。此类漏洞常见于注册、登录、密码重置等场景。

常见场景

  • 手机/邮箱验证码:用于身份验证的短信或邮件验证码。
  • 图形/拼图验证码:用于防止自动化攻击的图片验证。
  • reCaptcha/人脸识别:第三方验证码或生物识别。

测试方式

  1. 验证码爆破

    • 测试 4 位纯数字验证码(0000-9999),检查是否限制尝试次数。
  2. 验证码泄露

    • 检查 HTTP 响应、JS 代码或前端调试工具中是否包含验证码。
    • 测试验证码是否在前端生成(前端验证等于无验证)。
  3. 验证码复用

    • 使用同一验证码多次提交,测试是否因未失效而被接受。
    • 测试验证码有效期是否过长(如 24 小时)。
  4. 验证码缺失

    • 提交空验证码或不提交验证码,检查系统是否误判为有效。
    • 删除验证码相关参数,测试是否仍能通过验证。
  5. 验证码弱化

    • 测试图形验证码是否过于简单,可通过 OCR 或 AI 识别。
    • 检查拼图验证码是否可通过坐标猜测绕过。

接口滥用

概述

接口滥用是指攻击者通过重复调用第三方服务接口(如短信或邮件验证码接口)造成资源浪费或服务瘫痪,常见于依赖外部服务的系统。

常见场景

  • 短信验证码:频繁发送短信验证码耗尽服务商配额。
  • 邮件验证码:通过邮件接口发送垃圾邮件。
  • 第三方支付:滥用支付接口造成交易异常。

测试方式

  1. 轰炸测试

    • 快速重复调用短信或邮件验证码接口,测试是否有限制。
    • 修改手机号或邮箱,尝试对多个目标进行轰炸。
  2. 频率测试

    • 测试接口是否设置了请求间隔(如每分钟 1 次)。
    • 检查是否对同一目标有每日发送上限。
  3. 参数篡改

    • 修改接口参数(如验证码类型),测试是否能触发其他功能。
    • 删除认证参数,检查是否仍能调用接口。

敏感信息泄露

概述

敏感信息泄露是指网站或前端代码中意外暴露用户数据、系统配置或其他敏感信息,可能被攻击者利用进行进一步攻击。

常见场景

  • 前端代码:JS 或 HTML 注释中包含数据库连接信息。
  • API 响应:返回包中包含未过滤的用户信息。
  • 错误信息:服务器错误页面泄露系统路径或版本。

测试方式

  1. 代码查看

    • 检查 JS、HTML 或 CSS 中是否包含硬编码的敏感信息(如 API 密钥)。
    • 查看注释中是否包含开发者的调试信息。
  2. 响应分析

    • 抓包分析 API 返回数据,检查是否包含多余字段(如用户密码)。
    • 测试错误响应是否泄露系统信息(如堆栈跟踪)。
  3. 文件遍历

    • 尝试访问常见备份文件(如 backup.sql、.git)。
    • 检查是否存在公开的配置文件(如 config.php)。

身份验证缺陷

概述

身份验证缺陷是指认证机制(如 Cookie 或 Session)设计不当,导致攻击者能够伪造身份或绕过验证。此类漏洞常见于依赖 Cookie 的系统。

常见场景

  • Cookie 验证:使用可预测的 Cookie 值进行身份验证。
  • Session 管理:SessionID 未及时失效或可被猜测。
  • 弱令牌:认证令牌未加密或过于简单。

测试方式

  1. Cookie 篡改

    • 检查 Cookie 是否包含可读信息(如 user_id = 123; role = student)。
    • 修改 Cookie 值(如将 role 改为 admin),测试是否提升权限。
  2. Session 测试

    • 测试 SessionID 是否可预测(如基于时间戳或用户 ID)。
    • 尝试复用旧 SessionID,检查是否仍有效。
  3. 令牌测试

    • 检查认证令牌是否加密,尝试解码或伪造。
    • 测试令牌是否设置了有效期。

参考Wooyun Drops

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇