`搜索公众号:白帽子左一,领配套练手靶场,全套安全课程及工具`
验证码识别
前言
Burp Suite是一个集成化的渗透测试工具,它集合了多种渗透测试组件,其各个组件之间可灵活配合,可定制化程度极高,正可谓居家旅行杀人越货必备之神器。
但是当遇到各式各样的验证码,防火墙等场景,神器也无从下手。有幸 Burp Suite 提供了非常强大的开发接口,可根据需求自行强化。
快速开发
既然要敏捷开发,采用轻量级的脚本 python 来实现拓展最为快速灵活,也懒得去拖 swing 界面做交互,参数对应修改就行。
本次验证码识别用于 Intruder 模块,在脚本中实例化 IntruderPayloadGenerator 类以及其 getNextPayload 方法即可,具体流程如下 。
抓取验证码请求
验证码请求头
headers = '''
Host: ************
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.11; rv:69.0) Gecko/20100301 Firefox/62.0
Accept: image/webp,*/*
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: close
Referer: http://ya.com/cms/fastadmin/public/lf2EomShPI.php/index/login
Cookie: PHPSESSID=vltk4df5fbn97vsf8mfjnobr71
'''
`# 验证码请求地址
captcha_url = "http://**********/cms/fastadmin/public/index.php?s=/captcha"
对接验证码识别引擎
可以使用深度学习来识别验证码,或者接入第三方通用平台。
本文为了简单就直接对接某个打码平台,参考平台文档,引入 api、设置对应的id、key 等参数即可 。
验证码 payload 生成
class IntruderPayloadGenerator(IIntruderPayloadGenerator):
def __init__(self):
self._payloadIndex = 0
def hasMorePayloads(self):
return True
def getNextPayload(self