本文最后更新于631 天前,其中的信息可能已经过时
前言
想必大家都会使用burp进行爆破,当遇到带验证码的登录表单进行爆破时,基本尝试抓包后观察验证码是否主动更新,或者进行验证码绕过(我是十八期萌新,听风风说的有这个方法,但我还没学到),机缘巧合下我接触到了captcha-killer这个插件,可以提供给大家第三种爆破思路
Github下载地址:https://github.com/f0ng/captcha-killer-modified
张三网盘下载地址:captcha-killer下载
什么是captcha-killer?
总的来说,它是个用Java写的插件,可以无缝衔接于burp.但是他只是一个调用接口,并不进行识别的操作,真正进行验证码识别处理的是两个个用Python脚本(codereg.py)调用的两个接口(ddddocr和aiohttp), 稍后我会进行简明的介绍
captcha-killer设计理念是只专注做好对各种验证码识别技术接口的调用, 说具体点就是burp通过这一个插件,就可以适配各种验证码识别接口,无需重复编写调用代码.
今天不谈编码层面如何实现(主要是我也不会),感兴趣的同学可以去github看源码. 此篇文章只通过使用步骤来说明使用方法
简要介绍codereg.py
个人理解,这个脚本的整体识别流程是通过python在本地开启一个验证码识别的web接口来接收captcha-killer传来的验证码图片内容,然后调用识别服务(利用机器学习)来识别,最后返回结果给captcha-killer.
插件安装教程
打开Burp->选择扩展(Extender)->添加(Add)->选择文件(Select ffile)->选择下载的captcha-killer-modified-0.24-jdk8.jar文件
项目栏多出captcha-killer-modified,表示安装完成
Python验证码识别部署
开源识别验证码项目地址:https://github.com/sml2h3/ddddocr
python验证码识别项目:https://github.com/f0ng/captcha-killer-modified
环境需求
python <= 3.9
Windows/Linux/Macos..
暂时不支持Macbook M1(X),M1(X)用户需要自己编译onnxruntime才可以使用
pip install -r requestments.txt
Python 验证码api识别代码
# -*- coding:utf-8 -*-
# author:f0ngf0ng
# @Date: 2022/3/11 下午1:44
import argparse
import ddddocr # 导入 ddddocr
from aiohttp import web
import base64
parser = argparse.ArgumentParser()
parser.add_argument(“-p”, help=”http port”,default=”8888″)
args = parser.parse_args()
ocr = ddddocr.DdddOcr()
port = args.p
auth_base64 = “f0ngauth” # 可自定义auth认证
async def handle_cb(request):
if request.headers.get(‘Authorization’) != ‘Basic ‘ + auth_base64: # 可自定义auth认证,不需要注释就好
return web.Response(text=’Forbidden’, status=’403′)
print(await request.text())
img_base64 = await request.text()
img_bytes = base64.b64decode(img_base64)
# return web.Response(text=ocr.classification(img_bytes)[0:4]) 验证码取前四位
# return web.Response(text=ocr.classification(img_bytes)[0:4].replace(“0″,”o”)) 验证码取前四位、验证码中的0替换为o
return web.Response(text=ocr.classification(img_bytes)[0:4])
app = web.Application()
app.add_routes([
web.post(‘/reg’, handle_cb),
])
if __name__ == ‘__main__’:
web.run_app(app, port=port)
代码运行截图
插件使用教程
1. 打开目标网站
2. 打开bp代理抓包
此时点击验证码图片刷新,bp捕捉到包
右击把包发送到captcha-killer模块中
3. 获取验证码
点击获取,即可拿到请求的验证码
4.配置接口并识别验证码
接口地址:http://127.0.0.1:8888(端口根据自己设定更改)
请求模板:
请求模板
POST /reg HTTP/1.1
Host: 127.0.0.1:8888
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>
5. 识别二维码
点击“识别”
爆破使用教程
1. 重新抓包
在登录框输入“账号”、“密码”、“验证码”,并且发送到Intruder(快捷键Ctrl+I)模块中
2. Intruder模块设置
攻击类型选择:Pitchfork
在密码和验证码处添加payload
3. payload设置
payload1按照常规设置添加密码字典
payload2是验证码的值
线程2选择继承插件模式
继承插件选择captcha-killer-modified
4. 线程设置
验证码识别爆破机制只能设置单线程
5. 开始爆破
参考文章:
https://mp.weixin.qq.com/s/_P6OlL1xQaYSY1bvZJL4Uw
https://gv7.me/articles/2019/burp-captcha-killer-usage/