Web安全攻防从入门到精通
上QQ阅读APP看书,第一时间看更新

2.4
Burp Suite抓包工具

本节主要介绍渗透测试过程中经常用到的抓包工具——Burp Suite,下面会介绍一些重要模块的使用及在实战中如何去利用。

2.4.1
Burp Suite的介绍

Burp Suite是用于攻击Web应用程序的集成平台。它包含了许多工具,并为这些工具设计了许多接口,以加快攻击应用程序的过程。所有的工具都共享一个能处理并显示HTTP消息、持久性、认证、代理、日志、警报的强大的可扩展的框架。

2.4.2
Burp Suite的安装

Burp Suite可以在官网下载,如图2.11所示。除了社区版还有专业版,不过专业版需要付费,会提供一个月的试用期。注意,安装Burp Suite时会用到jdk,所以必须先配置好jdk,再下载安装。

图2.11 Burp Suite下载

2.4.3
Burp Suite入门

Burp Suite自带了多种模块,通过本节内容的学习,可以掌握如何使用Burp Suite的常用模块,如图2.12所示。

图2.12 Burp Suite界面

1.Dashboard模块

主要显示一些事件日志、任务等信息,在有异常情况时可以在Event log模块进行分析排错,如图2.13所示。

图2.13 查看日志信息

2.Target模块

选择选项【Site map】,它会在目标中以树形和表的形式显示,并且还可以查看完整的请求和响应。树视图包含内容的分层表示,它细分为地址、目录、文件和参数化请求的URL,如图2.14所示。

图2.14 Target模块

3.Proxy模块

Proxy模块算是Burp Suite的核心模块,先要在【Options】选项中设置对应端口,如图2.15所示。

图2.15 Proxy模块

此时我们需要在浏览器里设置好代理,如图2.16所示。

如果用Chrome浏览器,这里推荐使用Proxy SwitchyOmega插件来管理代理,如图2.17所示。

图2.16 代理设置

图2.17 插件管理

此时,当我们再访问界面时,流量就会被抓取,如图2.18所示。

图2.18 流量抓取

图2.19 修改返回包

【Forward】表示编辑数据包后发送到服务器,【Drop】表示丢弃数据包,【Intercept is on】表示开启拦截数据包,【Action】表示一些行为操作,常用的除了发送到其他模块,还有修改此请求的返回包。如图2.19所示,常通过修改返回包绕过一些登录验证。

【HTTP history】选项中记录了经过代理的所有流量,如图2.20所示。

图2.20 历史流量

4.lntruder模块

此模块下的第一个选项为【Target】,用来设置目标IP和端口,如图2.21所示。

第二个选项为【Positions】,用来设置变量和攻击的类型,如图2.22所示。

图2.21 【Target】选项

图2.22 【Positions】选项

【Attack type】(攻击类型)分为四种:Sniper、Battering ram、Pitchfork、Cluster bomb,如图2.23所示。

图2.23 攻击类型

Sniper为最基础的爆破方式,传递一个参数后选择字典就爆破对应次数,假设为5次,传递两个参数后选择字典就爆破10次,两个参数是同一个字典,如图2.24所示。

Battering ram传递一个参数同Sniper相同,爆破5次,传递两个参数是同时爆破5次,如图2.25所示。

图2.24 Sniper爆破

图2.25 Battering ram爆破

Pitchfork为交叉模式,传递两个参数,两个字典,一一对应进行爆破,如果两个字典行数不一致,取最小值进行测试,所以爆破次数以字典小的为准。将用户名字典设置为5个数据,密码为6个,爆破次数为5次,如图2.26所示。

Cluster bomb是在不知道用户名和密码的情况下最常用的模式,将用户名和密码都设置为变量,分别添加用户名字典和密码字典,所有的用户名去匹配所有的密码,最终爆破次数是两个字典长度的乘积。将用户名字典设置为5个数据,密码为6个,爆破的次数为30次,如图2.27所示。

图2.26 Pitchfork爆破

图2.27 Cluster bomb爆破

§§中间的值就是变量,一般都是先Clear§,然后将需要作为变量的值Add§,再去选择Attack type。下面我们以登录界面为例进行讲解,已知username为“admin”,通过暴力破解获取密码信息,如图2.28所示。

图2.28 变量设置

然后进入【Payloads】选项,如图2.29所示。

图2.29 【Payloads】选项

【Payload Sets】可以设置Payload的类型,如图2.30所示。

【Payload Options】可以自己下载后导入字典,也可以同自带的功能生成一些有规律的字典,如图2.31所示。

图2.30 Payload类型

图2.31 字典导入

【Payload Processing】可以添加字典的一些加密、解密规则、Hash等,如图2.32所示。

【Options】选项用来设置一些线程和请求头的变化等,如图2.33所示。

图2.32 加密、解密规则

图2.33 【Options】选项

5.Repeater模块

可以将拦截到的数据包发送到Repeater模块里,对数据包进行修改,重放后观察返回包的情况,请求包和响应包下方可以通过正则去匹配要搜索的信息,如图2.34所示。

图2.34 Repeater模块

Repeater的一些设置,如图2.35所示。

图2.35 Repeater设置

●【Update Content-Length】:更新头部长度。

●【Unpack gzip/deflate】:在收到gzip和deflate压缩内容的时候是否自动解压缩。

●【Follow redirections】:遇到重定向怎么处理。

●【Process cookies in redirections】:被重定向后是否提交cookie。

●【View】:设置请求/响应版块的布局方式。

●【Action】:一些行为操作。

6.Decoder模块

在渗透测试过程中经常会碰到一些防护设备,在绕过时会采用编码绕过。经URL放到Decoder模块进行编码之后,再次提交到浏览器,可以达到不错的效果。图2.36所示就是对www.test.com进行了两次URL编码后的效果。

编码解码的方式有:Plain、URL、HTML、Base64、ASCII hex、Hex、Octal、Binary、Gzip,如图2.37所示。

图2.36 Decoder模块

图2.37 编码解码方式

Hash算法有:SHA-384、SHA-224、SHA-256、MD2、SHA、SHA-512、MD5,如图2.38所示。

以上介绍的只是Burp Suite中自带的一些插件,互联网上也能搜索到很多好用的插件,大家可以下载后添加到Extender模块中使用,如图2.39所示。

图2.38 Hash算法

图2.39 Extender模块

2.4.4
Burp Suite实战

1.已知用户名,暴力破解密码

将数据包发送到Inturder模块,将攻击模式选为【Sniper】,将password字段添加为变量,如图2.40所示。

图2.40 爆破密码

简单设置一下字典,如图2.41所示。

设置好之后,开启攻击模式,得出的结果可以根据返回包的长度判断是否登录成功。显然密码是“123456”的Payload登录成功了,如图2.42所示。

图2.41 设置字典

图2.42 破解成功

2.任意文件读取

测试中发现title参数调用了一个PHP文件,尝试用多级跳转查看其他目录文件达到任意文件读取的效果,数据包如图2.43所示。

图2.43 文件读取

发送到Repeater模块,修改参数,返回包发现可以读取文件,如图2.44所示。

图2.44 读取成功