1.概念
1.验证码绕过常见的场景
- 前端验证验证码,并没有后端验证。直接抓包然后进行跑数据包,反正有没有验证码的阻碍。
- 验证码设置了但是并没有效验,乱输验证码也能够成功的登录。
- 验证码可以重复使用。
- 验证码空值绕过。(比如,我们现在抓一个包,发现登录参数是user=admin&password=admin&yzm=4123。 yzm验证码参数,但是我们如果去掉yzm的传参我们就可以绕过验证码机制,直接传参user=admin&password=admin,验证码就失效了)
- 验证码干扰过低,轻松使用脚本识别。
- 验证码会在HTML页面输出。
- 验证码可控制。(比如他的验证码包含在URL里面,是一个URL传参,我们可以把URL设置定,那么验证码可控制)
- 验证码有规则。(比如是时间戳的后6位(rand函数进行随机数))
- 有万能验证码,验证码无论是什么,只要输入000000就能直接绕过
- 验证码有的时候会藏在cookie里面,分析一下是不是存在验证码的参数
- 图片验证码,类型太少,容易识别
2.密码找回漏洞常见场景
- 验证码发送后前端返回
- 验证码无次数限制可爆破
- 验证码可控
- 直接修改密码页面
- 越权漏洞–>自己验证码通过改包然后修改他们密码
2.靶场
1.进入靶场,发现页面是CMS,下载该CMS的源码
2.查看其源码,发现登录界面php文件
3.进入登录界面,发现存在验证码,尝试绕过
4.用burp抓取登录包,在repeater模块多次重放登录请求,测试验证码校验在用户名密码校验之前,并且验证码可重复使用
5.登录请求跑包爆破用户名密码
6.尝试登录,登录成功
7.代码审计漏洞
通过查看UsualToolCMS源码审计,发现在cmsadmin/a_templetex.php文件中可通过POST入参构造上传木马,尝试上传
payload:http://yzmrg988.zs.aqlab.cn/cmsadmin/a_templetex.php?x=m
burp拦截修改为POST请求,在body里面加上一句话木马
8.菜刀连接,拿到flag