基于百度OCR-文字识别的验证码暴力破解

VSole2021-12-03 06:43:16

0x01 前言

在之前的学习中,我们学习过暴力破解的方法,比如暴力破解蓝奏云的密码.理论上讲,只要字典足够,和方法正确.暴力破解总能出现我们想要的效果.但是在真实的环境中,我们在进行密码猜解的时候,总会遇到一些验证码的阻拦.比如下方这种情景

当字典准备充足的情况下,如何正确的自动化的识别验证码,是我们要思考的问题.

0x02 正文

1.准备条件

BurpSuite插件captcha-killer:https://github.com/c0ny1/captcha-killer/releases/tag/0.1.2

演示爆破网站

百度云OCR平台账户

2.插件导入

在BurpSuite的Extender模块中,点击Add,将下载的captcha-killer.jar文件导入

此时可以看到BurpSuite的栏目里多了一块选择:Captcha-Killer,插件导入成功。

3.验证码抓取

在测试页面随意输入账户名和密码及验证码,使用BurpSuite,进行抓包,抓取页面如下:

将抓到的数据包发送到Intruder模块,一会儿进行重放爆破.

然后点击forward,寻找获取验证码的数据包,找到一个数据包,其中包含captcha,怀疑是获取验证码的数据包

右击找到captcha-killer,发送到captcha-panel,点击获取,成功找到验证码,验证码抓取成功.

4.百度OCR识别

在Request Template中右击选择模版库,找到百度OCR,我们通过使用captcha-killer自带的模块进行识别,但是调用百度OCR识别需要Access_token,将我们在百度OCR中获得的access_token修改进数据包中去,即可自动识别验证码.

4.1领取免费资源

进入百度OCR:https://console.bce.baidu.com/ai/#/ai/ocr/overview/index[1],首先领取免费的资源,这样可以帮助我们识别一些文字类型的验证码,也可以按量计费购买一些流量

4.2 创建应用

领取完免费资源或者购买了一些服务后点击创建应用,选择应用归属为个人,创建成功后出现如下列表,可以看到创建的应用被分配了API KEY和Secret Key

通过API KEY 和 Secret Key我们需要获取到调用此应用的Access Token

4.3 Token 获取

根据开发文档,我们构造如下语句

curl -i -k 'https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials&client_id=[你的API KEY]&client_secret=[你的Secret Key]'

将API KEY 和Secret KEY代换进去(注意没有中括号),在Linux命令行中执行,成功返回来了就json数据,找到Access token

4.4 验证码识别

将Access_token复制进captcha-killer,点击识别,成功识别到验证码

4.5 识别验证码的暴力破解

在识别成功后,将识别到的结果选中,右击中标记为识别结果

回到Intruder模块,我们本次试验选择用户名不变,猜解密码的模式,于是设置Intruder模块中的两个变量作为参数,一个是密码,另一个是验证码.选择PitchFork模块

将password中的内容导入字典

而将captcha中内容选择为Extension-generated,通过captcha-killer生成.

由于百度OCR的特点,爆破速度不能太快,所以我们选择以更慢的速度来进行暴力破解

点击Start Attack,成功进行暴力破解,绕过验证码成功!

0x03 总结

在渗透测试的过程中,登录框中遇到验证码是很常见的一件事情,所以大家一定要掌握验证码识别这个技巧,有时候百度OCR可能识别精度不高,也欢迎大家尝试别的OCR平台的方法,可以一起交流!

ocr验证码识别
本作品采用《CC 协议》,转载必须注明作者和本文链接
captcha-killer要解决的问题是让burp能用上各种验证码识别技术!插件当前针对的图片类型验证码,其他类型当前不支持。captcha-killer本身无法识别验证码,它专注于对各种验证码识别接口的调用。
本文仅作为技术讨论及分享,严禁用于任何非法用途。本文将介绍一个操作浏览器进行口令暴破的案例与验证码识别工具。Playwright:浏览器自动化工具Playwright 是一个强大的 Python 库,仅用一个 API 即可自动执行 Chromium、Firefox、WebKit 等主流浏览器自动化操作,并同时支持以无头模式、有头模式运行。Playwright:滑动验证码案例生成登录流程代码安装 playwright 后,运行下面命令进行录制浏览器操作,并生成代码:python -m playwright codegen
0X00 前言如果在渗透中遇到带有验证码的网站登录口,相信很多小伙伴遇到了带验证码的登录口就直接放弃了爆破弱口令的想法,这样会丧失很多机会,所以今天就让我来推荐一些可以识别验证码的Burp插件,以此用来爆破登录口。
由于测试过程中很多系统我们能接触到的只有一个登陆界面,所以要充分挖掘漏洞,进行深入操作登录 注册万能密码绕过登录存在 SQL 注入的情况下,有可能使用万能密码直接登录admin' or '1'='1'--. 有超级多登录口 SQL 注入存在 SQL 注入的话直接注出账密有些可以构造用户注入登录,比如熊海 cms 后台登录处存在 sql 注入$login=$_POST['login'];
验证码识别将Access_token复制进captcha-killer,点击识别,成功识别验证码4.5?0x03 总结在渗透测试的过程中,登录框中遇到验证码是很常见的一件事情,所以大家一定要掌握验证码识别这个技巧,有时候百度OCR可能识别精度不高,也欢迎大家尝试别的OCR平台的方法,可以一起交流!
修改完后导入burpAttack type处选择 Pitchfork,在http头部位置插入xiapao:验证码的URL地址此处导入字典选择验证码识别然后把线程设置为1
注意默认使用jdk1.8编译在最新版的burp2.x中jdk为1x,会导致插件不可用,使用jdk8编译到不行,请下载jdk16版本试试,若还不行,请自行下载源码使用当前电脑的jdk1x进行编译,谢谢。爆破时,记得把线程设置为1安装需要python3 小于3.7的版本如果是用win系统可以直接下载打包好的环境,内置python3.6.6版本以及下载好对应的模块NEW_xp_CAPTCHA win64 python环境完整版。
该项目不是我的项目,本文章仅仅是为了记录在使用该项目中碰到的问题
验证码爆破总结
2022-12-28 09:20:27
验证码爆破总结
一名用户将自己的86万元积蓄存入了光大银行。开通手机银行功能后,存入了10万元钱。文惠对存款被盗一事毫不知情。但为时已晚,在8月3日-8月10日之间,存款已被盗刷。在该案件中,光大银行因没能保障客户存取款交易安全不受非法侵害,被判全责。截至目前,距离存款被盗刷已有一年多时间。目前尚无法确定嫌疑人身份,大概率是在缅甸附近。也就是说, 除交易密码泄露以外,文惠的短信验证码也可能已被窃取。
VSole
网络安全专家