逻辑漏洞就是当初制作应用或网站的程序员逻辑出现了问题导致的漏洞。
越权漏洞其实属于逻辑漏洞的一种。包括:
1、任意修改用户资料
2、任意查询用户信息
3、任意重置用户密码
如果使用用户A的权限去操作B用户的权限,用户A的权限小于用户B的权限,如果能够成功操作B用户的权限称作为越权操作。越权漏洞的原因是因为后台使用了不合理的后台校验导致的。
一般越权漏洞容易出现在权限页面(需要登录的页面)增、删、改、查的的地方,当用户对权限页面内的信息进行这些操作时,后台需要对当前用户的权限进行校验,看其是否具备操作的权限,从而给出响应,而如果校验的规则过于简单则容易出现越权漏洞。
平行越权
用户A和用户B属于同一级别的用户,但各自不能操作对方的个人信息,如果能则被称作平行越权。
垂直越权
A用户的权限高于B用户,但是B用户能越权操作A用户的权限的请况称为垂直越权。
越权漏洞可能发生的地方
所有用户信息查询,修改,等页面.
如网上银行的余额信息,普通网站的个人资料查询修改等页面.
只要涉及到要从数据库中查询或提交数据的地方,都有可能存在越权漏洞的产生.
常见的逻辑漏洞还有:
1、交易支付中的逻辑问题:
修改金额为0或为负数等。
- 加入购物车时是否可以修改购买数量为负数,商品价格是否可以修改.
- 确认购物车信息时是否可以修改商品数量为负数,是否存在折扣限制突破问题,是否可以修改商品总金额.
- 输入物流信息时是否可以控制运费,如果可以,尝试修改为负数.
- 确认订单后跳转支付接口时是否可以修改支付金额,可否不支付直接跳转到交易成功环节.
2、密码修改找回逻辑漏洞:
密码允许暴力破解;存在通用型找回凭证;可以跳过验证步骤;找回凭证可以拦包获取;等方式来通过厂商提供的密码找回功能来得到密码。
- 首先走一遍正常的密码修改流程,把过程中所有环节的数据包全部保存.
- 分析流程中哪些步骤使用了哪些身份认证信息,使用了哪些认证方法.
- 分析哪个步骤是可以跳过,或者可以直接访问某个步骤.
- 分析每个认证方法是否存在缺陷,可否越权
- 首先尝试正常密码找回流程,选择不同找回方式,如邮箱,手机,密码提示问题等.
- 分析各种找回机制所采用的验证手段,如验证码的有效期,有效次数,生成规律,是否与用户信息相关联等.
- 抓取修改密码步骤的所有数据包,尝试修改关键信息,如用户名,用户ID,邮箱地址,手机号码等。
渗透尝试:
1.改数据包跳过步骤。
2.用自己的用户身份找回密码,在最后修改密码的时候抓包,改成其他用户
3.修改返回包,把0改成1,或者把false改成true
4.手机密码找回看看返回包里有没有手机验证码
5.邮箱密码找回的时候,试试修改邮箱,用别人的账户找回,发邮件填写自己的邮箱。
6.验证码长度短、纯数字、无时间限制可以直接burp爆破
7.同一验证码可以登录不同的账号
8.密码找回答案比较简单,或者参数判断不严格
3、身份认证漏洞
1.会话固定攻击
2.cookie仿冒
只要得到 Session 或 Cookie 即可伪造用户身份。
4、验证码漏洞
1.验证码允许暴力破解
2.验证码可以通过JavaScript或改包进行绕过。
5、任意用户注册
6、恶意短信、短信炸弹
7、占用资源(时间)
如何挖掘逻辑漏洞?
确认业务流程--》寻找流程中可以被操纵的环节--》分析在被操纵的环节中可能存在的逻辑问题--》尝试修改参数触发逻辑问题。