一、插件简介

captcha-killer要解决的问题是让burp能用上各种验证码识别技术!

注意:

  1. 插件目前针对的图片型验证码,其他类型目前不支持。
  2. captcha-killer本身无法识别验证码,它专注于对各种验证码识别接口的调用

二、下载地址:

burp2020前使用:

https://github.com/c0ny1/captcha-killer/tree/0.1.2

burp2020后的版本使用:

https://github.com/Ta0ing/captcha-killer-java8

换到burp2020后,burp2020只能运行在java8环境下,因为原工具Base64编码是使⽤JDK⾥sun.misc套件下的BASE64Encoder和BASE64Decoder这两个类,但是JDK1.8已经取消了这个编码方法,所以作者重构了代码,支持了JDK1.8。

三、插件使用介绍

1、插件扩展-添加captcha-killer插件:

android 图形验证码库 图形验证码插件_验证码识别

2、将获取验证码的数据包发送到插件

android 图形验证码库 图形验证码插件_android 图形验证码库_02

 3、然后到切换到captcha-killer插件面板,点击获取即可拿到要识别的验证码图片内容。

注意:获取验证码的cookie一定要和intruder发送的cookie相同!

android 图形验证码库 图形验证码插件_web安全_03

4、 配置识别接口的地址和请求包

接口地址: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中间的空行,里面有个空格一定要删掉。

android 图形验证码库 图形验证码插件_验证码_04

 5、匹配识别结果

通过判断我们知道,接口返回的json数据中,字段result的值为识别结果。我们这里使用Regular expression(正则表达式)来匹配,然后选择w3gvx1右键标记为识别结果,系统会自动生成正则表达式规则t"\:(.*?)","

android 图形验证码库 图形验证码插件_验证码_05

到达这步建议将配置好常用接口的url,数据包已经匹配规则保存为模版,方便下次直接通过右键模板库中快速设置。

android 图形验证码库 图形验证码插件_web安全_06

6、在Intruder模块调用

设置Intruder的爆破模式和payload位置

android 图形验证码库 图形验证码插件_验证码识别_07

 验证码payload选择有插件来生成

android 图形验证码库 图形验证码插件_android 图形验证码库_08

线程建议设置为1,因为多线程会导致大量验证码错误,验证码还没识别完成,已经被另一个线程刷新改变了。

android 图形验证码库 图形验证码插件_android 图形验证码库_09

 7、开始攻击可以看到攻击结果,验证码顺利爆破

android 图形验证码库 图形验证码插件_安全_10

 插件界面可以看到识别的结果

android 图形验证码库 图形验证码插件_安全_11

PS:为什么不用百度识别,因为验证码识别国家有政策,所以百度接口识别的精确度可能不高,但是百度识别数量少不收费,大家可以自己测试测试。