
业务逻辑漏洞挖掘思路越权、验证码绕过、密码重置漏洞实战前言很多新手挖洞把所有精力都放在 XSS、SQL 注入这类有固定 Payload 的通用漏洞上。工具扫一遍没有告警就直接放弃这个站点。但实战 SRC 里业务逻辑漏洞是一片蓝海没有固定 Payload扫描器很难发现一旦挖到往往是中高危。我挖到的 100 漏洞里有不少高分漏洞都属于业务逻辑类。业务逻辑漏洞本质业务流程设计缺陷不是编程语言或者中间件漏洞。攻击者不需要利用代码执行只需要篡改请求参数、跳过业务校验就能实现越权查看数据、重置他人账号密码、绕过验证码等操作。本篇就讲三类最常见、新手最容易上手的业务逻辑漏洞越权漏洞、验证码绕过、密码重置漏洞包含挖掘思路、验证方法、常见坑点。⚠️法律声明本文仅用于授权环境内安全学习。所有业务测试必须在 SRC 授权资产内进行禁止未经授权尝试篡改用户数据、重置他人账号违规操作需要承担法律责任。一、越权漏洞业务逻辑最常出的漏洞越权分为水平越权和垂直越权是 SRC 高频收录的业务漏洞。水平越权同权限账号 A可以查看 / 修改账号 B 的数据。比如用户 A修改请求里的 userid直接看到用户 B 的订单、手机号、个人信息。垂直越权低权限普通用户直接访问管理员接口拥有管理员权限查看后台数据、管理用户。挖掘思路注册两个普通账号账号 A、账号 B。使用账号 A 登录抓包查看查询个人信息、订单、收藏等接口重点看参数user_id、id、order_id、uid。把参数的值替换成账号 B 对应的 ID发送请求观察返回结果。如果成功返回 B 的数据 → 水平越权。低权限账号直接访问管理员页面、管理员接口地址看能否直接访问、操作数据 → 垂直越权。重点很多系统只在前端页面做权限判断后端没有校验当前登录用户和目标数据的归属关系。前端隐藏按钮没用抓包改参数直接绕过。真实场景举例查询订单接口GET /api/order?order_id1001登录 A 账号order_id1001 是 A 的订单把 order_id 改成 1002B 的订单后端直接返回 B 的订单详情包含手机号、收货地址典型水平越权。✅漏洞判定条件两个独立账号修改参数后后端返回不属于当前登录用户的数据不需要任何登录 B 账号的凭证仅修改 ID 参数。❌容易误报的情况修改 ID 之后返回空数据 / 无权限提示不算漏洞ID 是前端生成的随机字符串后端做了强校验无法篡改两个账号本身属于同一组织业务上允许互相查看属于业务设计如此不是漏洞。测试注意事项测试越权时不要大量遍历 ID 批量查询用户数据只测试 2 个账号做对比验证即可拿到证明截图就停止避免违规获取大量用户隐私。二、验证码绕过漏洞短信验证码、图形验证码是登录、注册、找回密码接口最常见的防护。但很多业务校验逻辑写得有问题存在多种绕过方式。常见绕过方式前端校验后端不校验前端页面输入验证码做判断但是提交请求到后端时后端完全不校验验证码随便填一串数字如 000000就能提交成功。验证方法抓包删掉验证码参数或者随便填 6 个数字发送请求观察是否成功。验证码复用验证码使用一次之后后端没有失效。同一个验证码可以多次使用甚至可以用来重置其他账号密码。验证码可暴力破解验证码是 4 位、6 位纯数字没有请求频率限制没有 IP 限流可以无限发包爆破。响应包直接返回验证码后端返回数据包里面直接明文返回验证码前端 JS 读取展示。抓包看 response 就能拿到验证码。跳过验证码参数提交请求时直接删掉 code/verify_code 参数后端忽略验证码校验直接放行。验证步骤正常流程获取验证码拿到正确验证码提交成功尝试随便填写错误验证码提交尝试删除验证码参数提交测试同一个验证码重复提交看是否仍然生效查看响应包检查是否直接返回验证码。踩坑提醒部分网站 WAF 拦截高频请求看起来不能爆破实际是 WAF 限制不是业务接口限制需要区分。测试暴力破解验证码不要大量发送真实短信会给用户造成骚扰SRC 一般禁止触发大量真实短信。优先测试图形验证码。三、密码重置漏洞高危业务逻辑漏洞密码重置模块一旦存在逻辑缺陷大多直接判定中高危。核心场景无需登录可直接重置任意用户密码。几种常见漏洞场景重置请求使用用户可控 ID无校验重置密码接口参数携带userid只校验验证码不校验这个手机号 / 邮箱归属。攻击者输入任意 userid 自己接收的验证码重置别人密码。重置链接的参数可控重置链接形如http://xxx/reset?uid1001tokenxxxx。token 不变修改 uid 为其他用户 ID直接重置别人账号密码。验证码绑定自己手机号却可以重置他人账号填写 A 手机号获取验证码在提交重置密码的请求中把账号改成 B 手机号使用 A 收到的验证码成功重置 B 的密码。这是非常经典的高危逻辑漏洞。重置 token 可预测重置密码的 token 使用时间戳、简单算法生成攻击者可以预测其他用户的重置链接。挖掘测试流程准备两个账号 A、B发起 A 账号的密码重置获取验证码 / 重置链接在提交重置密码的请求中把账号参数改成 B 账号使用 A 的验证码尝试提交重置 B 账号密码如果成功即为高危逻辑漏洞。重点红线测试密码重置漏洞不要真的修改线上用户的密码在授权测试环境中操作SRC 线上资产测试验证逻辑缺陷即可尽量在提交验证之后把密码改回原状态避免影响正常用户。四、其他值得关注的业务逻辑漏洞拓展思路支付逻辑漏洞修改商品价格、负数金额、0 元下单高危测试务必谨慎接口未授权无需登录直接调用业务接口查询、新增数据重复提交领取优惠券接口多次发包重复领取多张优惠券会话固定登录前设置 Cookie登录后继续使用这个 Cookie业务逻辑漏洞的核心挖掘思想跟着业务流程走一遍站在用户角度思考业务每一步的校验规则有没有缺失。五、业务漏洞通用测试方法论一套流程直接套用注册账号完整走完整个业务流程注册、登录、查询信息、修改资料、找回密码、下单全程抓包记录每一步请求参数、Cookie、接口篡改参数ID、uid、手机号、订单号、权限标识删除参数删掉 token、验证码、身份标识参数看后端是否还执行逻辑替换身份A 账号的请求包替换成 B 账号的业务标识重复提交同一个请求多次重放观察业务是否做重复校验跳过步骤直接访问后面步骤的接口跳过前面业务环节。一句话总结业务逻辑漏洞就是尝试跳过、篡改、重放业务流程看后端有没有做好校验。六、业务漏洞高频踩坑清单只看前端页面不抓包。业务校验写在前端后端没有校验这种是最常见的逻辑漏洞测试越权时批量遍历 ID大量获取用户隐私直接违规测试密码重置把真实用户密码改掉影响业务厂商会投诉把业务设计本身当成漏洞部分企业内部系统同团队成员天然允许查看彼此数据不属于越权缺少双账号对比截图。业务漏洞报告必须准备两个账号的证明否则厂商很难复现容易被驳回。七、业务逻辑漏洞 SRC 报告写作要点业务漏洞和注入 XSS 不一样报告要把业务流程、操作步骤写清楚漏洞简述漏洞类型风险等级能造成什么危害前置条件注册账号 A、账号 B详细复现步骤一步一步请求包 响应包截图证明截图A 账号数据修改参数后成功返回 B 账号数据修复建议后端增加数据归属校验校验当前登录用户与目标数据所属用户一致。八、写在最后通用漏洞有 WAF、补丁防护而业务逻辑漏洞是业务代码设计问题很多安全扫描器根本检测不到。对于新手来说这是很好的突破口。挖业务漏洞的关键不是记住 Payload而是学会梳理业务流程、抓包、篡改参数对比返回结果。多注册账号多走一遍业务多想如果我是恶意用户我怎么绕过这个限制带着这个思路很容易发现逻辑缺陷。免责声明本文仅用于网络安全学习与授权环境测试。禁止未经授权测试线上业务系统、篡改账号与用户数据违反相关法律法规将承担法律责任。以上就是今天的分享觉得有帮助记得点赞收藏以上所说到的漏洞扫描工具都整理成压缩包了朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】同时还为准备学习网络安全黑客或者正在学习整理了一套360独家内部资料包含以下内容如有需要也可文末获取①网络安全学习路线②20份渗透测试电子书③安全攻防357页笔记④50份安全攻防面试指南⑤安全红队渗透工具包⑥网络安全必备书籍⑦100个漏洞实战案例⑧安全大厂内部视频资源⑨历年CTF夺旗赛题解析一、网络安全黑客学习路线网络安全黑客学习路线形成网络安全领域所有的知识点汇总它的用处就在于你可以按照上面的知识点去找对应的学习资源保证自己学得较为全面。二、网络安全教程视频我们在看视频学习的时候不能光动眼动脑不动手比较科学的学习方法是在理解之后运用它们这时候练手项目就很适合了。三、网络安全CTF实战案例光学理论是没用的要学会跟着一起敲要动手实操才能将自己的所学运用到实际当中去这里带来的是CTFSRC资料HW资料毕竟实战是检验真理的唯一标准嘛~四、网络安全面试题最后我们所有的作为都是为就业服务的所以关键的临门一脚就是咱们的面试题内容所以面试题板块是咱们不可或缺的部分这里我给大家准备的就是我在面试期间准备的资料。网安其实不难难的是坚持和相信自己我的经验是既然已经选定网安你就要相信它相信它能成为你日后进阶的高效渠道这样自己才会更有信念去学习才能在碰到困难的时候坚持下去。机会属于有准备的人这是一个实力的时代。人和人之间的差距不在于智商而在于如何利用业余时间只要你想学习什么时候开始都不晚不要担心这担心那你只需努力剩下的交给时间这份完整版的网络安全学习资料已经上传CSDN朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】