使用burp插件实现图片验证码的识别

早上看到朋友圈有人转了一个新的识别图片验证码的burp插件,项目主页https://github.com/f0ng/captcha-killer-modified

正好之前对类似插件的使用效果不理想,于是使用了一下,整体来说,captcha-killer-modified与captcha-killer相同,都是结合第三方的ocr识别接口来识别图片验证码,但是这个项目里提到了一个免费的ocr识别项目ddddocr(项目地址https://github.com/sml2h3/ddddocr),确实好用,本文记录一下使用方法。

首先burp安装插件,burp-Extender-Extensions中,点击Add,然后选择captcha-killer-modified主页中下载下来的jar包即可

使用burp插件实现图片验证码的识别_第1张图片

访问对应站点功能,找到获取验证码的数据包,然后依次选择"Extensions"-"captcha-killer-modified 0.13"-"captcha-killer"-"Send to captcha panel"将数据包传到captcha-killer-modified插件中

使用burp插件实现图片验证码的识别_第2张图片

 切换到插件标签,可以看到刚才传过来的数据包内容,点击获取,如果成功获取到图片验证码就表示正常

使用burp插件实现图片验证码的识别_第3张图片

接下来配置ocr识别接口,在本地安装对应的python库(需要首先安装并配置好python环境),执行

pip3 install ddddocr

 使用burp插件实现图片验证码的识别_第4张图片

在接下来安装 aiohttp库,执行

pip3 install aiohttp

使用burp插件实现图片验证码的识别_第5张图片

本地运行以下python代码,如果端口号与其他服务有冲突可自行修改

# -*- coding:utf-8 -*-
# author:f0ngf0ng

import argparse
import ddddocr                       # 导入 ddddocr
from aiohttp import web

parser = argparse.ArgumentParser()
parser.add_argument("-p", help="http port",default="8888")
args = parser.parse_args()

ocr = ddddocr.DdddOcr()
port = args.p

async def handle_cb(request):
    return web.Response(text=ocr.classification(img_base64=await request.text()))

app = web.Application()
app.add_routes([
    web.post('/reg', handle_cb),
])

if __name__ == '__main__':
    web.run_app(app, port=port)

 运行界面如下

使用burp插件实现图片验证码的识别_第6张图片

 接下来将如下内容粘贴到插件中,接口配置里,并且在接口URL中填写http://127.0.0.1:8888(如果是在其他主机运行的,自行修改ip地址)

POST /reg HTTP/1.1
Host: 127.0.0.1:8888
Connection: close
Cache-Control: max-age=0
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.132 Safari/537.36
Sec-Fetch-Mode: navigate
Sec-Fetch-User: ?1
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3
Sec-Fetch-Site: none
Accept-Encoding: gzip, deflate
Accept-Language: zh-CN,zh;q=0.9
Content-Type: application/x-www-form-urlencoded
Content-Length: 55

<@BASE64><@IMG_RAW>

使用burp插件实现图片验证码的识别_第7张图片

 点击识别可看到对当前获取验证码的识别效果,多次获取识别后效果如下,成功率还是挺高的,主要问题就是容易把数字1识别为字母l,数字0识别为字母O

使用burp插件实现图片验证码的识别_第8张图片

 接下来我们可以去暴破使用了,Intruder正常配置好需要暴破的参数,并且要把验证码参数一起选好,然后验证码参数的payload配置如下,Payload type处选择"Extension-generated"

使用burp插件实现图片验证码的识别_第9张图片

Payload Options选择对应插件

使用burp插件实现图片验证码的识别_第10张图片 

 选择好captcha-killer-modified插件后正常"start attack"就可以了

参考文章:

burp验证码爆破插件二改

使用burp插件captcha-killer识别图片验证码 | 回忆飘如雪

你可能感兴趣的:(安全,安全)