Pikachu靶场:暴力破解之验证码绕过(on client) | 您所在的位置:网站首页 › js绕过验证码 › Pikachu靶场:暴力破解之验证码绕过(on client) |
Pikachu靶场:暴力破解之验证码绕过(on client)
实验环境以及工具
Firefox浏览器、Burp Suite、Pikachu靶场 实验原理验证码用来防止登录暴力破解、防止机器恶意注册。 客户端request登录页面,后台生成验证码:1.后台使用算法生成图片,并将图片response给客户端; 2.同时将算法生成的值全局赋值存到SESSION中; 校验验证码∶1.客户端将认证信息和验证码一同提交; 2后台对提交的验证码与SESSION里面的进行比较; 客户端重新刷新页面,再次生成新的验证码:验证码算法中一般包含随机函数,所以每次刷新都会改变; 实验步骤 1.前期工作先将Proxy中的intercept关闭,使其不进行拦截,让数据通过监听的端口。 输入正确用户名和密码,输入正确验证码弹出login success 空输入,直接点Login,弹出用户名不能为空 任意输入用户名和密码,不输入验证码,弹出验证码不能为空 任意输入用户名和密码,输入错误验证码,弹出验证码错误 任意输入用户名和密码,输入正确验证码弹出username or password is not exists~ 在Firefox浏览器中打开开发者模式(F12)使用选择器找到验证码相关内容 查看页面原码,然后按住Ctrl+f,将creatCode()作为关键字进行查找。 这里发现一段用js写的函数,实现了验证码的产生和判断。那么可以猜测后端(服务器)那边根本就没有验证验证码,所有关于验证码的东西全在前端(web页面)上。 现在在页面上敲出正确的验证码,任意输入用户名和密码,使其正常发出一个POST请求,然后在Burp Suite中将其发送到Repeater里。 将验证码部分删掉,若是能够正常的返回页面,则前端的验证码就几乎无效。 说明这个位于前端的验证码就是无效的,只能忽悠一下不会技术的人。接下来回到Proxy的HTTP history将POST请求发送到Intruder进行暴力破解。 3.利用Intruder进行暴力破解进入Positions,选择Cluster Bomb模块,将多余的变量删除,留下username和password两个变量 在Payloads选项里找到Payload Sets,在Payload set里有两个选项,因为有两个变量。这里先设置变量1的字典。 在Payload type里选择Runtime file 同样方法配置好变量2 然后点击Start attack进行攻击,然后单击length进行排序可以看到一个长度比较小的,因为密码错误(username or password is not exists~)和密码正确(login success)所弹出的字符串长度不一样,所以可以根据返回页面的长度来判断是否成功。 将Proxy的Intercept拦截关闭后,通过手动访问目标网页,然后提交表单后,在Proxy的HTTP history中找到最新的POST请求,将其发送到Repeater里进行发包和分析,发现位于前端的js代码实现的验证码并不能影响Burp Suite进行发包。那么直接将POST请求包发送到Intruder中进行破解即可。 |
CopyRight 2018-2019 实验室设备网 版权所有 |