前些天公司买了些BurpSuite的License,终于可以用上正版了,先给公司来波赞!好啦,言归正传,BurpSuite作为Web安全测试的一大神器,其中一个优势就是其扩展性好。BurpSuite支持Java、Python、Ruby作为其插件的扩展语言,而在其内置的Bapp_Store中也有很多很强大的插件。作为一名程序猿,心想是时候自己动手开发一款专属插件了,抱着此心态我便开始尝试学习摸索着Coding,于是便有了此文。
插件语言的选择
以上所述Burp支持Java、Python、Ruby语言的扩展,相对来说我更熟悉Python,因此就用Python开始学习写插件,对于速度要求高的朋友可以用Java写。熟悉Python的朋友肯定知道,Python分为Cython、Jython等。前者就是我们通常所说的Python,后者是Java版本的Python,简单理解就是用Jython可以调用Java的库。
burpsuite jython开发环境
想要开发使用一款属于自己的BurpSuite插件,必须要部署好Jython开发环境以及Jython运行环境。前者需要在开发jython程序的平台上搭建环境,后者需要在运行burpsuite的平台搭建环境。鉴于一般开发以及使用插件都在用一个平台上,比如mac,因此本文介绍一下如何在mac上安装jython环境。
install jython for Mac
首先我们需要在mac上安装jython的环境以便开发jython程序,就像安装python环境一样,mac上安装jython命令:
安装完以后,jython安装在/usr/local/Cellar/jython/目录下,需要设置环境变量,将/usr/local/Cellar/jython/2.7.1/libexec/bin添加到环境变量,然后在shell中输入:
说明:其他平台(windows,linux)安装jython方式请自行google,应该比较类似。
Load Jython to Burpsuite
mac上安装完jython环境后,需要在burpsuite中加载jython环境,注意这里选择的是jar文件。
开发jython程序
本篇以开发一款检测未授权访问漏洞的插件为例介绍一下插件的开发过程,由于本文重点在于介绍如何开发一款bp插件,以及一些不可抗因素,本文介绍的插件均为简化后的版本。
创建main.py文件
说明:此文件为插件入口文件,其中导入的burp内置类IBurpExtender为基类,即所有插件都需要使用继承此类,IHttpListener类用来获取http请求以及响应内容。
创建noauth.py文件
说明:此文件为检测未授权访问类,功能比较简单,获取原始请求以及响应包,去除请求接口的cookie以及token等认证后重放,查看返回结果有没有变化。一般情况下还会检测响应包是否包含敏感信息,这里为了方便演示,简化了插件功能。
将jython程序添加到burpsuite中
选择添加一个插件:
注意下图中的标记部分:
说明:类型选择python,文件选择入口文件,burpsuite会自动获取本地的依赖文件;输出这里选择在控制台输出,因为此插件没有写ui界面。
加载成功后,会在控制台输出:
然后我们就去开启浏览器代理,关闭bp拦截,愉快的进行web系统测试吧,若插件检测到了未授权访问的接口,则会输出类似如下:
增加UI界面代码
在控制台输出的方式总归没有那么优雅,因此如果能像其内置的功能那样在界面上输出就更好了。以下是一段简单的ui界面开发代码:
说明:这只是一个ui界面开发的demo,效果如下:
burp插件开发文档
这里介绍几个常用的burp类:
领取专属 10元无门槛券
私享最新 技术干货