burpsuite编写插件--环境安装

Burpsuite编写插件环境搭建

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

但是有时候找不到我们需要的插件,这时候需要我们自己编写,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包

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;

如果都安装正确则在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)

当我们加载插件时,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包,加载方法如下:

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

插件可以正常使用(输出了success表名插件在运行)
接下来需要给jython安装requests库,因为我windows上没有安装jython的pip,所以我现在centos上用jython pip安装了requests库,之后将Lib\site-packages该文件整个复制到windows上:
安装jython的命令 ./jython/bin/pip install requests


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

没有报错,正常输入success

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



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

原文地址:http://blog.51cto.com/13770310/2124729

时间: 2024-10-10 02:22:47

burpsuite编写插件--环境安装的相关文章

Windows 10环境安装VIM代码补全插件YouCompleteMe

Windows 10环境安装VIM代码补全插件YouCompleteMe 折腾一周也没搞定Windows下安装VIM代码补全插件YouCompleteMe,今天在家折腾一天总算搞定了.关键问题是在于Python环境:必须确保环境变量Path里只有一个python.exe. ycmd是client-server架构.ycmd本身是server,可以为多种客户端所用,如VIM/YouComplete,emacs/emacs-ycmd等.服务端有不同引擎,如clang补全c-familiy语言,其他引

ElasticSearch-5.3.1集群环境搭建,安装ElasticSearch-head插件,安装错误解决

说起来甚是惭愧,博主在写这篇文章的时候,还没有系统性的学习一下ES,只知道可以拿来做全文检索,功能很牛逼,但是接到了任务不想做也不行, leader让我搭建一下分布式的ES集群环境,用来支持企业信用数据的检索,刚开始宝宝一脸蒙逼,只是之前自己本地搭建过一个测试玩过,开发任务也是忙的不行, 一直也没时间好好的研究一下,惭愧.<Elasticsearch服务器开发>已经备好,只能边学边开发了,希望本篇拙文可以帮到有需要的coder们.----jstarseven 话不多说,开始搭建环境,准备好集群

【Mac + Appium + Java1.8学习(三)】之IOS自动化环境安装配置以及简单测试用例编写(模拟器、真机)

前提条件: =========================================== 1.Xcode版本为Xcode10及以上2.Appium版本必须为1.9及以上,因为Xcode为10.0 3.appium-desktop4.安装所需依赖库,包括: a.Homebrew b.Git c.node (brew install node) d.npm (brew install npm)e.carthage (brew install carthage)f.libimobiledev

Sass环境安装-Sass sublime 编辑器插件编译方法

首先官网(http://www.ruby-lang.org/en/downloads/)下载 ruby (1)打开链接进入到下载页面,点击如下位置进行下载 (2)下载页面 (3)进入到各个版本的列表页 安装 sass(1)在开始菜单输入“start”会出现“Start Command Prompt with Ruby”,鼠标点击 “Start Command Prompt with Ruby” 运行 在这个命令行窗口中,输入“ruby -v”,会出现 ruby 的版本号,则证明 ruby安装成功

Sublime Text 3 常用插件以及安装方法(转)

Sublime Text 3 常用插件以及安装方法(转) http://www.cnsecer.com/460.html 安装Sublime Text 3插件的方法: 朋友们,小站活着不容易,全靠广告费养着了,如果本文对你有帮助.麻烦动下手点下页面的广告吧,谢谢! 直接安装 安装Sublime text 2插件很方便,可以直接下载安装包解压缩到Packages目录(菜单->preferences->packages). 使用Package Control组件安装 也可以安装package co

Scala学习01 环境安装

Scala是一门运行在jvm上的多范式语言,作为一个java程序员,使用Scala来写写程序,既不用担心会没有java强大的库支持,又能快速地写出简短强悍的代码,除此之外scala还为我们提供了强大的并发支持,Let's love it! 安装 下面来看看如何安装它(在此之前,确保已经安装好了jdk,我使用的jdk1.7). 我们可以通过Scala的官网(http://www.scala-lang.org/download/)来下载Scala.我使用的版本是2.11.1. 将安装包下载在本地之后

Vim自动补全插件----YouCompleteMe安装与配置

Vim自动补全插件----YouCompleteMe安装与配置 使用Vim编写程序少不了使用自动补全插件,在Linux下有没有类似VS中的Visual Assist X这么方便快捷的补全插件呢?以前用的是neocomplcache+code_complete+omnicppcomplete,但效果还是不是很好.看到有YCM后前面的插件可以说拜拜了. YouCompleteMe:一个随键而全的.支持模糊搜索的.高速补全的插件.YCM 由 google 公司搜索项目组的软件工程师 Strahinja

【转】Vim自动补全插件----YouCompleteMe安装与配置

原文网址:http://www.cnblogs.com/zhongcq/p/3630047.html 使用Vim编写程序少不了使用自动补全插件,在Linux下有没有类似VS中的Visual Assist X这么方便快捷的补全插件呢?以前用的是neocomplcache+code_complete+omnicppcomplete,但效果还是不是很好.看到有YCM后前面的插件可以说拜拜了. YouCompleteMe:一个随键而全的.支持模糊搜索的.高速补全的插件.YCM 由 google 公司搜索

CorelDRAW 插件的安装

CorelDRAW 是一款在中国非常受欢迎的图形软件,开放的界面和编程技术,能够对它进行二次开发制作插件,插件大抵有三种gms.cpg.exe格式,下面介绍一下这三种插件的安装和使用方法. 一.gms格式插件 gms格式插件是使用微软的 VBA 技术,编写和调试都比较方便,从9的版本开始支持. 安装: 把gms文件复制到程序所安装的目录 gms 下,一般在C:\Program Files\Corel\CorelDRAW Graphics Suite 13\Draw\GMS文件夹里,其中C:是你C