实现一个简单的Burp验证码本地识别插件

2018 年 4 月 22 日 FreeBuf releasel0ck

0X00:前言

为什么要写一个这个东西呢?虽然现在好多大网站都不用图片验证码了,但是仍然有一部分陈旧的web系统用着一些简单的图片验证码。当遇到带有验证码,而验证码的形式又非常简单的时候,手工测试起来可能太麻烦。我所知道的现有工具中有“PKAV HTTP Fuzzer”可以识别验证码,并做一些fuzz。但是,这款工具本身不提供,自带的识别引擎的训练工具。并且,软件所支持的次时代和和亦思验证码识别系统都是收费的,没有找到干净好用的破解版。因此,萌发了这样一个念头。先给各位放一张成品图片吧!

0X01:开发环境

win7 x64 + java version”1.8.0_161”(32位)+ NetBeans IDE 8.2+Burp 1.7.33 社区版

注:java jdk 一定要32位的,因为我们一会用到的dll只有32位的。

0X02:识别方式寻找

既然是本地识别,那么就需要本地能够识别的软件。这个时候,得先去网上多找找别人已经实现,并且可以免费使用的软件。我就“傻了吧唧”的自己去重复造轮子,结果,最后软件的效果没有那么的好。有兴趣的可以移步去看看,传送门。

好了,言归正传。我已经在网上找到了两种看起来靠谱点的软件了。

第一种,英数识别

如图,一款通用识别的软件,测试中,一些简单的数字字母验证码是可以识别的,识别效率还可以。不过作者,没有提供源代码。有人说,这个软件很耗资源。具体,也不知道有没有后门。我们先拿来用用吧。作者,只提供了一个易语言调用的模块。因此,我们需要将X_CNN.ec修改为一个dll。我编译成了一个名为cnn.dll的动态链接库,过程不再赘述,软件传送门。

第二种,完美验证码识别系统

如图,一个可以自己进行简单训练的验证码识别系统。提供了DLL供我们调用。用这个做一些简单的图片验证码还是可以的,软件传送门。

0X03:图形界面编写

首先,我们用NetBeans新建一个名为Releasel0ck的java项目,然后新建一个名为GUI的Jpanel窗体。


接着开始拖拽各种需要的控件了,最终界面如下:

0X04:dll的调用

这里使用了JNA类库去调用dll。所以,我们得先下载一个JNA,并添加到我们的项目中,代码如下图:

0X05:burp插件编写

我并没有相关插件编写的经验,但可以寻找相似的插件,依葫芦画瓢。于是找到了一款名为reCAPTCHA的插件,然后参考它的实现方式就可以了。为什么这款插件这么好,我没用呢?因为他使用打码平台,要钱。我觉得一些简单图片,自己来就好了,或者使用通用识别。源码传送门

导入burp的java的接口文件,并且新建一个BurpExtender类。

继承一些插件需要的接口:

将图形界面添加到burp中的代码:

实现一个菜单项:

验证码识别:

将获取的图片写入文件:

其中requestHelper类和imageType类是直接使用的 reCAPTCHA中的代码。requestHelper主要是发送请求包,获取并将验证码保存到文件中,供我们识别。imageType主要使用用于判断图片的类型。

一些重要的功能介绍完了,其余的请查看源代码。

0X0:6:简单的测试

需要将discriminate文件夹与burp放在同一个目录中,不然会找不到dll。

运行时,必须要用管理员打开cmd。然后,在命令下运行:java -jar burpsuite_community_1.7.33.jar。

不出意外的话,使用通用识别的时候会报一个错误。(我也无能为力)如图,将CClib.dll放到它说的目录中吧。

1) 通用识别测试,结果如下图:

2) 完美验证码系统识别,结果如下图:

liangjing.dat是我使用完美验证码识别系统,花了十分钟做的一个简单字库。密码:liangjing

3) Intruder中测试

这里我只测试验证码是否能正确识别,测试账号和密码我们都固定:

选择编写的插件作为payload作为生成器:

Start attack:

验证码成功:

验证码失败:

0X07:结束语

一个很简单的插件,花了差不多两天的时间完成了。只能说,在测试环境中能跑了。有很多的问题了需要解决。例如,在验证码识别错误的时候,怎样判断出来,并且自动的重复发包。源代码和jar包都发出来了。需要的就下载看一下吧!

链接: https://pan.baidu.com/s/12HHy1W5ZWOXf6I_QzosGOQ 密码: ef48

参考链接:

https://bbs.125.la/forum.php?mod=viewthread&tid=14104886&highlight=%D3%A2%CA%FD

https://bbs.125.la/forum.php?mod=viewthread&tid=14015752&highlight=%CD%EA%C3%C0

