业务逻辑漏洞
在编写程序时只考虑到常规用户操作,忽略了意料之外的事情。

登录页面提示
用户名或密码错误不合理的提示;
修复方式:
对接口登录页面错误提示改为:账户或密码错误(模糊提示);增加动态验证,避免被爆破
短信轰炸漏洞
网站对信息发送的次数、时间没有做限制,导致可以无限的发送例如短信/邮件等内容;
例如账号注册、忘记密码、绑定手机邮箱等;
修复方式:
合理配置后台短信/邮件服务器功能,同一号码限制次数,限制时间间隔,增加验证码机制。
(不过也可通过插件对 URL 进行各种参数的测试,来绕过这种限制)
密码找回&修改漏洞


常见找回方式:邮箱、手机号、密码保护问题等。
密码找回&修改时,未对修改密码的凭证、步骤做严格限制。
挖掘时需要熟悉业务流程(当前地址密码找回过程),对流程中的 HTTP 数据包请求进行分析。
- 重定向用户&重定向地址
身份验证完成后:输入验证码通过后,系统重定向到“设置新密码”页面;
密码修改成功后:系统重定向到登录页面或个人中心页面;
一旦重定向的地址未进行严格校验,攻击者对其篡改,使用户跳转至恶意页面(钓鱼),进而破坏密码修改逻辑,导致窃取信息或越权。
示例:
- 密码修改流程:
验证邮箱(步骤1)→ 重定向到设置新密码页面(步骤2)→ 完成修改。 - 攻击者直接访问步骤 2 的 URL,并附带伪造的重定向参数,试图跳过步骤 1 的验证。
修复方式:
- 一次性填写校验信息(原始密码、新密码等)后再提交修改密码请求;
- 对请求的用户身份与当前登录的用户身份进行校验,判断是否有权修改用户的密码并对原始密码是否正确也进行判断;
- 不应该将用于接收验证信息的手机、邮箱等信息全部明文传到客户端,应对手机、邮箱等信息进行屏蔽处理,或不将此类信息返回到客户端;
- 对原始密码进行了验证的情况下,限制输入原始密码的错误次数;
- 重置密码链接中的关键信息应随机化,不可预测(例如 token 机制),且禁止将关键信息返回到客户端
案例:
https://mp.weixin.qq.com/s/iFsEa2IYLo9gOZBPYIHssw
https://mp.weixin.qq.com/s/6cR7DVQaZYSs131Y3TvVLA
https://mp.weixin.qq.com/s/u6PC_ZR-QCJhZOuBEOL4Cg
https://mp.weixin.qq.com/s/hnEwAJpcbe7FsSlQOWuNUw
验证码绕过
- 验证码不失效
对于短信&邮箱验证码没有时间过期限制或时间较久,可被爆破;
- 验证凭证回传
验证码一般会发送到手机或者邮箱里,但是由于开发者的失误,通过抓取返回包可以看到验证码;
- 验证码未绑定
输入手机号/邮箱/用户 ID 和验证码进行重置密码的时候,仅对验证码是否正确进行了判断,未对该验证码是否与另三者匹配做验证;
可以尝试删除数据包中的验证码参数绕过。
绕过滑动验证码: https://blog.csdn.net/shuryuu/article/details/104576559
支付逻辑漏洞
常规支付流程:选择商品和数量-选择支付及配送方式-生成订单编号-订单支付选择-完成支付。
可篡改参数:商品ID,购买价格,购买数量,订单属性,折扣属性,支付方式,支付状态等。
篡改及绕过方式:替换支付,重复支付,最小额支付,负数支付,溢出支付,优惠券支付,无限试用,越权支付,并发兑换,四舍五入半价购,循环优惠券,支付签约逻辑,新老用户差异,积分兑换制度,邀请分享绕过机制,红包渠道等。
修复方式:
- 加密、数字签名等验证机制;
- 服务端校验过滤用户提交的参数;
- 提交订单时后台判断单价是否与数据库中相符;
- 服务端计算金额是判断是否为正数;
- 生成数据签名,对用户金额和订单签名。
任意用户注册漏洞
任意账号注册会造成用户注册时手机、邮箱等被占用,影响用户体验
修复方式:
对新注册用户的绑定手机号进行短信身份认证,短信验证码请不要仅使用短数字,最好是以字母加数字进⾏组合,并且验证码需要限定过期时间和验证错误次数,防止短信验证码被暴力破解;
并发导致的漏洞
并发场景:包括但不限于点赞、投票、签到、代金券、领积分、获取验证码等。
APP小程序隐私合规
资源拒绝服务
验证码或图片显示自定义大小(部分隐藏参数可控,用来自定义修改显示的大小,过多的消耗服务器资源)
上传压缩包解压循环资源占用(压缩包炸弹,不停地循环解压消耗资源)
需要对加载处理进行一定的控制。








