验证码的作用
验证码(CAPTCHA)是“Completely Automated Public Turing test to tell Computers and Humans Apart”(全自动区分计算机和人类的图灵测试)的缩写,是一种区分用户是计算机还是人的公共全自动程序。
可以防止:恶意破解密码、刷票、论坛灌水,有效防止某个黑客对某一个特定注册用户用特定程序暴力破解方式进行不断的登陆尝试,实际上用验证码是现在很多网站通行的方式,我们利用比较简易的方式实现了这个功能。 这个问题可以由计算机生成并评判,但是必须只有人类才能解答。由于计算机无法解答CAPTCHA的问题,所以回答出问题的用户就可以被认为是人类。
验证码机制原理
客户端发起请求->服务端响应并创建一个新的SessionID同时生成随机验证码,将验证码和SessionID一并返回给客户端->客户端提交验证码连同SessionID给服务端->服务端验证验证码同时销毁当前会话,返回给客户端结果。
验证码五花八门,有中文字,纯数字,点击字符、数学运算…… [其实还有另一种验证码]
验证码绕过的常见姿势
设置了验证码并不是完全可靠,在很多情况存在验证码绕过的情况(举例是在登录处)
一、前端验证验证码,并没有后端验证。直接抓包然后进行跑数据包,反正有没有验证码的阻碍
二、验证码设置了但是并没有效验,乱输验证码也能够成功的登录(估计老板没给开发工资吧)
三、验证码可重复使用,如果验证码认证成功后没有将session及时清空,将会导致验证码首次认证成功之后可重复使用。
实例: https://blog.csdn.net/
四、空验证码绕过,验证码空值绕过,可以通过直接删除验证码参数或者Cookie中的值来绕过判断,进行暴力破解。五、验证码干扰过低,轻松使用脚本识别 https://blog.csdn.net/y0nghum1ng/
六:验证码会在HTML页面输出。 https://blog.csdn.net/weixin_45606067/
七、验证码可控制,比如他的验证码包含在URL里面,是一个URL传参,我们可以把URL设置定,那么验证码则可控制
八、验证码有规则,比如是时间戳的后6位(rand函数进行随机数)
九、有万能验证码,验证码无论是什么,只要输入000000就能直接绕过
十、验证码有的时候会藏在cookie里面,分析一下是不是存在验证码的参数
十一、图片验证码,自动识别 http://weikeu.com/archives/
密码找回漏洞
利用漏洞修改他人帐号密码,甚至修改管理员的密码。
第一种就是找回密码,往邮箱发送明文或密文的密码或者验证码(手机短信验证就是往你手机号码发验证码)通过这样的方法来判断是否是本人。
第二种发送一个重置密码的链接到邮箱。
上述的密码找回方法会有什么样的漏洞呢? 1.验证码发送后前端返回(http://weikeu.com/archives/) 2.验证码无次数限制可爆破(http://weikeu.com/archives/) 3.验证码可控(https://blog.csdn.net/Adminxe/) 4.直接修改密码页面(https://blog.csdn.net/weixin_33728268/) 5.越权漏洞-->自己验证码通过改包然后修改他们密码 垂直越权:https://blog.csdn.net/weixin_43915842/article/
水平越权:https://blog.csdn.net/qq_44720671/article/
在注册之前,通过预先设定一个密保问题,忘记密码时,通过此密保进行认证,认证成功进入密码修改页面。
密保问题可能容易直接被猜测 (比如很多学校的知道学号和身份号码就可以重置校园通的密码)
密保问题答案页面中显示(数据包里面可能自带了密保答案,可能在JS里面)
来源:freebuf.com 2021-07-24 13:59:44 by: 无名草talent
请登录后发表评论
注册