介绍
从本质上讲,Burp Suite是一个基于 Java 的框架,旨在作为进行 Web 应用程序渗透测试的综合解决方案。它已成为对 Web 和移动应用程序进行实际安全评估的行业标准工具,包括那些依赖于应用程序编程接口(API) 的应用程序。
简而言之,Burp Suite 捕获并支持对浏览器和 Web 服务器之间的所有HTTP /HTTPS 流量进行操作。这一基本功能构成了框架的支柱。通过拦截请求,用户可以灵活地将它们路由到Burp Suite框架内的各种组件,我们将在接下来的部分中对此进行探讨。在 Web 请求到达目标服务器之前拦截、查看和修改 Web 请求,甚至在浏览器收到响应之前对其进行操作的能力使Burp Suite成为手动 Web 应用程序测试的工具。
特点
尽管与专业版相比,Burp Suite 社区版提供的功能集更为有限,但它仍然提供了一系列令人印象深刻的工具,这些工具对于 Web 应用程序测试非常有价值。让我们探讨一些关键功能:
除了内置功能之外,Burp Suite 的 Java 代码库还有助于扩展的开发,以增强框架的功能。这些扩展可以用 Java、Python(使用 Java Jython 解释器)或 Ruby(使用 Java JRuby 解释器)编写。Burp Suite Extender模块允许快速轻松地将扩展加载到框架中,而称为BApp Store 的市场则允许下载第三方模块。虽然某些扩展可能需要专业许可证才能集成,但 Burp 社区仍然有相当多的扩展可用。例如,Logger++模块可以扩展Burp Suite的内置日志记录功能。
仪表板
Burp 仪表板分为四个象限,从左上角开始按逆时针顺序标记:
任务:任务菜单允许您定义Burp Suite在您使用该应用程序时将执行的后台任务。在Burp Suite社区中,默认的“Live Passive Crawl”任务会自动记录访问的页面,足以满足我们在本模块中的目的。Burp Suite Professional 提供了按需扫描等附加功能。
事件日志:事件日志提供有关Burp Suite执行的操作的信息,例如启动代理,以及有关通过 Burp 建立的连接的详细信息。
问题活动:本节特定于 Burp Suite Professional。它显示自动扫描程序识别的漏洞,按严重性排名,并可根据漏洞的确定性进行过滤。
咨询:咨询部分提供有关已识别漏洞的更详细信息,包括参考和建议的补救措施。该信息可以导出到报告中。在Burp Suite社区中,此部分可能不会显示任何漏洞。
在 Burp Suite 的各个选项卡和窗口中,您会注意到问号图标 ( )。
单击这些图标将打开一个新窗口,其中包含特定于该部分的有用信息。当您需要有关特定功能的帮助或说明时,这些帮助图标非常有用,因此请确保有效地利用它们。
导航
在Burp Suite中,默认导航主要通过顶部菜单栏完成,它允许您在模块之间切换并访问每个模块内的各种子选项卡。子选项卡出现在主菜单栏正下方的第二个菜单栏中。
导航的工作原理如下:
模块选择:菜单栏的顶行显示 Burp Suite 中的可用模块。您可以单击每个模块在它们之间切换。例如,下图中选择了Burp Proxy模块。
子选项卡:如果选定的模块有多个子选项卡,则可以通过主菜单栏正下方出现的第二个菜单栏访问它们。这些子选项卡通常包含特定于模块的设置和选项。例如,在上图中, 在 Burp Proxy模块中选择了Proxy Intercept 子选项卡。
分离选项卡:如果您希望单独查看多个选项卡,可以将它们分离到单独的窗口中。为此,请转到模块选择栏上方应用程序菜单中的“窗口”选项。从那里选择“分离”选项,所选选项卡将在单独的窗口中打开。可以使用相同的方法重新连接分离的标签。
Burp Suite还提供键盘快捷键,用于快速导航到关键选项卡。默认情况下,可以使用以下快捷方式:
选项
在深入研究 Burp Proxy 之前,让我们先探讨一下配置Burp Suite的可用选项。有两种类型的设置:全局设置(也称为用户设置)和项目设置。
全局设置:这些设置会影响整个Burp Suite安装,并在每次启动应用程序时应用。它们为您的Burp Suite 环境提供基准配置。
项目设置:这些设置特定于当前项目并且仅在会话期间应用。但是,请注意,Burp Suite社区版不支持保存项目,因此当您关闭 Burp 时,任何特定于项目的选项都将丢失。
要访问设置,请单击顶部导航栏中的“设置”按钮。这将打开一个单独的设置窗口。
下图显示了单独的设置窗口。
在“设置”窗口中,您将在左侧找到一个菜单。此菜单允许您在不同类型的设置之间切换,包括:
搜索:允许使用关键字搜索特定设置。
类型过滤器:过滤用户和项目选项的设置 。
用户设置:显示影响整个Burp Suite安装的设置。
项目设置:显示特定于当前项目的设置。
类别:允许按类别选择设置。
值得注意的是,Burp Suite中的许多工具都提供了特定类别设置的快捷方式。例如,代理 模块包括一个代理设置按钮,可直接打开相关代理部分的设置窗口。
设置页面上的搜索功能是一个有价值的附加功能,允许您使用关键字快速搜索设置。
Burp代理
Burp Proxy是Burp Suite中的一个基本且重要的工具。它能够捕获用户和目标 Web 服务器之间的请求和响应。这些被拦截的流量可以被操纵,发送到其他工具进行进一步处理,或者明确允许继续到达其目的地。
了解 Burp代理的要点
拦截请求:当通过 Burp 代理发出请求时,请求会被拦截并阻止到达目标服务器。请求出现在“代理”选项卡中,允许执行进一步的操作,例如转发、删除、编辑或将它们发送到其他 Burp 模块。 要禁用拦截并允许请求不间断地通过代理,请单击按钮。
Intercept is on
掌控:拦截请求的能力使测试人员能够完全控制 Web 流量,这对于测试 Web 应用程序非常有价值。
捕获和日志记录: Burp Suite默认情况下捕获并记录通过代理发出的请求,即使拦截已关闭。此日志记录功能有助于以后分析和审查先前的请求。
WebSocket 支持: Burp Suite还捕获并记录 WebSocket 通信,在分析 Web 应用程序时提供额外的帮助。
日志和历史记录:可以在HTTP历史记录 和WebSockets 历史 记录子选项卡中查看捕获的请求,以便进行回顾性分析并根据需要将请求发送到其他 Burp 模块。
可以通过单击“代理设置”按钮来访问代理特定选项。这些选项提供了对Proxy的行为和功能的广泛控制。熟悉这些选项以优化 Burp Proxy 的使用。
代理设置中的一些值得注意的功能
响应拦截:默认情况下,除非针对每个请求明确请求,否则代理不会拦截服务器响应。 “基于以下规则拦截响应”复选框以及定义的规则允许更灵活的响应拦截。
匹配和替换:代理设置中的“匹配和替换”部分允许使用正则表达式 (regex) 来修改传入和传出请求。此功能允许动态更改,例如修改用户代理或操作 cookie。
站点地图和问题定义
Burp Suite中的Target选项卡不仅仅提供对测试范围的控制。它由三个子选项卡组成:
站点地图:此子选项卡允许我们在树结构中绘制出我们的目标 Web 应用程序。代理处于活动状态时我们访问的每个页面都会显示在站点地图上。此功能使我们能够通过简单地浏览 Web 应用程序来自动生成站点地图。在Burp Suite Professional中,我们还可以使用站点地图来执行目标的自动爬行,探索页面之间的链接并绘制出尽可能多的站点。即使使用 Burp Suite Community,我们仍然可以在初始枚举步骤中利用站点地图来积累数据。它对于绘制 API 特别有用,因为 Web 应用程序访问的任何API端点都将被捕获在站点地图中。
问题定义:尽管 Burp 社区不包含 Burp Suite Professional 中提供的完整漏洞扫描功能,但我们仍然可以访问扫描器查找的所有漏洞的列表。问题定义部分 提供了广泛的 Web 漏洞列表,并附有描述和参考。此资源对于引用报告中的漏洞或帮助描述手动测试期间可能已识别的特定漏洞非常有价值。
范围设置:此设置允许我们控制 Burp Suite中的目标范围。它使我们能够包含或排除特定的域/IP 来定义我们的测试范围。通过管理范围,我们可以专注于我们专门针对的 Web 应用程序,并避免捕获不必要的流量。
Burp Suite 浏览器
了修改我们的常规 Web 浏览器以使用代理之外,Burp Suite还包括一个内置的 Chromium 浏览器,该浏览器已预先配置为使用代理,而无需我们进行任何修改。
要启动 Burp 浏览器,请单击Open Browser
代理选项卡中的按钮。将弹出一个 Chromium 窗口,在此浏览器中发出的任何请求都将通过代理。
范围和目标
最后,我们讨论使用 Burp代理最重要的方面之一:范围界定。
捕获和记录所有流量很快就会变得难以承受且不方便,特别是当我们只想关注特定的 Web 应用程序时。这就是范围界定的用武之地。
通过设置项目的范围,我们可以定义在Burp Suite中代理和记录的内容。我们可以限制Burp Suite仅针对我们想要测试的特定 Web 应用程序。最简单的方法是切换到Target
选项卡,右键单击左侧列表中的目标,然后选择 Add To Scope
。然后,Burp 将提示我们选择是否要停止记录范围之外的任何内容,在大多数情况下,我们要选择yes
。
要检查我们的范围,我们可以切换到“目标”选项卡 中的“范围设置”子选项卡。
范围设置窗口允许我们通过包含或排除域/IP 来控制目标范围。这部分功能强大,值得花时间熟悉。
但是,即使我们禁用了超出范围的流量的日志记录,代理仍然会拦截所有内容。为了防止这种情况,我们需要转到代理设置子选项卡并And
URL
Is in target scope
从“拦截客户端请求”部分中进行选择。
启用此选项可确保代理完全忽略不在定义范围内的任何流量,从而在Burp Suite中获得更清晰的流量视图。
代理HTTPS
拦截HTTP流量时,我们在导航到启用了 TLS 的网站时可能会遇到问题。例如,当访问 等网站时https://google.com/
,我们可能会收到一条错误,指示 PortSwigger 证书颁发机构 (CA) 无权保护连接。发生这种情况是因为浏览器不信任Burp Suite提供的证书。
为了解决这个问题,我们可以手动将 PortSwigger CA 证书添加到浏览器的受信任证书颁发机构列表中。操作方法如下:
下载 CA 证书:激活Burp代理后 ,导航至 http://burp/cert。这将下载一个名为
cacert.der
.将此文件保存在计算机上的某个位置。访问 Firefox 证书设置:
about:preferences
在 Firefox URL 栏中 输入 并按Enter。这将带您进入 Firefox 设置页面。在页面中搜索“证书”,然后单击“查看证书”按钮。导入 CA 证书:在“证书管理器”窗口中,单击“导入”按钮。选择
cacert.der
您在上一步中下载的文件。设置 CA 证书的信任:在随后出现的窗口中,选中“信任此 CA 来识别网站”框,然后单击“确定”。
通过完成这些步骤,我们已将 PortSwigger CA 证书添加到受信任的证书颁发机构列表中。现在,我们应该能够访问任何启用 TLS 的站点,而不会遇到证书错误。
您可以观看以下视频,直观地演示完整的证书导入过程:
通过遵循这些说明,您可以确保您的浏览器信任 PortSwigger CA 证书,并通过 Burp Suite代理与启用 TLS 的网站安全地通信。
攻击示例
打开:http://10.10.153.32/ticket/
可以看到一个文本框
尝试在邮件框输入<script>alert("Succ3ssful XSS")</script>,测试xss,但发现会自动屏蔽字符
只是客户端过滤,我们尝试抓包改post
把email改成<script>alert("Succ3ssful XSS")</script>,然后发送
成功
网友评论