Burp在软件中提供了支持第三方拓展插件的功能,方便使用者编写自己的自定义插件或从插件商店中安装拓展插件。Burp扩展程序可以以多种方式支持自定义Burp的行为,例如:修改HTTP请求和响应,自定义UI,添加自定义扫描程序检查以及访问关键运行时信息,包括代理历史记录,目标站点地图和扫描程序问题等。本章讲述的主要内容有:
在Burp Extender 面板中,有一个BApp Store的Tab页,这就是Burp的应用商店,内容是提供各种Burp的插件。默认情况下,当你点击【BApp Store】的Tab页时,界面列表会显示插件明细,若你的环境是通过代理访问外网的,则需要在【Options】->【Connections】->【Upstream Proxy Servers】进行设置,具体如下图所示:
其中代理服务器的host和port为你本地的网络环境访问外网的代理主机和端口,更详细的设置请参加Connections章节相关内容。
如果你的网络设置没有问题,则应用商店的界面显示大体如下:
从图中我们可以看出,左边为各个插件的应用列表,当选中某个插件后,右侧显示的为该插件的描述信息和安装信息。 如果我们需要使用某个插件,则点击右侧下方的【install】按钮,进行安装。
此时,安装按钮置为灰色,同时显示为【installing】,右下角也显示安装中,如上图。安装完成后,界面会显示重新安装【Reinstall】和插件评分按钮【Submit rating】,作为插件商店的用户推荐。
安装完毕后,在Burp Extender 的Extension的Tab页面中,会自动显示已加载的插件列表。通过插件列表的管理,我们可以对插件进行后期的维护。
当然,除了从应用商店自动安装插件外,我们也可以下载插件,进行手工安装。如下图:
当我们点击图中1处的手工安装按钮,则弹出插件安装文件存储的盘符,选择指定的插件文件,点击打开即可进行安装。
从上一章节我们已经了解到,安装完成的插件,都会显示在插件列表中。
如果我们想对某个插件的配置信息进行编辑,则如上图中所示,选中插件,其下方的【Details】标签页会显示插件的拓展信息,如:拓展的插件类型(java/Python/Ruby)、插件的文件名、存储的位置。除了【Details】标签页外,【Output】和【Errors】两个页面分别可以设置此插件的标准输出和错误信息输出信息。
从上图中我们可以看出,日志信息的输出有三种方式: a)系统控制台输出 b)存储到指定的文件中 c)Burp的界面输出 默认情况下,会选择Burp的界面输出。在实际应用中,我们可以根据自己的需要,对日志的存储方式进行调整。
Burp插件的其他选项设置主要是指Options 的Tab页中的相关设置。
从图中我们可以看出,【Setting】的设置是指:是否启动时自动重新加载burp插件,当我们选择此项时,Burp在重启时,会自动加载Burp在上次关闭时加载的插件内容;而剩下的三项设置是根据插件类型的不同时所需要的运行环境的配置。我们先来看第一个运行环境【Java Environment】。
Burp Suite是基于Java语言开发的软件,通常情况下,当你运行此软件时,系统中的JAVA_HOME、CLASS_PATH、LIB_PATH变量均已正确地配置完成,否则你是难以运行Burp Suite的,所以,通常情况下你是无须再配置此参数;如果实在需要配置,你的插件需要特殊的jdk版本要求或者其他ja,则选择将jar添加即可。
而【Python Environment】和【Ruby Environment】是Burp插件的Python运行环境和Ruby运行环境的配置。前文我们已经知道,Burp是java语言编写的软件,所以运行Python和Ruby需要配置兼容Java与Python、Java与Ruby的jar,默认情况下,Burp支持的为JPython和JRuby,这两个软件的地址分别是 :http://www.jython.org/、http://jruby.org.其安装方式非常简单,此处以JPython为例:1.下载JPython的安装包,Jpython的安装分jython-installer-2.7.0.jar和jython-standalone-2.7.0.jar两个。如果使用jython-installer,则下载完毕后,双击此jar,按照安装向导,一路【Next】到如下图的界面,记录安装路径。然后一直默认,直至安装结束。
如果使用jython-standalone-2.7.0.jar,则直接进行第2步。2.在Burp的Python Environment环境中配置Jpython,如果使用的jython-standalone-2.7.0.jar,则如下图指定jar存放的位置即可;如果是使用jython-installer方式,则指定安装的文件夹,由软件自己加载(此处为了说明使用的方式,两个输入域均输入了,实际使用时,Jpython之输入其中之一即可)。
至于JRuby的配置与JPython类似,此处就不再赘述。配置完插件运行的可依赖环境之后,当我们使用插件时就能正常使用,否则,在插件的【Errors】标签页中会有错误的提示信息,我们可以根据错误提示来修改自己的配置。
++值得注意的是,当我们使用Burp插件功能,对于Burp运行时所需要的JVM内存占用比较大,一般建议设置为1G,具体设置请参考第一章节。++