burpsuite写JAVA_burpsuite编写插件--环境安装

本文介绍了如何在Windows环境下利用Python编写BurpSuite插件。首先,详细阐述了为何需要Jython standalone jar包,并提供了下载地址。接着,解释了如何在Burp中加载和测试Python插件。文章还讨论了当插件依赖缺失时,如何在Jython环境中安装缺失的库,如requests,并提供了安装方法。最后,预告了下一篇文章将涉及如何编写检查SQL注入的插件。
摘要由CSDN通过智能技术生成

Burpsuite编写插件环境搭建

在安全测试过程中,我们经常会使用到burpsuite,在burp中允许我们自己编写插件,在Extender-BApp Store中可以选择我们要安装的插件:

8e66bb9d741ae4898ee3d02497b22147.png

但是有时候找不到我们需要的插件,这时候需要我们自己编写,burp支持使用python、java、ruby三种语言。下面我来讲解一下如何使用python编写burpsuite插件。(我是在windows下操作的,其他操作系统相似)

1. 使用python编写插件,我们需要导入jython standalone jar包,该包在哪里下载?为什么需要该包?

BurpSuite 是使用 Java 编程语言编写的,所以想要使用 Python 编程语言开发其插件,就必须借助于 Jython。Jython 本质上是一个 Java 应用程序,它允许 coder 们使用 Java 代码调用 Python 库反之,也可以使用 Python 调用 Java 的库。

jython standalone jar的下载地址:http://search.maven.org/remotecontent?filepath=org/python/jython-standalone/2.7.0/jython-standalone-2.7.0.jar

2.如何将jython加载到burp中?

在burp中Extender-Options中加载jython包

c377585bbf797a72ae2a2d2443567fb7.png

3.测试jython是否安装成功?是否可以加载我们自己编写的插件?

在这里我编写了一个测试用例,用来测试我们自己编写的插件是否可以正常使用。

from burp import IBurpExtender

from burp import IHttpListener

from java.io import PrintWriter

class BurpExtender(IBurpExtender, IHttpListener):

#

#implement IBurpExtender

#

def registerExtenderCallbacks(self, callbacks):

# keep a reference to our callbacks object

self._callbacks = callbacks

# set our extension name

callbacks.setExtensionName("fanyingjie")

# obtain our output stream

self._stdout = PrintWriter(callbacks.getStdout(), True)

self._helpers = callbacks.getHelpers()

# register ourselves as an

callbacks.registerHttpListener(self)

def processHttpMessage(self,toolFlag,messageIsRequest, messageInfo):

self._stdout.println("success")

将以上代码保存成example.py;

f74b9d5723e666da5ef928f818550705.png

如果都安装正确则在Output模块会出现大量success;如果在加载插件时提示error,则表明jython包安装出错了。

4.有时候我们编写插件需要加载其他模块,比如requests,当插件中导入requests模块会如何?

在测试代码中加入requests模块

from burp import IBurpExtender

from burp import IHttpListener

from java.io import PrintWriter

import requests

class BurpExtender(IBurpExtender, IHttpListener):

#

#implement IBurpExtender

#

def registerExtenderCallbacks(self, callbacks):

# keep a reference to our callbacks object

self._callbacks = callbacks

# set our extension name

callbacks.setExtensionName("fanyingjie")

# obtain our output stream

self._stdout = PrintWriter(callbacks.getStdout(), True)

self._helpers = callbacks.getHelpers()

# register ourselves as an

callbacks.registerHttpListener(self)

def processHttpMessage(self,toolFlag,messageIsRequest, messageInfo):

self._stdout.println("success")

将该代码保存成example1.py,在burp中加载example1.py插件:(步骤3)

ed2c1d07be1bb2ee7d0da61c2ae6dfde.png

当我们加载插件时,burp报错没有requests模块。也许会有人问我本地安装了python,并且有requests模块为什么会出错?jython和python是两个不同的物种,至于出现这个错误的原因是我们导入的jython包中没有requests库,所以我们需要在jython包中安装requests库。

5.如何解决jython缺少相关库的问题?

我的解决方法是本机安装jython,之后缺少什么库都可以手动安装了:

下载jython包安装,下载地址:

http://search.maven.org/remotecontent?filepath=org/python/jython-installer/2.7.0/jython-installer-2.7.0.jar

双击jar包安装jython

在burp中加载jython包,加载方法如下:

a3c6dbef8f8eb076dc4490e404a62f5f.png

安装成功后我们需要测试一下example.py该插件是否可用,注意是没有加载requests库的插件

242e096ce15d5480bbc9ab8bcbdd1193.png

插件可以正常使用(输出了success表名插件在运行)

接下来需要给jython安装requests库,因为我windows上没有安装jython的pip,所以我现在centos上用jython pip安装了requests库,之后将Lib\site-packages该文件整个复制到windows上:

安装jython的命令 ./jython/bin/pip install requests

e1a2653890a8044014e3d5482e35b7e0.png

100441c62a30a2e86445cc76956be851.png

到此requests包安装完毕,我们现在加载example1.py,看看是否会报错?

b2e3b05aad5502932d02f91e9e2d52fe.png

没有报错,正常输入success

在编写插件时需要参考api,api中将每一个方法的使用都做了详细的解释。

> 下一节,我们将正式编写插件--将burp与sqlmapapi结合,时时检查所有的链接参数是否存在注入?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值