# 简介:
逻辑错误漏洞是由于程序逻辑不严谨或者逻辑太复杂,导致一些逻辑分支不能够正常处理或处理错误。一般出现在任意密码修改(没有旧密码验证),越权访问,密码找回,交易支付金额等处
# 图片及短信验证码逻辑漏洞:
* 图片内容清晰可识别(机器识别)
* 验证码采用前端js刷新
* 验证码不过期
* 验证码本地校验
* 删除数据包中的验证码参数
* 短信验证码4位数字且不过期
* 短信验证码未绑定用户
* 短信验证码本地校验
* 短信验证码编码后存在数据包中(可导致短信内容可控)
* 短信验证码复用
# 找回密码的逻辑问题:
* 找回密码的验证码是4位数字,可爆破
* 采用本地验证:可以先尝试修改自己的账号密码,保存正确的返回包,然后修改他人密码的时候替换返回包
* 最终修改密码的数据包,以另外的ID作为身份判断(如userid),而该ID可以再别处获得
* 接受验证码的手机号修改为自己的号码,然后输入自己的号码去接受验证码,进行密码重置
* 获取验证码的时候,会生成一个身份标识(如cookie),我们就替换他人账号的身份重置他人的密码
* referer:https://www.ichunqiu.com/course/59045
# 在线购买商品的逻辑漏洞:
* 添加两个商品,其中一个商品的数量为负数,在总价上抵消另外一个商品的价格,例如100*1+99*(-1),即支付1元
* 使用满200-100的优惠券,然后在交易过程中替换商品价格为101元的商品id,支付1元
* 支付结果判断采用本地验证,通过修改返回包让系统认为已经成功支付
* 限量购买的商品,如果缺少数据加锁机制,则可以通过数据包并发的方式来突破限制
* 购买商品未支付的时候,商品库存值已经扣掉相应的数量,且订单未设置自动取消时间,批量操作即可导致商城所有商品无法购买
* 越权使用他人余额来给我们支付商品。付款的时候修改数据包中的用户ID即可,有些需要支付密码的,可以通过暴力破解的方式进行测试
* 商品下单的时候,一般通过暴力修改数据包的地址id,然后去查看订单的时候就可以获取他人的地址等信息
# 后台管理系统中,如何通过普通账号,尝试获取管理员权限
* 编辑个人信息的时候,修改权限组的id,一般管理员的值为0或者1
* 后台修改密码的地方,如果是根据userid来修改密码的,可以修改id的值来修改管理员的密码
* 在个人资料处插入xss脚本,获取管理员cookie
* 查看个人资料的时候,如果根据id来显示,遍历id获取管理员信息
* 测试后台功能,找到注入,上传,命令执行等漏洞,直接拿下数据库权限或者shell,再获得管理员权限
# 显示个人用户信息的地方会出现的问题:
* XSS:一般只能打到自己或者管理员,而只有后者有用
* 越权:一般是越权查看和编辑他人的个人信息;有时候可以通过数据包来修改手机号,用户名等
* 信息泄露:后台执行了select * , 导致用户所有的信息都在返回包李,包括用户的密码,密保答案等
* 头像处的文件上传:任意文件上传漏洞,ImageMagick命令执行,XSS,越权等问题
* sql注入:一般存在于个人用户信息,可输出的地方