Burp Suite进阶

2023-02-15,,

1、Scanner

Burp Scanner主要用于自动检测Web系统的各种漏洞。

首先,确认Burp Suite正常启动并完成浏览器代理的配置。然后进入Burp Proxy,关闭拦截代理功能,快速浏览需要扫描的域或URL模块,此时在默认情况下,Burp Scanner会扫描通过代理服务器的请求,并对请求的消息进行分析来辨别是否存在系统漏洞。而且当我们打开Burp Target时,也会在站点地图中显示请求的URL树。

随便找一个网站进行测试,选择Burp Target的站点地图选项下的链接,在其链接URL上右击选择”Actively scan this host“,此时会弹出过滤设置,保持默认选项即可扫描整个域。

也可以在Proxy下的HTTP history中,选择某个节点上的链接URL并右击选择Do an active scan进行扫描,此时Burp Scanner开始扫描。

我们可以在扫描结果中选中需要进行分析的部分,将其发送到repeater模块中,进行模拟提交分析和验证。

当scanner扫描完成后,可以右击Burp Target站点地图选项下的链接,依次选择”issues“—>”Report issues“选项,然后导出漏洞报告。

Burp Scanner有主动扫描和被动扫描。

(1)主动扫描

当使用主动扫描模式时,Burp会向应用发送新的请求并通过Payload验证漏洞。这种模式下的操作会产生大量的请求和应答数据,直接影响服务端的性能,通常用于非生产环境。主动扫描适用于以下这两类漏洞:

客户端的漏洞,如XXS、HTTP头注入、操作重定向。
服务端的漏洞,如SQL注入、命令行注入、文件遍历。

对第一类漏洞,Burp在检测时会提交input域,然后根据应答的数据进行解析。在检测过程中,Burp会对基础的请求信息进行修改,即根据漏洞的特征对参数进行修改,模拟人的行为,以达到检测漏洞的目的。对第二类漏洞,以SQL注入为例,服务端有可能返回数据库错误提示信息,也有可能什么都不反馈。Burp在检测过程中会采用各个技术验证漏洞是否存在,例如诱导时间延迟、强制修改Boolean值、与模糊测试的结果进行比较,以提高漏洞扫描报告的准确性。

(2)被动扫描

当使用被动扫描模式时,Burp不会重新发送新的请求,只是对已经存在请求和应答进行分析,对服务端的检测来说,这比较安全,通常适用于生产环境的检测。一般来说,下列漏洞在被动模式中容易被检测出来

提交的密码为未加密的明文。
不安全的cookie的属性,例如缺少HTTPOnly和安全标志。
cookie的范围缺失。
跨域脚本包含和站点引用泄露。
表单自动填充,尤其时密码。
SSL保护的内容缓存。
目录列表。
提交密码后应答延迟。
session令牌的不安全传输。
敏感信息泄露,例如内部IP地址、电子邮件地址、堆栈跟踪等信息泄露。
不安全的viewstate的配置。
错误或不规范的content-type指令。

虽然被动扫描模式相比主动模式有很多不足,但同时也具有主动模式不具备的优点。除了对服务端的检测比较安全,当某种业务场景的测试每次都会破坏业务场景的某方面功能时,可以使用被动扫描模式验证是否存在漏洞,以减少测试的风险。

2、Intruder

Intruder是一个定制的高度的可配置的工具,可以对web应用程序进行自动化攻击,如通过标识符枚举用户名、ID和账户号码、模糊测试、SQL注入、跨站、目录遍历等。

它的工作原理是Intruder在原始数据的基础上,通过修改各种请求参数获取不同的请求应答。在每一次请求中,Intruder通常会携带一个或多个有效攻击载荷(Payload),在不同的位置进行攻击重放,通过应答数据的比对分析获得需要的特征数据。Burp Intruder通常被应用于以下场景。

标识符枚举。web应用程序经常使用标识符引用用户、账户、资产等数据信息。例如,用户名、文件ID和账户号码。
提取有用的的数据。在某些场景下,不是简单地识别有效标识符,而是通过简单标识符提取其他数据。例如,通过用户的个人空间ID获取所有用户在其个人空间的名字和年龄。
模糊测试。很多输入型的漏洞(如SQL注入、跨站点脚本和文件路径遍历)可以通过请求参数提交各种测试字符串,并分析错误消息和其他异常情况,来对应用程序进行检测。受限于应用程序的大小和复杂性,手动执行这个测试是一个耗时且繁琐的过程,因此可以设施Payload,通过Burp Intruder自动化地对web应用程序进行模糊测试。

利用Intruder爆破无验证码和次数限制的网站的方法。前提是你得有比较好的字典。注意,Burp suite的文件不要放在中文的路径下。

首先将数据包发送到Intrude模块中