https://github.com/bit4woo/reCAPTCHA

https://blog.csdn.net/gwd1154978352/article/details/55097376

* 本文作者:releasel0ck,本文属FreeBuf原创奖励计划,未经许可禁止转载

登录查看更多
0

相关内容

全自动区分计算机和人类的图灵测试(英语: Completely Automated Public Turing test to tell Computers and Humans Apart,简称 CAPTCHA),俗称 验证码,是一种区分用户是计算机和人的公共全自动程序。
【实用书】学习用Python编写代码进行数据分析,103页pdf
专知会员服务
192+阅读 · 2020年6月29日
一份简明有趣的Python学习教程,42页pdf
专知会员服务
76+阅读 · 2020年6月22日
【实用书】Python爬虫Web抓取数据,第二版,306页pdf
专知会员服务
117+阅读 · 2020年5月10日
【WWW2020-微软】理解用户行为用于文档推荐
专知会员服务
35+阅读 · 2020年4月5日
【2020新书】如何认真写好的代码和软件,318页pdf
专知会员服务
63+阅读 · 2020年3月26日
深度神经网络实时物联网图像处理,241页pdf
专知会员服务
76+阅读 · 2020年3月15日
算法与数据结构Python,369页pdf
专知会员服务
161+阅读 · 2020年3月4日
【干货】用BRET进行多标签文本分类(附代码)
专知会员服务
84+阅读 · 2019年12月27日
Keras作者François Chollet推荐的开源图像搜索引擎项目Sis
专知会员服务
29+阅读 · 2019年10月17日
基于Web页面验证码机制漏洞的检测
FreeBuf
7+阅读 · 2019年3月15日
Python | Jupyter导出PDF,自定义脚本告别G安装包
程序人生
7+阅读 · 2018年7月17日
10行代码实现目标检测,请收下这份教程
95行代码破解极验滑动验证码(附源码)
FreeBuf
11+阅读 · 2018年5月9日
实战 | 40行代码实现人脸识别
七月在线实验室
3+阅读 · 2018年3月7日
Python | 50行代码实现人脸检测
计算机与网络安全
3+阅读 · 2018年1月23日
设计和实现一款轻量级的爬虫框架
架构文摘
13+阅读 · 2018年1月17日
仅需15分钟,使用OpenCV+Keras轻松破解验证码
机器之心
4+阅读 · 2017年12月14日
Equalization Loss for Long-Tailed Object Recognition
Arxiv
5+阅读 · 2020年4月14日
Rapid Customization for Event Extraction
Arxiv
7+阅读 · 2018年9月20日
Arxiv
6+阅读 · 2018年7月29日
Arxiv
8+阅读 · 2018年1月25日
VIP会员
相关VIP内容
【实用书】学习用Python编写代码进行数据分析,103页pdf
专知会员服务
192+阅读 · 2020年6月29日
一份简明有趣的Python学习教程,42页pdf
专知会员服务
76+阅读 · 2020年6月22日
【实用书】Python爬虫Web抓取数据,第二版,306页pdf
专知会员服务
117+阅读 · 2020年5月10日
【WWW2020-微软】理解用户行为用于文档推荐
专知会员服务
35+阅读 · 2020年4月5日
【2020新书】如何认真写好的代码和软件,318页pdf
专知会员服务
63+阅读 · 2020年3月26日
深度神经网络实时物联网图像处理,241页pdf
专知会员服务
76+阅读 · 2020年3月15日
算法与数据结构Python,369页pdf
专知会员服务
161+阅读 · 2020年3月4日
【干货】用BRET进行多标签文本分类(附代码)
专知会员服务
84+阅读 · 2019年12月27日
Keras作者François Chollet推荐的开源图像搜索引擎项目Sis
专知会员服务
29+阅读 · 2019年10月17日
相关资讯
基于Web页面验证码机制漏洞的检测
FreeBuf
7+阅读 · 2019年3月15日
Python | Jupyter导出PDF,自定义脚本告别G安装包
程序人生
7+阅读 · 2018年7月17日
10行代码实现目标检测,请收下这份教程
95行代码破解极验滑动验证码(附源码)
FreeBuf
11+阅读 · 2018年5月9日
实战 | 40行代码实现人脸识别
七月在线实验室
3+阅读 · 2018年3月7日
Python | 50行代码实现人脸检测
计算机与网络安全
3+阅读 · 2018年1月23日
设计和实现一款轻量级的爬虫框架
架构文摘
13+阅读 · 2018年1月17日
仅需15分钟,使用OpenCV+Keras轻松破解验证码
机器之心
4+阅读 · 2017年12月14日
Top
微信扫码咨询专知VIP会员