验证码绕过,密码找回漏洞
验证码绕过常见姿势
前端验证验证码,并没有后端验证,直接抓包然后进行跑数据包,反正没有验证码的阻碍。
验证码设置了但是并没有验证,乱输入验证码也能够成功的登录。
验证码可以重复使用。
验证码空值绕过,比如我们抓一个包,发现有验证码参数,但是我们去掉验证码的参数就可以绕过验证码机制。验证码就失败了。
验证码干扰过低,使用脚本识别。
验证码在直接在html里面输出。
验证码可控,比如他的验证码包含在url面,是一个url传参,我们可以把url设置定,那么验证码可设置。
验证码有规则,比如用时间戳的后6位。
万能验证码,验证码无论是什么,只要输入特定数字就可以直接绕过。
验证码有时候会在cookie里面,分析一下是不是存在验证码的参数。
图片验证码,类型太少,容易识别。
多次登录后才出现验证码绕过:
基于session
基于ip
基于用户
密码找回漏洞
有一类验证码,他并不是区分是计算机还是人的公共全自动程序,他是来证明自己身份的,比如微信支付宝,支持短信验证码等。像这种验证码他实际是用来区分你身份的。
- 第一种就是找回密码,往邮箱发送明文或密文的密码或者验证码(手机短信验证就是往你手机号码发验证码)通过这样的方法来判断是否是本人。
- 第二种发送一个重置密码的链接到邮箱。
上述的密码找回方法会有什么样的漏洞呢?
- 验证码发送后前端返回
- 验证码无次数限制可爆破
- 验证码可控
- 直接修改密码页面
- 缺失的身份验证-绑定别人的账号到自己的手机
- 越权漏洞-自己验证码通过改包然后修改他们密码
越权
什么是越权
越权访问,这类漏洞是指应用在检查授权时存在纰漏,使得攻击者在获得地权限用户账户后,可以利用一些方式绕过权限检查,访问或者操作到原本无权的高权限功能。目前存在两种越权类型:1. 水平越权(修改密码,A密码改B账户密码) 2.垂直越权(修改密码,A密码改管理员账户密码)
越权测试过程
登录A用户是,正常更改或者是查看A用户信息,然后抓取数据包,将传参ID修改为其他用户,如果成功查看或者修改了同权限其他用户的信息就达到了水平越权测试。(如果可以查看高权限就达到了垂直越权)
传参id需要自己检测(uid= id= user=)等,通常使用burp进行爆破传参。(传参可能在get post cookie)
常见平行越权:不需要输入原密码的修改密码,抓包改用户名或者用户id修改他人密码,修改资料的时候修改用户id,查看订单的时候,遍历订单id等。
未授权访问
未授权访问就是跨过验证来访问,也是越权的一种。