Burp会自动对某些参数进行标记,这里先点击clear$按钮清除所有标记

然后选择要进行暴力破解的参数值,将pass参数选中,单击add$按钮,只对一个参数进暴力破解,所以攻击类型选择sniper即可,这里需要注意的是,如果要同时对用户名和密码进行破解,可以同时选中user和pass参数,并且选择交叉式cluster bomb模式进行破解。

Sniper模式使用单一的payload组。它会针对每个位置设置payload。这种攻击类型适用于对常见漏洞中的请求参数单独进行Fuzzing测试的情景。攻击中的请求总数应该是position数量和payload数量的乘积。
Battering ram模式使用单一的payload组。它会重复payload并一次性把所有相同的payload放入指定的位置中。这种攻击适用于需要在请求中把相同的输入放到多个位置的情景。请求总数是payload组中payload的总数。
Pitchfork模式使用多个payload组。攻击会同步迭代所有的payload组,把payload放入每个定义的位置中。这种攻击类型非常适合在不同位置中需要插入不同但相似输入的情况。请求的数量应该是最小的payload组中的payload数量。
Cluster bomb模式会使用多个payload组,每个定义的位置中有不同的payload组。攻击会迭代每个payload组,每种payload组合都会被测试一遍。这种攻击适用于在位置中需要不同且不相关或者未知输入攻击的情景。攻击请求的数量是各payload组中payload数量的乘积。

选中password参数

选择字典

开始爆破并等待爆破结束。

查看status或length的返回值进行排序,查看是否有不同之处。如果有,查看返回包是否显示为登陆成功,如果返回的数据包中有明显的登陆成功的信息,则说明已经破解成功。

3、Repeater

Burp Repeater是一个手动修改、补发个别HTTP请求,并分析它们的响应的工具。它最大的用途就是能和其它Burp Suite工具结合起来使用。可以将目标站点地图、Burp Proxy浏览记录、Burp Intruder的攻击结果,发送到Repeater上,并手动调整这个请求来对漏洞的探测或攻击进行微调。

Repeater分析选项有4种:Raw、Parans、Headers和Hex。

Raw:显示纯文本格式的消息。在文本面板的底部有一个搜索和加亮的功能,可以用来快速定位需要寻找的字符串,如出错消息。利用搜索栏左边的弹出项,能控制状况的灵敏度,以及是否使用简单文本或十六进制进行搜索。
Params:对于包含参数(URL查询字符串、cookie头或者消息体)的请求,Params选项会把这些参数显示为名字/值的格式,这样就可以简单地对它们进行查看和修改了。
Headers:将以名字/值的格式显示HTTP的消息头,并且以原始格式显示消息体。
Hex:允许直接编辑由原始二进制数据组成的消息。

在渗透测试过程中,我们经常使用Repeater进行请求与响应的消息验证分析。

在Repeater的操作界面中,左边的Request为请求消息区,右边的Response为应答消息区,请求消息区显示的是客户端发送的请求消息的详细信息。当我们编辑完请求消息后,单击“Send”按钮即可发送请求给服务端。

应答消息区显示的是对对应的请求消息单击“Send”按钮后,服务端的反馈信息。通过修改请求信息的参数来比对分析每次应答消息之间的差异,能更好地帮助我们分析系统可能存在的漏洞。

4、Comparer

Burp Comparer在Burp suite中主要提供一个可视化的差异对比功能,来对比分析两次数据之间的区别,使用到的场合有:

枚举用户名的过程中,对比分析登陆成功和失败时,服务端反馈结果的区别。
使用Intruder进行攻击时,对于不同的服务端响应,可以很快分析出两次响应的区别在哪里。
进行SQL注入的盲注测试时,比较两次响应消息的差异,判断响应结果与注入条件的关联关系。

使用Comparer时有两个步骤,先是数据加载,然后是差异分析。

Comparer数据加载的常用方式如下所示。

从其它Burp工具通过对上下文菜单转发过来。
直接粘贴。
从文件里加载。

加载完毕后,如果选择两次不同的请求或应答消息,则下方的比较按钮将被激活,此时可以选择文本或字节比较。

5、Sequencer

Burp Sequencer是一种用于分析数据样本随机性质量的工具。可以用它测试应用程序的会话令牌(session token)、密码重置令牌是否可预测等场景,通过Sequencer的数据样本分析,能很好地降低这些关键数据被伪造的风险。

Burp Sequencer主要由信息截取(Live Capture)、手动加载(Manual Load)和选项分析(Analysis Options)三个模块组成。

在截取信息后,单击Load按钮加载信息,然后单击“Analyze now”按钮进行分析。

Burp Suite进阶的相关教程结束。

《Burp Suite进阶.doc》

下载本文的Word格式文档,以方便收藏与打印。