一、常见的逻辑漏洞
与session值有关(session值 比如登录错误第一次 第二次 第三次输入错了就锁上了)绕过方法可以跟csrf一样 token值绕过
1、交易支付(修改金额为负数或为o)、密码修改(是否有原密码)、密码找回(1、改数据包跳过步骤 2、用自己的用户身份找回密码,在最后修改密码的时候抓包修改成其它用户 3、修改返回包,把0改成1或false改成true 4、手机号密码找回看一下返回包里面是否有手机验证码、5、邮箱密码找回的时候,试试修改邮箱,用别人的帐号找回,发邮件填写自己的邮箱、6、验证码长度短,纯数字可以直接burp暴破 7、同一验证码可以登录不同帐号 8、验证码纯数字,无时间限止 9、密码找回答案比较简单 或参数判断不严格)、越权修改、越权查询、突破限制等各类逻辑漏洞
2、任意用户注册
3、短信炸弹
4、占用资源(时间)
二、如何挖逻辑漏洞
确定业务流程--->寻找流程中可以被操控的环节--->分析可被操控环节中可能产生的逻辑问题--->尝试修改参数触发逻辑问题
1、交易支付中的逻辑问题
改参数值 比如商品价格 不断发包 抓包 改包 发包
改商品数量 价格 打折 物流是否可以控制运费 确认订单跳转支付接口时是否可以修改支付金额 是否可以不支付直接跳转到交易成功环节
抓包 改商品数量 改价格 发包
2、注册过程可以返回已存在用户的全部信息(数据是同样的在 数据库是可以存储的 比如相同的名字)
3、微信信用卡还款服务可绕过
跳过还款环节 直接交易成功
4、改积分值
5、经典案例:
1)微信任意密码修改
忘记微信密码(问题)
使用手机重设密码(触发)
找回的时候验证码发到别人的手机里 所以关键点在验证码这里
在这里抓包
然后用暴力破解
腾讯有检测机制 做了防御
找突破点 在手机后面加一些不为数字的字符时 可以绕过限制
思路:在有限制的情况下可以加一些字符 比如手机号后面加字符 如果不为数字的时候可以不做限制(同一个手机号找回次数太多被限制 请求过于频繁)
2)支付宝任意密码修改(2017年)
熟人操作 账号登录支付宝 点击忘记密码
选择手机不能接收短信
淘宝买过的东西 9张图片选1个(流程设计有问题,能试到买过的)
3)12306改抢票时间
随便找一个有票的时间,有预定按钮的,抓包拦截,修改时间
4)搜狗浏览器积分商城
随便购买一个东西抓包 修改积分 没有做校验
5)国家电网密码重置
密码=1 永远为真 绕过密码重置