🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
# 简介: 逻辑错误漏洞是由于程序逻辑不严谨或者逻辑太复杂,导致一些逻辑分支不能够正常处理或处理错误。一般出现在任意密码修改(没有旧密码验证),越权访问,密码找回,交易支付金额等处 # 图片及短信验证码逻辑漏洞: * 图片内容清晰可识别(机器识别) * 验证码采用前端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注入:一般存在于个人用户信息,可输出的地方