0x01插件下载
项目地址:
https://github.com/c0ny1/captcha-killer
https://github.com/f0ng/captcha-killer-modified
安装burp插件:
下载已编译好的jar文件 https://github.com/f0ng/captcha-killer-modified/releases
![null 图片[1]-验证码识别插件对登录页面进行爆破-NGC660 安全实验室](https://secpulseoss.oss-cn-shanghai.aliyuncs.com/wp-content/uploads/1970/01/beepress-image-186973-1662617696.png)
0x02验证码识别平台使用
https://github.com/sml2h3/ddddocr 安装命令
pip install ddddocr
以上命令将自动安装符合自己电脑环境的最新ddddocr
0x03验证码接口搭建
https://github.com/sml2h3/ocr_api_server 将源代码下载到本地
![null 图片[2]-验证码识别插件对登录页面进行爆破-NGC660 安全实验室](https://secpulseoss.oss-cn-shanghai.aliyuncs.com/wp-content/uploads/1970/01/beepress-image-186973-1662617697.png)
# 安装依赖
pip install -r requirements.txt -i https://pypi.douban.com/simple
# 运行 可选参数如下
# --port 9898 指定端口,默认为9898
# --ocr 开启ocr模块 默认开启
# --old 只有ocr模块开启的情况下生效 默认不开启
# --det 开启目标检测模式
# 最简单运行方式,只开启ocr模块并以新模型计算
python3 ocr_server.py --port 9898 --ocr
# 开启ocr模块并使用旧模型计算
python3 ocr_server.py --port 9898 --ocr --old
# 只开启目标检测模块
python3 ocr_server.py --port 9898 --det
# 同时开启ocr模块以及目标检测模块
python3 ocr_server.py --port 9898 --ocr --det
# 同时开启ocr模块并使用旧模型计算以及目标检测模块
python3 ocr_server.py --port 9898 --ocr --old --det
使用一下命令开启服务
python3 ocr_server.py --port 9898 --ocr
![null 图片[3]-验证码识别插件对登录页面进行爆破-NGC660 安全实验室](https://secpulseoss.oss-cn-shanghai.aliyuncs.com/wp-content/uploads/1970/01/beepress-image-186973-1662617699.png)
0x04配置验证码地址
使用带验证码页面进行测试
http://demo.xxxxx.com/login.php?s=Admin/login
![null 图片[4]-验证码识别插件对登录页面进行爆破-NGC660 安全实验室](https://secpulseoss.oss-cn-shanghai.aliyuncs.com/wp-content/uploads/1970/01/beepress-image-186973-1662617700.png)
获取更新验证码链接并发送到插件
![null 图片[5]-验证码识别插件对登录页面进行爆破-NGC660 安全实验室](https://secpulseoss.oss-cn-shanghai.aliyuncs.com/wp-content/uploads/1970/01/beepress-image-186973-16626177001.png)
使用burp抓取获取验证码数据包,然后右键captcha-killer -> send to captcha panel发送数据包到插件的验证码请求面板。
![null 图片[6]-验证码识别插件对登录页面进行爆破-NGC660 安全实验室](https://secpulseoss.oss-cn-shanghai.aliyuncs.com/wp-content/uploads/1970/01/beepress-image-186973-1662617701.png)
然后到切换到插件面板,点击获取即可拿到要识别的验证码图片内容。
![null 图片[7]-验证码识别插件对登录页面进行爆破-NGC660 安全实验室](https://secpulseoss.oss-cn-shanghai.aliyuncs.com/wp-content/uploads/1970/01/beepress-image-186973-1662617703.png)
注意:获取验证码的cookie一定要和intruder发送的cookie相同!
0x05配置识别接口的地址和请求包
![null 图片[8]-验证码识别插件对登录页面进行爆破-NGC660 安全实验室](https://secpulseoss.oss-cn-shanghai.aliyuncs.com/wp-content/uploads/1970/01/beepress-image-186973-1662617705.png)
启动ocr_api_server项目API
python3 ocr_server.py --port 9898 --ocr
拿到验证码之后,就要设置接口来进行识别了。我们使用ocr_api_server项目,用burp抓包,然后右键发送到插件的接口请求面板。
![null 图片[9]-验证码识别插件对登录页面进行爆破-NGC660 安全实验室](https://secpulseoss.oss-cn-shanghai.aliyuncs.com/wp-content/uploads/1970/01/beepress-image-186973-1662617707.png)
然后把图片内容的位置用标签来代替。比如该例子使用的接口是post提交,值为图片二进制数据的base64编码后的url编码。那么Request template(请求模版)面板应该填写如下:
![null 图片[10]-验证码识别插件对登录页面进行爆破-NGC660 安全实验室](https://secpulseoss.oss-cn-shanghai.aliyuncs.com/wp-content/uploads/1970/01/beepress-image-186973-1662617712.png)
POST /ocr/b64/json HTTP/1.1
Host: 127.0.0.1:9898
User-Agent: python-requests/2.24.0
Accept-Encoding: gzip, deflate
Accept: */*
Connection: close
Content-Length: 2540
<@BASE64><@IMG_RAW></@IMG_RAW></@BASE64>
最后点击“识别”即可获取到接口返回的数据包,同时在request raw可以看到调用接口最终发送的请求包。
![null 图片[11]-验证码识别插件对登录页面进行爆破-NGC660 安全实验室](https://secpulseoss.oss-cn-shanghai.aliyuncs.com/wp-content/uploads/1970/01/beepress-image-186973-1662617713.png)
模版被渲染为最终的请求
0x06设置用于匹配识别结果的规则
通过上一步我们获取到了识别接口的返回结果,但是插件并不知道返回结果中,哪里是真正的识别结果。插件提供了4中方式进行匹配,可以根据具体情况选择合适的。
![null 图片[12]-验证码识别插件对登录页面进行爆破-NGC660 安全实验室](https://secpulseoss.oss-cn-shanghai.aliyuncs.com/wp-content/uploads/1970/01/beepress-image-186973-1662617715.png)
通过分析我们知道,接口返回的json数据中,字段words的值为识别结果。我们这里使用Regular expression(正则表达式)来匹配,然后选择yzep右键标记为识别结果,系统会自动生成正则表达式规则” (.*?)”}]。
![null 图片[13]-验证码识别插件对登录页面进行爆破-NGC660 安全实验室](https://secpulseoss.oss-cn-shanghai.aliyuncs.com/wp-content/uploads/1970/01/beepress-image-186973-1662617716.png)
设置匹配方式和自动生成规则 注意:若右键标记自动生成的规则匹配不精确,可以人工进行微调。比如该例子中可以微调规则为”words”: “(.*?)”}将更加准确!到达这步建议将配置好常用接口的url,数据包已经匹配规则保存为模版,方便下次直接通过右键模板库中快速设置。同时插件也有默认的模版供大家使用与修改。
0x07在Intruder模块调用
配置好各项后,可以点击锁定对当前配置进行锁定,防止被修改导致爆破失败!接着安装以下步骤进行配置
![null 图片[14]-验证码识别插件对登录页面进行爆破-NGC660 安全实验室](https://secpulseoss.oss-cn-shanghai.aliyuncs.com/wp-content/uploads/1970/01/beepress-image-186973-1662617721.png)
设置Intruder的爆破模式和payl
![图片[15]-验证码识别插件对登录页面进行爆破-NGC660 安全实验室](https://secpulseoss.oss-cn-shanghai.aliyuncs.com/wp-content/uploads/1970/01/beepress-image-186973-1662617724.png)
验证码payload选择有插件来生成记得使用单线程,不然验证码对应不上
![null 图片[16]-验证码识别插件对登录页面进行爆破-NGC660 安全实验室](https://secpulseoss.oss-cn-shanghai.aliyuncs.com/wp-content/uploads/1970/01/beepress-image-186973-1662617725.png)
点击开始进行爆破
![图片[17]-验证码识别插件对登录页面进行爆破-NGC660 安全实验室](https://secpulseoss.oss-cn-shanghai.aliyuncs.com/wp-content/uploads/1970/01/beepress-image-186973-1662617727.png)
进行爆破,可以通过对比识别结果看出识别率
参考文章
https://gv7.me/articles/2019/burp-captcha-killer-usage/
https://mp.weixin.qq.com/s/_P6OlL1xQaYSY1bvZJL4Uw
E N D
本文作者:TideSec
本文为安全脉搏专栏作者发布,转载请注明:https://www.secpulse.com/archives/186973.html
昶之琴![资深玩家 徽章-资深玩家-NGC660 安全实验室](http://ngc660.cn/wp-content/themes/zibll/img/thumbnail-null.svg)
2年前0
我以为只要提交就行了好想告诉你![备受喜爱 徽章-备受喜爱-NGC660 安全实验室](http://ngc660.cn/wp-content/themes/zibll/img/thumbnail-null.svg)
2年前0
花巨资看一下