一. 声明:本文仅限学习研究讨论,切忌做非法乱纪之事!
一、插件简介
captcha-killer要解决的问题是让burp能用上各种验证码识别技术!
注意:
插件目前针对的图片型验证码,其他类型目前不支持。
captcha-killer本身无法识别验证码,它专注于对各种验证码识别接口的调用
二、下载地址:
burp2020前使用:
https://github.com/c0ny1/captcha-killer/tree/0.1.2
burp2020后的版本使用:
https://github.com/Ta0ing/captcha-killer-java8
1.下载插件并加载
下载DDDDdocr API 服务器{kali环境下有docker环境}
地址:https://github.com/sml2h3/ocr_api_server.git
git clone https://github.com/sml2h3/ocr_api_server.git
cd ocr_api_server
# 修改entrypoint.sh中的参数,具体参数往上翻,默认9898端口,同时开启ocr模块以及目标检测模块
# 编译镜像
docker build -t ocr_server:v1 .
# 运行镜像
docker run -p 9898:9898 -d ocr_server:v1
部署好之后,docker ps -a看看
映射到9898端口了,接下来验证连通性
curl -v http://ip:9898/ping
返回pong,表示成功
访问验证码的链接地址,抓验证码的请求包,并发送到插件
然后到切换到captcha-killer插件面板,点击获取即可拿到要识别的验证码图片内容(下方验证码url栏处,直接点击获取验证码也行,无需复制验证码url,再点击获取)
注意:获取验证码的cookie一定要和intruder发送的cookie相同!
配置识别接口的地址和请求包
接口地址:http://api.ttshitu.com:80
请求包,username,password处去http://ttshitu.com注册账号,该平台识别500次一元钱:
POST /predict HTTP/1.1
Host: api.ttshitu.com
User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:52.0) Gecko/20100101 Firefox/52.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3
Accept-Encoding: gzip, deflate
DNT: 1
Connection: close
Upgrade-Insecure-Requests: 1
Content-Type: application/json;charset=UTF-8
Content-Length: 1443
{"username":"****","password":"****","typeid":"3","image":"<@BASE64><@IMG_RAW>@IMG_RAW>@BASE64>"}
(我们的上面的代码可以直接粘贴使用)
注意:有一种情况,作者没有粘贴代码,而是把代码放到写作框里,所以代码header与body中间的空行,里面有个空格一定要删掉。(CSDN的原因空行自带一个空格)
但是开头我们自己搭建了一个ocr接口可以直接免费使用,
以下是成功图
这个是我们的请求包
POST /ocr/b64/json HTTP/1.1
Host: ip:port
Authorization:Basic f0ngauth
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:97.0) Gecko/20100101 Firefox/97.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8
Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
Accept-Encoding: gzip, deflate
Connection: keep-alive
Upgrade-Insecure-Requests: 1
Content-Type: application/x-www-form-urlencoded
Content-Length: 8332
<@BASE64><@IMG_RAW>@IMG_RAW>@BASE64>
匹配识别结果
通过判断我们知道,接口返回的json数据中,字段result
的值为识别结果。我们这里使用Regular expression
(正则表达式)来匹配,然后选择YX7L右键标记为识别结果
,系统会自动生成正则表达式规则t"\:(.*?)","
。
到达这步建议将配置好常用接口的url,数据包已经匹配规则保存为模版,方便下次直接通过右键模板库
中快速设置。
这时抓包登录界面的请求包,
然后发送到攻击器
设置Intruder的爆破模式和payload位置
验证码payload选择通过插件来生成
设置线程
多线程会导致大量验证码错误,验证码还没识别完成,已经被另一个线程刷新改变了
开始爆破
备注: 1.本来想爆破pikachu的 但是pikachu的验证码不好识别(10个里面能错4个,不管是收费还是免费的ocr接口)
2.爆破图形验证码,得看看验证码好不好识别,然后再去爆破。(基本四位数,看着清楚的,随便爆破就完了)