本篇文章首发于奇安信攻防社区
本文章仅供学习和研究使用,严禁使用该文章内容对互联网其他应用进行非法操作,若将其用于非法目的,所造成的后果由您自行承担,产生的一切风险与本文作者无关,如继续阅读该文章即表明您默认遵守该内容。
Burp Suite是一个集成化的渗透测试工具,它集合了多种渗透测试组件,使我们自动化地或手工地能更好的完成对web应用的渗透测试和攻击。在渗透测试中,我们使用Burp Suite将使得测试工作变得更加容易和方便,即使在不需要娴熟的技巧的情况下,只有我们熟悉Burp Suite的使用,也使得渗透测试工作变得轻松和高效。
Burp Suite可执行程序是java文件类型的jar文件,免费版的可以从免费版下载地址进行下载。免费版的Burp Suite会有许多限制,很多的高级工具无法使用,如果您想使用更多的高级功能,需要付费购买专业版。
当然了,身为一个合格的安全人士,肯定会白嫖的啦。下面具体看一下专业版安装步骤。
由于Burp Suite是由Java语言编写而成,所以我们需要安装JAVA环境。点我下载
下载完成之后打开 点击安装
安装完成
打开CMD命令输入java -version
到如下图就代表安装成功
如果输入命令没有看到如上图也不要紧,我们把他手动添加到环境变量
右键我的电脑(此电脑)→属性→高级系统设置→高级→环境变量→Path
把我们安装好的java目录放到Path里面 如下图
C:\Program Files (x86)\Java\jre1.8.0_101\bin
OK,完成了
接下来我们开始安装 点我下载
打开burp-loader-keygen-2020_1.jar 点击run
点击Manual activation
点击下一步,注册完成
看到这一步代表成功注册
看到这里是不是已经迫不及待想要安装插件了,但是不行的,因为Burp Suite的一些插件需要依赖python或者ruby来实施,所以我们需要安装jython
和jruby
点我下载jruby
点我下载jython
下载完成之后我们依次点击Extender →Options 按照提示把对应的文件路径导入进去就可以了
首先打开Extender →BApp Store 可以看到插件市场有大量的插件
这里面插件实在是太多了,实战中几乎用不到几个,接下来我们讲一下实战中实用的插件
###Shiro漏洞被动检测
描述:
Apache Shiro是美国阿帕奇(Apache)软件基金会的一套用于执行认证、授权、加密和会话管理的Java安全框架。 Apache Shiro默认使用了CookieRememberMeManager,其处理cookie的流程是:得到rememberMe的cookie值 > Base64解码–>AES解密–>反序列化。然而AES的密钥是硬编码的,就导致了攻击者可以构造恶意数据造成反序列化的RCE漏洞。
喵呜师傅写的插件,非常好用,推荐!
下载地址
下载完成之后打开burp主页面点击Extender,可以看到这里有个ADD点一下
我们的这个插件是java写的的所以选择java脚本把插件导入然后下一步
出现如下界面代表安装成功
接下来我们就可以愉快的挖洞了,由于这个插件是被动式检测,所以我们不用对它进行配置,直接开着BURP就行了,如果遇到漏洞会在Target页面显示出来,我们打开一个靶场测试一下,如下图。
tag界面查看漏洞情况
waiting for test results = 扫描shiro key 中
shiro key scan out of memory error = 扫描shiro key时,发生内存错误
shiro key scan diff page too many errors = 扫描shiro key时,页面之间的相似度比对失败太多
shiro key scan task timeout = 扫描shiro key时,任务执行超时
shiro key scan unknown error = 扫描shiro key时,发生未知错误
[-] not found shiro key = 没有扫描出 shiro key
[+] found shiro key: xxxxxx = 扫描出了 shiro key
描述:
Fastjson 是阿里巴巴的开源JSON解析库,它可以解析 JSON 格式的字符串,支持将 Java Bean 序列化为 JSON 字符串,也可以从 JSON 字符串反序列化到 JavaBean。 Fastjson 存在反序列化远程代码执行漏洞,当应用或系统使用 Fastjson 对由用户可控的 JSON 字符串数据进行解析时,将可能导致远程代码执行的危害。
依旧是喵呜师傅的作品。点我下载
插件的安装步骤对照上面的来就行,这个插件也是被动式检测,所以我们不用对它进行配置,如果遇到漏洞会在Target页面显示出来,我们打开一个网站测试一下,如下图。
描述:
Apache Struts是美国阿帕奇(Apache)软件基金会的一个开源项目,是一套用于创建企业级Java Web应用的开源MVC框架,存在多个远程命令执行漏洞。 攻击者可以发起远程攻击,不但可以窃取网站数据信息,甚至还可取得网站服务器控制权。而且,目前针对此漏洞的自动化工具开始出现,攻击者无需具备与漏洞相关的专业知识即可侵入服务器,直接执行命令操作,盗取数据甚至进行毁灭性操作。
插件下载地址:点我下载
插件的安装步骤对照上面的来就行,成功安装如下图。
环境下载地址
使用这个插件也是被动式检测,所以我们不用对它进行配置直接打开BURP访问网站即可,如果扫描到漏洞会在Target页面显示出来,或者在我们点击它自己的界面展示漏洞情况,如下图。
描述:
HaE是基于 BurpSuite 插件 JavaAPI 开发的请求高亮标记与信息提取的辅助型插件。该插件可以通过自定义正则的方式匹配响应报文或请求报文,可以自行决定符合该自定义正则匹配的相应请求是否需要高亮标记、信息提取。
HaE插件是由gh0stkey师傅写的 特别棒的一个插件,使用简单还功能强大。
下载地址
gh0stkey在Github介绍的使用方法如下:
插件装载: Extender - Extensions - Add - Select File - Next
初次装载HaE
会初始化配置文件,默认配置文件内置一个正则: Email
,初始化的配置文件会放在与BurpSuite Jar
包同级目录下。
除了初始化的配置文件外,还有Setting.yml
,该文件用于存储配置文件路径;HaE
支持自定义配置文件路径,你可以通过点击Select File
按钮进行选择自定义配置文件。
出现如下界面表示安装成功
默认的Email规则
生成的规则文件
HaE
支持自定义配置文件路径,你可以通过点击Select File
按钮进行选择自定义配置文件。
到了这一步安装已经成功,接下来会有朋友问,我不会写规则怎么办,这些东西对我来说太难用了,不要担心,作者gh0stkey师傅贴心的准备了一个公共规则网站,里面提供了大部分常用规则,以供大家使用。地址
使用方法就是复制这些规则打开Config.yml文件复制进去然后就OK了
默认的规则
复制规则网站里面的规则然后粘贴保存(替换规则的时候记得退出burp)
打开我们的插件HaE
可以发现我们的规则已经替换成功了,可以使用了
我们使用Swagger的规则来演示一下
在Proxy - HTTP History中可以看见高亮请求,响应标签页中含有Swagger UI的标签,其中将匹配到的信息提取了出来。
还有更多用法等待大家去使用。
绕过 403 受限目录的 burpsuite 扩展。通过使用 PassiveScan(默认启用),这个扩展会自动扫描每个 403 请求,所以只需添加到 burpsuite 并享受。
安装
BurpSuite -> Extender -> Extensions -> Add -> Extension Type: Python -> Select file: 403bypasser.py -> Next till Finish
这个插件就是使用python编写的,这个就使用到了我们之前讲的安装jython
这个插件,我们可以让burp使用python格式的插件。
看到如下界面表示安装成功(没错就是空)
好了,这样我们就可以愉快的使用了。(这个插件也是被动扫描)
我们可以看下这个插件的payload,可以发现这个插件主要功能是用来bypass403页面的,举个例子,比如我们有时候看到很多网站限制外部访问,访问的话直接显示403,我们可能改一个IP头为本地127.0.0.1我们就能绕过这个限制,这个插件可以全自动的来帮我们验证,是不是很方便。
$1/$2
$1/%2e/$2
$1/$2/.
$1//$2//
$1/./$2/./
$1/$2anything -H "X-Original-URL: /$2"
$1/$2 -H "X-Custom-IP-Authorization: 127.0.0.1"
$1 -H "X-Rewrite-URL: /$2"
$1/$2 -H "Referer: /$2"
$1/$2 -H "X-Originating-IP: 127.0.0.1"
$1/$2 -H "X-Forwarded-For: 127.0.0.1"
$1/$2 -H "X-Remote-IP: 127.0.0.1"
$1/$2 -H "X-Client-IP: 127.0.0.1"
$1/$2 -H "X-Host: 127.0.0.1"
$1/$2 -H "X-Forwarded-Host: 127.0.0.1"
$1/$2%20/
$1/%20$2%20/
$1/$2?
$1/$2???
$1/$2//
$1/$2/
$1/$2/.randomstring
$1/$2..;/
好了,目前我使用频率较高的插件已经分享完毕,还有很多好用的插件是我没有讲到的,希望大家也可以留言分享出来,接下来讲一下BURP的一些小技巧,burp是非常一个强大的渗透测试工具,我们平时做渗透使用频率最高的工具,它其实还有很多好用的功能给大家分享一下。
Burp Collaborator是从Burp suite v1.6.15版本添加的新功能,也就是DNSlog,监控DNS解析记录和HTTP访问记录,在检测盲注类漏洞很好用。
主界面菜单项 burp - burp collaborator client 即可启用
点击copy to clipborad来复制其提供的 payload url,number to generate 是生成的数量,
我们来ping一下刚才复制的URL
可以看到BURP成功接收到我们的请求
“竞争条件”发生在多个线程同时访问同一个共享代码、变量、文件等没有进行锁操作或者同步操作的场景中。
开发者在进行代码开发时常常倾向于认为代码会以线性的方式执行,而且他们忽视了并行服务器会并发执行多个线程,这就会导致意想不到的结果。
简单的说:本来你有100块钱,买一个商品要花100,你可以多开启多个线程去跑,有可能不止一个用户买成功
“竞争条件”漏洞有时很难通过黑盒/灰盒的方法来进行挖掘,因为这个漏洞很受环境因素的影响,比如网络延迟、服务器的处理能力等。一般都会通过对代码进行审计来发现此类问题
可以使用Burp的intruder功能来实现发送多个并发请求
将请求包发送至Intruder
Intruder – Payloads – Payload Stes
Payload type设置为NUll payloads
Payload Options 次数设置100次
线程数设置最大999 ,点击Start attack
在一些渗透测试的教程中,用Intruder模块爆破或fuzz的时候,一般只讲到了通过返回包的长度或者状态码来识别是否爆破成功/是否fuzz出我们想要的内容。
其实在Intruder->Option->Grep-Match中提供了返回包匹配内容的功能,可以通过简单的字符串或正则表达式进行内容匹配。
可以看到匹配成功的话后面会打勾
有朋友可能会问了,我要是匹配中文字符怎么办呢,演示一下匹配中文字符怎么操作。
如果要匹配中文,需要将中文转换成十六进制,使用正则匹配的方式,操作如下: 先用python把中文转成十六进制(不局限于此方法)
然后设置正则匹配模式,把十六进制添加进去
成功匹配到,大家可以动手操作一下。
结束语:BURP的功能也不止这些,大家可以多发掘一下其他功能让自己在挖洞的时候更加方便,如果有其他更好的插件和技巧也希望大家留言分享。