验证码绕过漏洞
什么是验证码绕过漏洞?
比如说,开发人员在考虑用户登录的时候,为了安全添加了验证码验证,但是在代码层面他只做了
if(存在验证码){
验证登录
}
存在验证码的时候,允许登录验证,但是没有考虑到验证码不存在的情况。
If(存在验证码){
}else{
不存在验证码
}
这样我们通过抓包删除验证码的参数,就可以绕过验证,这就是常出现的逻辑漏洞。
验证码绕过的方向:
1. 通过验证码的逻辑进行入手
2. 通过Python,Golang等程序自动识别
验证码绕过存在的情况:
1. 前端验证验证码并没有进行后端验证。直接抓包进行跑数据包,反正没有验证码的阻碍。
2. 验证码设置了,但是没有校验,乱输验证码也能验证成功。(估计老板没给开发发工资吧)
3.验证码可以重复使用,比如现在的验证码是1111,虽然登陆失败后但是验证码不会改变,这样的通常可以通过暴力破解进行猜解用户名密码。
4. 验证码空值绕过,比如我们抓了一个包,发现登陆参数是user=admin,pwd=123456,yzm=1122,当我们删除了验证码的参数yam,然后继续发包,就会绕过验证码的验证。
5. 验证码可以被控制,比如说他的验证码包含在URL栏里面,是一个URl传参,我们可以手工设定Url值,那么验证码就可控制了
6. 验证码有规则,比如是时间戳后六位(rand函数进行随机数)
7. 万能验证码000000
8. 验证码有时候会被藏在cookie里面
有疑问加站长微信联系(非本文作者)