Burp Suite代理
一、Burp Suite代理
Burp Suite代理工具是以拦截代理的方式,拦截所有通过代理的网络流量,如客户端的请求数据、服务器端的返回信息等。Burp Suite主要拦截http和https协议的流量,可以对客户端请求数据、服务端返回做各种处理,以达到安全评估测试的目的。
在日常工作中,我们最常用的web客户端就是的web浏览器,我们可以通过代理的设置,做到对web浏览器的流量拦截,并对经过Burp Suite代理的流量数据进行处理。
二、Burp Proxy基本使用
1.启动Burp Suite,完成浏览器的代理服务器配置。
浏览器的代理配置,推荐使用SwitchyOmega插件,该插件在谷歌和火狐浏览器均可使用
2.打开Proxy功能中的Intercept选项卡,确认拦截功能为“Interception is on”状态,如果显示为“Intercept is off”则点击它,打开拦截功能。
3.打开浏览器,打开需要访问的URL,这时你将会看到数据流量经过Burp Proxy并暂停,直到你点击【Forward】,才会继续传输下去。如果你点击了【Drop】,则这次通过的数据将会被丢失,不再继续处理。
4.当我们点击【Forward】之后,我们将看到这次请求返回的所有数据并且打开了页面。
5.当Burp Suite拦截的请求和响应后,可以在Burp Suite的消息分析选项卡中查看这次请求和响应的实体内容、消息头、请求参数等信息。消息分析选项视图主要包括以下四项:
- Raw 主要显示web请求的raw格式,包含请求地址、http协议版本、主机头、浏览器信息、Accept可接受的内容类型、字符集、编码方式、cookie等。你可以通过手工修改这些信息,对服务器端进行渗透测试。
- params 这个视图主要显示客户端请求的参数信息、包括GET或者POST请求的参数、Cookie参数。渗透人员可以通过修改这些请求参数来完成对服务器端的渗透测试。
- headers 这个视图显示的信息和Raw的信息类似,只不过在这个视图中,展示得更直观、友好。
- Hex 这个视图显示Raw的二进制内容,你可以通过hex编辑器对请求的内容进行修改。
注意:
默认情况下,Burp Proxy只拦截请求的消息,普通文件请求如css、js、图片是不会被拦截的,你可以修改默认的拦截选项来拦截这些静态文件,当然,你也可以通过修改拦截的作用域、参数或者服务器端返回的关键字来控制Burp Proxy的消息拦截,这些在后面的章节中我们会进一步的学习。 所有流经Burp Proxy的消息,都会在http history记录下来,我们可以通过历史选项卡,查看传输的数据内容,对交互的数据进行测试和验证。同时,对于拦截到的消息和历史消息,都可以通过右击弹出菜单,发送到Burp的其他组件,如Spider、Scanner、Repeater、Intruder、Sequencer、Decoder、Comparer、Extender,进行进一步的测试。如下图所示:
三、数据拦截与控制
- Burp Proxy的拦截功能主要由Intercept选项卡中的Forward、Drop、Interception is on/off、Action、Comment 以及Highlight构成,它们的功能分别是:
- Forward的功能是当你查看过消息或者重新编辑过消息之后,点击此按钮,将发送消息至服务器端。
- Drop的功能是你想丢失当前拦截的消息,不再forward到服务器端。
- Interception is on表示拦截功能打开,拦截所有通过Burp Proxy的请求数据;
- Interception is off表示拦截功能关闭,不再拦截通过Burp Proxy的所有请求数据。
- Action的功能是除了将当前请求的消息传递到Spider、Scanner、Repeater、Intruder、Sequencer、Decoder、Comparer组件外,还可以做一些请求消息的修改,如改变GET或者POST请求方式、改变请求body的编码,同时也可以改变请求消息的拦截设置,如不再拦截此主机的消息、不再拦截此IP地址的消息、不再拦截此种文件类型的消息、不再拦截此目录的消息,也可以指定针对此消息拦截它的服务器端返回消息。