6.3 BURP代理

Burp代理(Burp Proxy)是一款拦截HTTP和HTTPS流量的工具。它允许渗透测试人员检查某个应用、它的漏洞以及客户端和Web服务器之间的双向数据流。Burp代理非常流行,因为它不只能用来检查数据流,还能用来篡改请求数据。接下来我们会详细介绍如何用Burp代理来篡改、回复和窃取身份认证信息。

首先,重要的是记住Burp代理实际上是Burp套件(Burp Suite) 中的一部分。它是一系列工具的集合。当用户在他们的Web浏览器中输入如http://www.DrChaos.com 的URL时,他们期望被重定向到该站点。代理服务器会拦截该请求,并代表客户端发送该请求。代理服务器通常都是用于查看数据流和保护客户端远离恶意数据的。作为渗透测试人员,你可以用代理服务器拦截来自客户端的数据流,复制该请求,或篡改它:

要启动Burp套件,你可以浏览Kali > Sniffing/Spoofing > Web Sniffers ,然后选择Burp Suite

Burp套件启动后,你会看到Burp的启动主界面:

要配置Burp,点击Proxy 标签。默认情况下,Intercept 按钮会在此标签中被选中。当Intercept 选项被打开时,Burp会阻止所有从Web浏览器发往Web服务器的所有请求。渗透测试人员可以在查看请求后人工允许可以继续的链接。

Intercept 按钮需要人工干预,否则请求永远也不会到达Web服务器。

下一个能看到的配置设置是Options 子菜单。本节会允许用户检查或修改Burp运行的默认端口,并配置Burp可以看到的网卡或网络。默认情况下,Burp会被射程运行在本地环回网卡上,如下面的截图所示。环回网卡是一个特殊的网卡接口,通常会跟127.0.0.1 这个IP地址关联。它并没有跟它绑定的物理硬件连接,而只是操作系统引用自己的一种方式。换句话说,当你要在网络中跟自己通信时,可以用环回。如果你计划在本地机器外测试Burp套件,需要添加以太网卡接口和IP地址。

在这个例子中,我们会采用环回网卡接口:

下一步是对浏览器进行配置,使其使用Burp套件。所有浏览器使用代理服务器都有个类似的方式。在下一个例子中,我们会描绘一下在Firefox上对配置进行设置的过程,见下页图。

下面的这个例子中,我们将会在Firefox中访问一个URL,比如www.DrChaos.com 。你会观察到什么也没发生。这是因为默认情况下拦截功能是启用的,如我们在前面所说。现在你能在Burp中看到Intercept 标签的颜色改变了,说明已经有一个新请求被拦截了。

在你点击Intercept 标签时,你能看到该请求的详情。现在你可以点击ForwardDrop 来允许或拒绝该请求是否继续:

在你点击Forward 按钮时,你会看到请求会继续发往服务器,以及从服务器返回的响应。还有,你应该能在Web浏览器中看到该网页成功加载了。有些Web页面有多个模块,这样你可能需要多次选择Forward 按钮,Web页面才能完全加载。

另一个很酷的功能是Burp爬虫。Burp爬虫提供了以自动化方式将Web应用的请求关系映射出来的一种途径。Burp爬虫工作的原理是你先设置Burp来作为因特网连接代理,如我们在前面介绍过的。之后,你可以启用Burp爬虫,当它在运行时,Burp会将所有请求映射出来,它还提供了爬取所有截获的请求以找出新目标的功能。

要使用爬虫,点击Spider 标签进入默认配置页面。点击Spider is paused 按钮,将其状态改为Spider is running

Burp会将代理看到的所有请求都映射到Target 标签下。点击Target 标签来看看它都截获了哪些请求。它会显示一个代理上在用的目标列表。灰色URL代表你并没有直接浏览这些目标,而黑色URL则是直接浏览的那些站点:

要使用Spider 功能,右键点击某个目标,并选择Spider this host

当你在Burp中访问Spider 标签时,你会注意到Spider Status 计数已经从0变成了一个累加的数字:

只要Burp遇到了任何表单,它就会提示你填充表单或是忽略它们。如果你填完了表单,Burp会继续观察它在表单提交之后的页面上还能爬取什么:

在爬取过程结束时,返回Targets 标签,找到你最开始选择爬取的主机。点击主机旁边的三角形展开它。你会在原来的目标下看到所有的爬取结果:

Burp显示了爬取过程中截获的所有页面和链接。此外,他还会截获根目录、Web页面样式、子目录和Java代码。下一个例子显示的是www.DrChaos.com 站点上截获的多个子目录。

Burp能够用页面上方的灰色Filter 横条来过滤下方的条目。在你点击Filter 按钮时,它会展开可以用于过滤结果的可用选项:

Burp中的Spider 选项允许Web渗透测试人员查看某个Web应用或网站是如何配置的,包含哪些链接,以及这些链接指向哪里。这个概念就好比站在一间有很多扇门的房间内,而你要具备能同时探索每扇门的能力。