最新Burp Suite进阶技术

点击星标,即时接收最新推文

e501e8d54da192bec6d93d5f5725286f.png

本文选自《web安全攻防渗透测试实战指南(第2版)》

点击图片五折购书

5a1d6ac88b5e5993ff9b5b465fdb024c.gif

Burp Suite进阶

1.Burp Scanner

Burp Scanner主要用于自动检测Web系统的各种漏洞。本节介绍Burp Scanner的基本使用方法,在实际使用中可能会有所改变,但大体环节如下。

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

我们随便找一个网站进行测试,选择“Target”界面中的“Site map”选项下的链接,在其链接URL上单击鼠标右键,选择“Actively scan this host”选项,此时会弹出过滤设置,保持默认选项即可扫描整个域,如图3-26所示。

48a89c0a59043f927cbb998975599092.png 

图3-26  

也可以在“Proxy”界面下的“HTTP history”中,选择某个节点上的链接URL并单击鼠标右键,选择“Do active scan”选项进行扫描,如图3-27所示。

81e420158525a38dddc354962e0b31df.png 

图3-27  

这时,Burp Scanner开始扫描,在“Site map”界面下即可看到扫描结果,如图3-28所示。

956532259d283eb77f9b20dd46b60e9e.png 

图3-28  

也可以在扫描结果中选中需要进行分析的部分,将其发送到Repeater模块,然后进行分析和验证,如图3-29所示。

db066db6f3caa41dcedf0cf4465334c4.png 

图3-29  

Burp Scanner扫描完成后,可以右键单击“Target”界面中“Site map”选项下的链接,依次选择“Issues”→“Report issues for this host”选项,导出漏洞报告,如图3-30所示。

e08e5ca30db71420c0b74d58368281b0.png 

图3-30  

将漏洞报告以HTML文件的格式保存,结果如图3-31所示。

9c0be90ff2984211ae7e906340eab218.png 

图3-31  

通过以上操作步骤我们可以学习到Burp Scanner主要有主动扫描(Active Scanning)和被动扫描(Passive Scanning)两种扫描模式。

(1)主动扫描。

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

— 客户端的漏洞,如XSS、HTTP头注入、操作重定向。

— 服务器端的漏洞,如SQL注入、命令行注入、文件遍历。

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

(2)被动扫描。

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

— 提交的密码为未加密的明文。

— 不安全的Cookie的属性,如缺少HttpOnly和安全标志。

— Cookie的范围缺失。

— 跨域脚本和站点引用泄露。

— 表单值自动填充,尤其是密码。

— SSL保护的内容缓存。

— 目录列表。

— 提交密码后应答延迟。

— Session令牌的不安全传输。

— 敏感信息泄露,例如内部IP地址、电子邮件地址、堆栈跟踪等信息泄露。

— 不安全的ViewState的配置。

— 错误或不规范的Content-Type指令。

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

2.Burp Intruder

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

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

— 标识符枚举。Web应用程序经常使用标识符引用用户名、账户、资产等数据信息。例如,通过标识符枚举用户名、文件ID和账户号码。

— 提取有用的数据。在某些场景下,不是简单地识别有效标识符,而是通过简单标识符提取其他数据。例如,通过用户的个人空间ID获取所有用户在其个人空间的名字和年龄。

— 模糊测试。很多输入型的漏洞(如SQL注入、跨站脚本和文件路径遍历)可以通过请求参数提交各种测试字符串,并分析错误消息和其他异常情况,来对应用程序进行检测。受限于应用程序的大小和复杂性,手动执行这个测试是一个耗时且烦琐的过程,因此可以设置Payload,通过Burp Intruder自动化地对Web应用程序进行模糊测试。

下面演示利用Burp Intruder模块爆破无验证码和次数限制的网站的方法,如图3-32所示。这里使用该方法只是为了演示,读者不要将其用于其他非法用途。

10b6d71398b392807b9c011e544757a2.png 

图3-32  

前提是得有比较好的字典,准备好的字典如图3-33所示。需要注意的是,Burp Suite的文件不要放在中文的路径下。

8f8c4ac11e80737dea03754a28bfb7cf.png 

图3-33  

首先将数据包发送到Intruder模块,如图3-34所示。

c151f667e363753a4bcb5d4eb517871c.png 

图3-34  

由于Burp Intruder会自动对某些参数进行标记,所以这里先清除所有标记,如图3-35所示。

b20731c433befcad46d29113c79fbee8.png 

图3-35  

然后选择要进行暴力破解的参数值,将参数“password”选中,单击“Add$”按钮,如图3-36所示。这里只对一个参数进行暴力破解,所以攻击类型使用Sniper模式即可。要注意的是,如果想同时对用户名和密码进行破解,可以同时选中参数“user”和参数“pass”,并且选择交叉式Cluster bomb模式进行暴力破解。

8193a201843eca827454931ec3de562e.png

图3-36  

Burp Intruder有四种攻击模式,下面分别介绍每种攻击模式的用法。

— Sniper模式使用单一的Payload组。它会针对每个位置设置Payload。这种攻击类型适用于对常见漏洞中的请求参数单独进行Fuzzing测试的情况。攻击请求的总数应该是Position数量和Payload数量的乘积。

