BurpSuite插件分享

Posted 安全混子

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了BurpSuite插件分享相关的知识,希望对你有一定的参考价值。


前言

之前总认为挖洞细就中了,但在前段时间人麻了,去测站,把功能点测完以为结束了,因为这几年甲方安全意识强,还有一些安全设备,再加上人家防范的意识也强,就感觉不会出现spring boot未授权、shiro默认密钥等这种比较低级的事情,但事实总是打脸的措不及防,测完发现甲方爸爸找上门了,说人家测拿到权限了,你是不是不行,在这里小弟建议各位哥哥留意一下那些主动检测的插件,说不定弹了你不知道,所以这篇文章主角是插件


HaE

简介

HaE是基于BurpSuite插件API开发的请求高亮标记与信息提取的辅助型框架式插件,该插件可以通过自定义正则或者文本的方式匹配响应报文或请求报文,并对满足的报文进行信息高亮与提取。

项目地址:https://github.com/gh0stkey/HaE

使用

该插件有nfa和dfa引擎两种方式,NFA是基于表达式的(Regex-Directed),而DFA是基于文本的(Text-Directed)

nfa

编辑一条规则,正则表达式需要用()括起来

保存,并启动该规则

dfa

找一个特定的手机号

保存,并启动该规则

sqlmap4burp++

简介

sqlmap4burp++可在多个平台快速联动Burp和sqlmap

项目地址:https://github.com/c0ny1/sqlmap4burp-plus-plus

使用

配置python、sqlmap的路径,以及sqlmap的命令

copy-as-python-requests

简介

把请求转化为python,也可转换成其他语言,根据自己比较常用的选择,直接可以在burp插件商店下载

使用

直接点点点,最后ctrl v就好

HackBar

简介

HackBar是burp插件,支持很多便携功能,SQL注入payload、XSS payload、常见LFI漏洞、web shell payload和反弹shell payload

项目地址:https://github.com/d3vilbug/HackBar

使用


passive-scan-client

简介

被动流量转发插件。burp联动xray被动扫描,是把浏览器流量给burp,burp在分给xray,最后到目标网站,导致访问会变慢,甚至有时会被封ip,该插件是把正常访问网站流量和提交给被动扫描器的流量分开

项目地址:https://github.com/c0ny1/passive-scan-client

使用

设置ip和端口,run就可以

./xray_darwin_arm64 webscan --listen 127.0.0.1:9898 --html-output test.html


总结

分享了一些常用的burp插件下载和使用,当然肯定还有其他的,比如shiro、log4j等一些框架、组件检测插件,有些插件基本可以不用操作,会进行主动探测,所以就没有列举那些

大家可以关注菜鸡的公众号,有什么好想法也可以让我学习一下,有什么问题可以一块解决,由于二维码违规,下面是base64编码的文字

5b6u5L+h5YWs5LyX5Y+34oCc5a6J5YWo5re35a2Q4oCd77yM5Y+v5Lul55So5b6u5L+h5pCc5LiA5pCc77yM5q2j5Zyo5a6M5ZaE5LitLi4uLi4u

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结合,时时检查所有的链接参数是否存在注入?

以上是关于BurpSuite插件分享的主要内容,如果未能解决你的问题,请参考以下文章

burpsuite编写插件--环境安装

阅读sqlmap源代码,编写burpsuite插件--sqlmapapi

阅读sqlmap源代码,编写burpsuite插件--sqlmapapi

BurpSuite基础教程之基本介绍及环境配置

自动收集burpsuite scanenr模块扫描后的结果

如何给burpsuite添加插件