网络安全渗透测试
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

2.2.1 Burp Suite

Burp Suite是一款非常强大的Web渗透测试集成工具,采用Java语言编写。它集合了数据包抓取、数据包修改、数据包重放等多种渗透功能,可以让渗透测试人员在渗透测试过程中更好地自动化或手动化完成对目标Web站点的攻击及渗透测试任务。得益于其美观的图形界面,即使是新手也可以快速入门这款软件,软件模块之间可以互相交互,并且支持使用自定义扩展插件。

Burp Suite由Port Swigger公司开发,分为社区版、专业版、商业版三个版本,您可以在其官网上免费下载社区版。

在Web渗透测试时Burp Suite可以说是一款必备软件,因为所有的网站交互都是通过Web数据包来完成的。而浏览器自带的开发者系统中渗透测试人员只能看到历史数据包,并且不能修改数据包或者拦截数据包,但当渗透测试人员有一款方便的抓包软件时情况便不一样了。在Burp Suite中渗透测试人员可以看到所有的历史数据包,并且参数自动加上了高亮显示,当渗透测试人员观察到可疑的数据包时便可以将它传入Repeater选项卡,调节每一个参数进行发包然后观察返回包,这样便可以快速地测试出许多漏洞。若当前页面是一个用户登录界面,渗透测试人员可以使用Burp Suite的Intruder选项卡中的功能配置好用户名和密码进行批量的爆破测试,随后渗透测试人员只要观察每一个返回包的大小(或者返回状态)便可以快速寻找到爆破成功的用户名及密码。

当Burp Suite启动完毕之后软件会自动在127.0.0.1地址8080端口上开启一个默认代理服务,您可以在软件Proxy选项卡内Options一栏“Proxy Listeners”中修改或添加其代理监听地址及监听端口。Burp Suite代理配置界面如图2-4所示。

图2-4 Burp Suite代理配置界面

在设置完毕代理之后,您只需要在浏览器上开启代理模式并填入您在Burp Suite上设置的代理地址即可开启对Web数据包的抓取。您可以点击Proxy选项卡内Intercept一栏中的“Intercept is on”或“Intercept is off”按钮选择开启/关闭拦截所有数据包或者使用“Drop”按钮丢弃特定数据包。当您开启拦截所有数据包时,需要对每一个数据包点击“Forward”按钮之后,对应数据包才会被放行传入目标服务器中;当您选择丢弃特定数据包后,对应的数据包不会传入服务器中产生任何交互。Burp Suite抓包选项如图2-5所示。

图2-5 Burp Suite抓包选项

注意:此时您还无法抓取HTTPS协议的数据包,Burp Suite采用中间人攻击的方式拦截HTTPS协议的数据包,您需要在操作系统或浏览器内添加并信任Burp Suite的根证书之后才可正常抓取HTTPS协议的数据包。

在开启拦截状态下,当Burp Suite获取到新的请求数据包时,会以橙色高亮的方式在Intercept一栏中提示您有新的数据包待处理,您可以看到类似图2-6 Burp Suite中抓取到的数据包所示的带有请求头、请求类似、请求内容等的标准HTTP请求数据包。

图2-6 Burp Suite中抓取到的数据包

您可以在当前标签的请求包编辑器内随意修改当前的请求数据包,然后执行放包或者丢包操作,或者您也可以点击“Action”按钮进行更多的处理操作或将当前数据包传入Burp Suite其他模块中进行进一步测试。

当您操作完毕之后,您可以在Proxy选项卡内HTTP history一栏中查看到所有的历史数据包的数据,包括请求包内容及返回包内容详情。Burp Suite历史抓包数据如图2-7所示。

图2-7 Burp Suite历史抓包数据

了解了最基础的抓取数据包功能之后,作者再为大家介绍几个Burp Suite比较常用的功能:

数据包修改重放功能:此功能位于Repeater选项卡内,您可以看到在这个功能中软件界面被分为左右两片区域,左边区域展示请求数据包内容,右边区域展示响应数据包内容。您可以在左侧数据包编辑区域内任意修改请求数据包内容并点击如图2-8 Burp Suite Repeater选项卡所示的“Send”按钮进行发包操作,随后您可以在右侧区域内看到当前请求对应的响应内容。您也可以点击“<”或“>”按钮查看历次请求发包记录。

图2-8 Burp Suite Repeater选项卡

数据包批量请求功能:此功能位于Intruder选项卡内,您可以在每一个项目内看到Target、Positions、Payloads、Options四个模块。在Positions模块中读者可以通过使用“§”来设置Payload变换的位置,并且通过下拉“Attack type”菜单来选择本次任务的攻击模式。目前Burp Suite共支持如下四种攻击模式:狙击手模式(Sniper)、攻城锤模式(Battering ram)、草叉模式(Pitchfork)、集束炸弹模式(Cluster bomb)。Burp Suite Intruder选项卡如图2-9所示。

图2-9 Burp Suite Intruder选项卡

在设置完毕Positions之后,渗透测试人员便可以来到Payloads模块设置对应的有效负荷,在此模块中共有四个子栏目,渗透测试人员可以在其中设置有效负荷的类型编码格式及Payloads的内容等。在一切都设置完毕之后渗透测试人员可以点击右上方的“Start attack”按钮开始进行本次攻击测试,随后Burp Suite会为此次批量请求操作创建一个独立的窗口以便自己查看本次测试结果。Burp Suite Intruder攻击窗口如图2-10所示。

图2-10 Burp Suite Intruder攻击窗口

内容编码\解码功能:此功能位于Decoder选项卡内,Burp Suite支持Hex及字符串两种内容输入。您可以点击“Decode as”按钮或“Encode as”按钮,随后选择您想要加解密的方式进行加解密操作,目前Burp Suite内置URL、HTML、Base64、ASCII Hex、Hex、Octal、Binary、Gzip八种编码方式,并且您也可以在此功能内进行多次嵌套编码转换。

数据包快速对比功能:此功能位于Comparer选项卡内,您可以将获取的请求包内容或响应包内容发送到对比模块内,然后点击“Words”按钮进行字符串比较或者点击“Bytes”按钮进行字节比较。比较之后若有不同,则不同部分会以高亮的方式展示给渗透测试人员。

自定义插件功能:此功能位于Extender选项卡内,Burp Suite支持Python或者Java编写的插件,您可以在Extensions栏目内载入本地已经编写好的插件。同时Burp Suite还拥有自己的插件市场,点击BApp Store栏目我们便可以看到上百个现成的插件,只需点击“Installed”按钮安装便可直接使用。

Burp Suite插件市场如图2-11所示。

图2-11 Burp Suite插件市场

站点资源树功能:此功能位于Target选项卡内Site map一栏中,Burp Suite会记录所有的Web资源请求记录并通过资源树的方式展现在此栏目内。渗透测试人员可以点击每一个节点来展开资源,非常便于操作。

Burp Suite Site map界面如图2-12所示。

图2-12 Burp Suite Site map界面

例如,在某一次渗透测试过程中,我们通过Burp Suite抓包发现服务器存在如图2-13所示的一个Get请求操作。

图2-13 Burp Suite抓取到的数据包

我们注意到斜杠后面的“1”参数十分可疑,之后作者通过使用右键菜单的方式将此数据包发送至Repeater选项卡内,之后将“1”修改为其他的数字并点击“Go”按钮发包。修改数据包之后成功返回内容如图2-14所示。

图2-14 修改数据包之后成功返回内容

我们发现在右侧的返回包内成功返回了他人的数据信息,至此一个越权漏洞挖掘完毕。