— Battering ram模式使用单一的Payload组。它会重复Payload并一次性把所有相同的Payload放入指定的位置。这种攻击适用于需要在请求中把相同的输入放到多个位置的情况。攻击请求的总数是Payload组中Payload的总数。

— Pitch fork模式使用多个Payload组。攻击会同步迭代所有的Payload组,把Payload放入每个定义的位置中。这种攻击类型非常适合需要在不同位置中插入不同但相似输入的情况。攻击请求的总数应该是最小的Payload组中的Payload数量。

— Cluster bomb模式会使用多个Payload组。每个定义的位置中有不同的Payload组。攻击会迭代每个Payload组,每种Payload组合都会被测试一遍。这种攻击适用于每个Payload组中的Payload都组合一次的情况。攻击请求的总数是各Payload组中Payload数量的乘积。

下面选择要添加的字典,如图3-37所示。

22d08c8a8a160be5dc2d263127e44f3f.png 

图3-37  

然后开始破解并等待破解结束,如图3-38所示。

10e603ae62c641622c2e625f4ba76fdf.png

图3-38  

这里对“Status”或“Length”的返回值进行排序,查看是否有不同之处。如果有,则查看返回包是否显示为登录成功。如果返回的数据包中有明显的登录成功的信息,则说明已经破解成功,如图3-39所示。

d8757a6282d3bb3c80afa929a106f2d5.png 

图3-39  


3.Burp Repeater

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

Burp Repeater中数据包的显示方式有Raw和Hex两种。

(1)Raw:显示纯文本格式的消息。在文本面板的底部有一个搜索和加亮的功能,可以用来快速定位需要寻找的字符串,如出错消息。利用搜索栏左边的弹出项,能控制状况的灵敏度,以及是否使用简单文本或十六进制进行搜索。

(2)Hex:允许直接编辑由原始二进制数据组成的消息。

在渗透测试的过程中,经常使用Burp Repeater进行请求与响应的消息验证分析,例如修改请求参数,验证输入的漏洞;修改请求参数,验证逻辑越权;从拦截的历史记录中,捕获特征性的请求消息进行请求重放。这里将Burp Intercept中抓到的数据包发送到Burp Repeater,如图3-40所示。

cac59da908e21edadc24f04007b336d5.png 

图3-40  

在Burp Repeater的操作界面中,左边的“Request”为请求消息区,右边的“Response”为应答消息区。请求消息区显示的是客户端发送的请求消息的详细内容。编辑完请求消息后,单击“Send”按钮即可将其发送给服务器端,如图3-41所示。

6f707f5ffc6486fad7b6abf59748c017.png

图3-41  

应答消息区显示的是服务器端针对请求消息的应答消息。通过修改请求消息的参数来比对分析每次应答消息之间的差异,能更好地帮助我们分析系统可能存在的漏洞,如图3-42所示。

 955ce839394b62d83b3495020d0cfbfb.png

图3-42  

4.Burp Comparer

Burp Comparer提供可视化的差异比对功能,来对比分析两次数据之间的区别,适用的场合有以下几种。

(1)枚举用户名的过程中,对比分析登录成功和失败时,服务器端反馈结果的区别。

(2)使用Burp Intruder进行攻击时,对于不同的服务器端响应,可以很快分析出两次响应的区别。

(3)进行SQL注入的盲注测试时,比较两次响应消息的差异,判断响应结果与注入条件的关联关系。

使用Burp Comparer时有两个步骤,先是数据加载,如图3-43所示,然后是差异分析,如图3-44所示。

 6aa83870d8747d311f5e964149948d56.png

图3-43  

 22e63290a26bb81bf3dc78ed1829c83f.png

图3-44  

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

— 从Burp Suite中的其他模块转发过来。

— 直接复制粘贴。

— 从文件里加载。

加载完毕后,选择两个不同的数据,然后单击“文本比较”(Words)按钮或“字节比较”(Bytes)按钮进行比较。

5.Burp Sequencer

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

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

截取信息后,单击“Load…”按钮加载信息,然后单击“Analyze now”按钮进行分析,如图3-45所示。

d870daae37259be35709b07a7cafca08.png 

图3-45  


73f4d8f2c0823b5196f4953f15b55ba5.gif

MS08067安全实验室视频号已上线

欢迎各位同学关注转发~

—  实验室旗下直播培训课程  —

87321182cbcc203085bee1e9df62ae23.png

edb7bab727e3e5c078d3dae73254b76f.jpeg

837988925e37217e7575082ce4ff1b75.jpeg80d7e02e3abcc051d597967b0d087168.png

e492c49132cb1fca022da84883e82a15.jpeg

1effcbc74cadb20b4c525a18d6ddfff9.jpeg

d60ea98954f9bffa7b1ab8a9fc6b09f1.jpeg

b5b0be3beb75b27444ea833c69ec74c5.jpeg

4e8a94d046e69525071b206ccb4ba04f.jpeg


和20000+位同学加入MS08067一起学习

ba6f8a6012dd090ea712005248c89bc0.gif

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值