代理模块作为Burp Suite的核心功能,拦截HTTP/S的代理服务器,作为一个在浏览器和目标应用程序之间的中间人,允许拦截,查看,修改在两个方向上的原始数据流
要开始了解Burp Proxy,请执行以下步骤:
-
-
在Burp中,转到Proxy Intercept选项卡,并确保拦截已打开(如果按钮显示“Intercept is off”,则单击它以切换拦截状态)
-
在您的浏览器中,访问任何URL。浏览器将等待请求完成
-
在Burp中,转到Proxy Intercept选项卡。您应该会看到显示浏览器的请求,供您查看和编辑。单击每个消息编辑器选项卡(Raw,Headers等)以查看分析消息的不同方法
-
单击“转发”按钮将请求发送到服务器。在大多数情况下,您的浏览器将生成多个请求以显示页面(对于图像等)。查看每个后续请求,然后将其转发到服务器。当没有更多请求转发时,您的浏览器应该已经完成加载您请求的URL
-
在浏览器中,单击“刷新”按钮以重新加载当前页面
-
在Burp中,这次在Proxy Intercept选项卡中编辑请求。更改请求第一行中的URL,以便请求不存在的项。将请求(以及任何后续请求)转发到服务器。然后回顾一下您的浏览器。虽然您的浏览器请求的URL与以前相同,但您应该看到“未找到”消息,因为您在Burp中动态更改了实际的传出请求
-
在Burp中,转到“代理历史记录”选项卡。它包含已通过代理服务器的所有HTTP消息的表。选择表中的项目,然后查看请求和响应选项卡中的HTTP消息。如果选择已修改的项目,则会看到原始和已修改请求的单独选项卡
-
单击代理历史记录中的列标题。这会根据该列对表的内容进行排序。再次单击相同的标题可对该列进行反向排序,并再次单击以清除排序并按默认顺序显示项目。尝试使用不同的列
-
在历史记录表中,单击最左侧列中的单元格,然后从下拉菜单中选择一种颜色。这将突出显示所选颜色的行。在另一行中,在“注释”列中双击并键入注释。您可以使用突出显示和注释来注释历史记录并识别有趣的项目
-
历史表上方有一个过滤条。单击过滤器栏以显示可用选项。尝试以各种方式更改过滤器设置,并查看对历史记录表中显示的内容的影响。当代理历史记录变得非常大时,您可以使用过滤器隐藏某些类型的项目,以帮助查找您要查找的项目
-
选择历史记录中的项目,并显示上下文菜单(通常通过右键单击鼠标)。上下文菜单中的选项用于驱动Burp中的测试工作流程。选择“发送到中继器”,然后转到“中继器”选项卡。您将看到所选请求已复制到Repeater工具中,以便进一步测试
-
转到“代理选项”选项卡,查看所有可用选项。这些可用于更改Proxy侦听器的行为,定义规则以确定Proxy拦截哪些请求和响应消息,执行消息的自动修改以及以其他方式控制Proxy的行为
代理工具是Burp 用户驱动工作流程的核心,可让您直接了解目标应用程序如何在“引擎盖下”工作。它作为Web代理服务器运行,并且作为浏览器和目标Web服务器之间的中间人。这使您可以拦截,检查和修改两个方向传递的原始流量。
如果应用程序使用HTTPS,Burp会破坏浏览器和服务器之间的SSL连接,以便甚至可以在代理服务器中查看和修改加密数据
设置Burp和浏览器相互协作涉及以下元素:
-
代理侦听器---Burp使用代理侦听器接受来自浏览器的请求。在IPv4环回接口的端口8080上,默认的Burp侦听器通常足以进行通用测试
-
浏览器代理配置---需要将浏览器配置为使用Burp Proxy侦听器作为其代理服务器,用于HTTP和HTTPS协议
-
Burp CA证书---由于Burp破坏了浏览器和服务器之间的SSL连接,如果你通过Burp Proxy访问HTTPS站点,浏览器将默认显示警告消息。这是因为浏览器无法识别Burp的SSL证书,并推断你的流量可能被第三方攻击者截获。要通过SSL连接有效地使用Burp,需要在浏览器中安装Burp的证书颁发机构主证书,以便它信任Burp生成的证书
Burp代理测试工作流程
Burp用户驱动工作流程的一个关键部分是能够在Burp工具之间发送有趣的项目来执行不同的任务。例如,在代理中观察到一个有趣的请求后,你可能会:
-
使用Burp Scanner快速执行该请求的漏洞扫描
-
将请求发送到Repeater以手动修改请求并反复重新发出
-
将请求发送到Intruder以执行各种类型的自动定制攻击
-
将请求发送到Sequencer以分析响应中返回的令牌中的随机性质量
二.Proxy的构成
Proxy(代理)功能模块详解:
Module1:intercept
用于显示修改HTTP请求及响应内容,并可以将拦截的HTTP请求快速发送至其他模块处
Forward:用于发送数据。当把所需要的HTTP请求编辑完成后,手动发送数据
Drop:将该数据请求包丢弃
Intercept is on:拦截开关。当处于off状态时,Burp Suite会自动转发所拦截的所有请求;当处于on状态时,Burp Suite会将所哟拦截符合规则的请求并将它显示出来等待编辑或其他操作
Action:功能菜单
Module2:http history
记录经过代理服务器访问的所有请求,即使当Intercept is off也会记录
HTTP历史记录表包含以下列:
-
请求索引号
-
协议和服务器主机名
-
HTTP方法
-
URL文件路径和查询字符串
-
标记请求是否包含任何参数
-
标记用户是否修改了请求或响应
-
响应的HTTP状态代码
-
响应的长度(以字节为单位)
-
响应的MIME类型
-
URL文件扩展名
-
页面标题(用于HTML响应)
-
-
标记是否使用SSL
-
目标服务器的IP地址
-
响应中设置的任何cookie
-
请求的时间
-
上方窗口显示:请求索引号,Host(主机),Method(请求方式),URL(请求地址),Params(参数),Edited(编辑),Status(状态),Length(响应字节长度),MIME type(响应的MIME类型),Extension(地址文件扩展名),Title(页面标题),Comment(注释),SSL,IP(目标IP地址),Cookies,Time(发出请求时间),Listener port(监听端口)
下方窗口显示:Request(请求的详细内容)及其Response(响应内容)。说明:其内容可以通过右键菜单发至其他模块进行操作
Module3:WebSockets history
用于记录WebSockets的数据包,定义了一个全双工的通信信道,只需Web上的一个Socket即可进行通信,能减少不必要的网络流量并降低网络延迟
WebSockets历史记录表包含以下列:
-
请求索引号
-
WebSockets连接的URL
-
消息的方向(传出与传入)
-
标记消息是否被用户修改
-
响应的长度(以字节为单位)
-
-
标记是否使用SSL
-
收到邮件的时间
-
Module4:Options
用于设置代理监听,请求和响应,拦截反应,匹配和替换,SSL,Miscellaneous等
选项1:Proxy Listeners
代理侦听器是侦听从浏览器传入连接本地HTTP代理服务器。它允许监视和拦截所有的请求和响应。并且位于Burp Proxy的工作流的心脏。默认情况下,Burp默认监听127.0.0.1地址,端口8080
这些设置控制Burp如何将Proxy侦听器绑定到本地网络接口:
选项2:Intercept Client Requests
配置拦截规则,设置拦截的匹配规则。 当Intercept request based on the following rules为选中状态时,burpsuite会配置列表中的规则进行拦截或转发
选项3:Intercept Server Responses
配置拦截规则,设置拦截的匹配规则,不过这个选项是基于服务端拦截,当选小的Intercept request based on the following rules为选中状态时,burpsuite会匹配响应包
选项4:Intercept WebSockets Messages
使用这些设置可以控制在拦截选项卡中停止查看和编辑的WebSockets消息。
您可以单独配置是否截取传出(客户端到服务器)消息和传入(服务器到客户端)消息
选项5:Response Modification
用于执行响应的自动修改。可以使用这些选项来自动修改HTML应用程序响应中匹配的内容
选项6:Match and replace
用于自动替换请求和响应通过代理的部分。对于每一个HTTP消息,已启用的匹配和替换规则则依次执行,选择适用的规则进行匹配执行
选项7:SSL Pass Through
用于指定Burp将直接通过SSL连接的目标Web服务器
选项8:Miscellaneous