逻辑漏洞分类
逻辑漏洞
主要包含但不限于以下几种:
- 任意密码修改
- 越权访问
- 密码找回
- 交易支付
- 撞库登录等
支付
- 金额运费修改
- 修改bxprice,可改成任意负数金额数量
- 请求重放,多次下单
- 并发 (数据库操作加锁)
- 参数污染 请求没该参数,却返回该参数,可请求该参数污染返回值
参考
越权逻辑漏洞
横向越权访问漏洞
指两个权限平级的的用户之间越权访问,又叫水平越权。如A可以对自己的信息增删改查,在编写代码时没有对增删改查的对象进行身份核对,导致用户A可以对B用户的数据进行增删改查。
重向越权访问漏洞
指权限不等的两个用户之间的越权访问,又叫垂直越权漏洞。如A是普通用户身份,由于代码设计缺陷,导致A可以访问到会员或者管理员的数据。
---------------------------------------------------手动分割线--------------------------------------------------------------
密码找回漏洞
常用工具是 burpsuite
密码找回逻辑漏洞测试一般流程:
- 首先尝试正常找回密码流程,选择不同的找回方式,记录所有的数据包
- 分析数据包,找到敏感的数据
- 分析后台数据包找回流程所采用的的验证手法
- 观察各个参数猜测其作用
- 修改数据包验证猜想
密码找回逻辑漏洞常见以下逻辑测试点
1.用户凭证暴力破解 当为4位或者6位寸数字时
2.返回凭证
2.1url返回验证码及token
2.2密码找回凭证在页面中
2.3返回短信验证码
3.邮箱弱token
3.1时间戳的MD5
3.2用户名
3.3服务器时间
4.用户凭证有效性
4.1短信验证码
4.2邮箱token
4.3重置密码token
5.重新绑定
5.1 手机绑定 使用小号测试
5.2 邮箱绑定
6.服务器验证
6.1 最终提交步骤
6.2 服务器验证可控内容(在最后重置密码处跟随一个用户ID,改成其他用户ID,即可把其他用户改成你刚刚设置的密码)
6.3 服务器验证逻辑为空
7.用户身份验证
7.1 账号与手机号码的绑定
7.2 账号与邮箱账号的绑定
8.找回步骤
8.1 跳过验证步骤、找回方式,直接到设置新密码页面
9.本地验证
9.1 在本地验证服务器的返回信息,确定是否执行重置密码,但是其返回的信息是可控的内容,或者可以得到的内容(密码找回凭证在客户端获取,在密码找回时注意抓包查看所有url返回响应等,看是否有最终的凭证出现,这样就可以绕过手机或者安全邮箱了)
9.2 发送短信等验证信息的动作在本地进行,可以通过修改返回包进行控制
10.注入
10.1 在找回密码出存在注入漏洞
11.Token生成
11.1 Token生成可控
即 分析t重置密码时token生成的算法。观察数据包中字符串和验证身份中字符串是否相同。一样则尝试绕过验证步骤,不同可以尝试token可控
12.注册覆盖
12.1 注册重复的用户名
13.session覆盖
找回密码时,走到验证邮箱这一歩,打开邮箱不要打开邮件中重置密码链接,复制到同一个浏览器打开
14.推荐文章
任意用户密码重置(一):重置凭证泄露
任意用户密码重置(二):重置用户凭证端可以篡改
任意用户密码重置(三):用户混淆
任意用户密码重置(四):重置凭证未校验
任意用户密码重置(五):重置凭证可以爆破
任意用户密码重置(六):应答中存在影响后续逻辑的状态参数
任意用户密码重置(七):Token可预测
参考
2. 密码找回逻辑漏洞
未来工作
细化工作,附上截图
仅作为记录总结,内容来自可爱的网友。
持续更新总结