Burpsuite识别图片验证码

0X00 背景介绍

最近几天在做测试的时候,发现有一处短信轰炸漏洞。但是在发送短信验证码之前需要验证图形验证码,并且图形验证码使用后就过期了,这给验证带来了一点麻烦。使用burpsuite插件时,对比了几个不同的识别接口,把过程记录下来,做个记录。

 

0X01 导入插件

在做图形验证码识别的burpsuite插件主要有captcha-kiler和reCAPTCHA两种,下载地址:

captcha-kiler:https://github.com/c0ny1/captcha-killer/tags

reCAPTCHA:https://github.com/bit4woo/reCAPTCHA/releases/tag/v1.0

在burp中导入,打开burpsuite--Extender--Extensions--Add--Select file

然后就可以看到出现了captcha-kiler和reCAPTCHA选项卡。

 

0X02 配置图形验证码识别接口

先拦一个短信验证码的包,右键captcha-kiler--sent to captch panel 

点击获取,就可以得到图形验证码:

接下来配置识别接口,可以自己调试接口,然后右键send to interface panel 

也可以在接口Request template中右键调用模板

 

我现在使用的是图鉴,他的HTTP请求模板是:

POST /base64 HTTP/1.1


Host: api.ttshitu.com


Upgrade-Insecure-Requests: 1


User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.149 Safari/537.36


Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9


Accept-Encoding: gzip, deflate


Accept-Language: zh-CN,zh;q=0.9


Cookie: Hm_lvt_d92eb5418ecf5150abbfe0e505020254=1585994993,1586144399; SESSION=5ebf9c31-a424-44f8-8188-62ca56de7bdf; Hm_lpvt_d92eb5418ecf5150abbfe0e505020254=1586146123


Connection: close


Content-Type: application/json; charset=UTF-8


Content-Length: 2658


{"username":"***","password":"***","typeid":"1","image":"<@BASE64><@IMG_RAW></@IMG_RAW></@BASE64>"}

 username password填自己的,typeid为识别的类型1代表纯数字,自己填写正则匹配验证码,图鉴的正则就写<result>(.*)</result>就可以匹配到。

 

以上能走通,说明图形验证码识别就没有问题了。

 

0X03 使用captcha-kiler进行短信轰炸

将发送短信验证码的报文发送到Intruder,因为我们只需要修改图形验证码的值即可,所以只留一个变量。

 

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

选好payload就可以爆破了:

我们可以看到,有很多图形验证码识别成功,并发送了短信。

至此,使用图形验证码识别插件进行短信轰炸就成功了。

 

0X04 captcha-killer深入了解

首先,报文结构的构造,我们要参考你所使用的平台提供的接口文档,来去使用这个接口,这根据不同接口,调用规范也不同,需要自己去看。

其次,在传送图片验证码时,除了接口平台的规范,captcha-killer插件也有自己的要求:

如果要传输图片base64编码后的内容,就应该使用<@BASE64><@IMG_RAW></@IMG_RAW></@BASE64>去代表要传输的图片内容,可以和上面图鉴的HTTP请求包对应。

 

在返回包识别验证结果时,插件给我们提供了4种方式进行匹配。

我们在图鉴的返回包中,就可以选择Regular expression,正则表达式为<result>(.*)</result>

识别成功之后,可以在识别接口的空白处点击右键,保存模板,下次直接使用。

 

0X05 插件及识别接口对比

文章开头我们还列举了个reCAPTCHA,我们可以导入看一下:

右边他直接给出两个接口平台:https://www.jsdati.com和GSA Captcha Breaker,在我看来,这个插件只是把captcha-kiler构造接口平台的HTTP报文和提取识别后的短信验证码做了,但是极大限制了你选择平台的自由度。

 

其次,对于识别接口平台,我现在使用图鉴http://www.ttshitu.com/register.html,1块钱可以尝试500次,准确率还行,优点是不用实名认证,减少了泄漏个人信息的可能。对了,使用推荐码4b0a3ee919844bb4b2fc7468132bfe9e或者点击推广链接http://ttshitu.com/register.html?inviter=ff72699678cc4209bb6ecb4f09e2f3e5进行注册,也是个给我增加积分的好办法。其他的我还见过百度和阿里的ocr,感兴趣的可以试试。

 

我其实还尝试了GSA Captcha Breaker和完美验证码识别系统,但是没有成功,后面可以继续尝试一下,毕竟搭建在本地的识别系统不要钱,哈哈哈。

长按下方图片关注我们:

  • 6
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值