Web 服务器和应用比大多数其他企业应用更多地暴露在互联网上:它们必须可用并为最终客户服务。正因为如此,维护者们被教导要将用户流量(浏览网站、与动态内容交互等)视为正常,只要它遵循行为规范。他们的防御将集中在广泛的交互上,同时让缓慢的正常用户活动下滑。有效的 pen 测试人员将尽可能地模仿这种行为,以便在稍后启动更具侵入性的杀伤链阶段之前尽可能多地了解目标。
正如我们在第 4 章中提到的,使用 Arachni扫描漏洞,专用扫描工具可能是一把双刃剑。一方面,包括 Arachni 在内的大多数扫描器专门通过被动和主动方式查找漏洞。这两种方法都很有帮助,但您可能很清楚,在主动扫描的情况下,它们是以时间成本和隐蔽性为代价的。除了所需的资源和时间,我们还必须考虑我们自己的工作流程与所需的隐形水平。可以收集到重要的情报,但如果配置文件的剪裁不精确,您就有可能向目标操作员发出警报并被发现。很多时候,职业生涯早期的笔试人员会使用 Nmap 扫描或其他主动侦察工具,结果发现他们的噪音破坏了他们继续工作的机会。
以扫描为中心的工具还需要将发现转化为后期操作,而且它们的检测能力也存在漏洞。大多数扫描工具不会代表您采取行动。在白盒测试场景中,这些警告可能是可以的,在这种场景中,您可以全权测试 web 应用,而不用担心被捕获。在黑匣子场景中,pen 测试更有可能由红色团队(充当外部攻击者)进行,因此需要更精确的外科手术。很多人可能已经注意到,大多数扫描或爬行工具都有盲点,尤其是在新的内容交付模式(如 JavaScript 或 Ajax)周围,这些模式可以动态创建内容,而不是依赖存储的 HTML。对于这些情况和许多其他情况,我们都有理由在您的武库中使用一两个替代工具集。
基于代理的工具为我们提供了一个补充工具,它不仅可以进行扫描,还可以在同一工具中进行漏洞利用和访问。这些产品充当客户端(浏览器)和服务器端(web 层)元素之间的代理。通过坐在这个关键环节的中间,我们能够冲刷双方之间的信息流量,观察甚至修改和攻击。代理工具的另一个好处是允许我们在请求通过一些验证后修改请求,因此我们可以避免应用可能存在的一些基本 JavaScript 和 HTML 限制。
您可能已经在您的武库中使用了其中一些工具;毫无疑问,市场上充斥着开源和商业替代品。在本章中,我们的目标是进一步介绍 Kali Linux 中包含的两种最流行的替代方案–Linux�� 打嗝套件由提供 https://portswigger.net/ 和 OWASPs 拥有Zed 攻击代理(ZAP)。这两个工具都可以免费与附带的二进制文件一起使用,但我们还将看到 Burp Suite Professional 版本可以在混合中添加多少内容。我希望我们将介绍一些更先进的技术,以利用这些基于代理的工具,然后您可以使用这些工具改进您自己的流程,提供更好的结果,并帮助更有效地保护您的客户。
牢记这些高级别目标,在本章中,我们将介绍以下内容:
- 对比两种主流代理工具 Burp Suite 和 OWASP ZAP(以前的 zaproxy)与 Paros 之间的差异
- 潜入使用 Burp 的 Proxy 和 Scanner 以及 ZAP 来查找和检测 OWASP 前 10 名中的漏洞
- 了解如何利用 Burp 的活动工具枚举信息并利用漏洞
- 通过 fuzzing 和 Burp 中继器测试访问控制和会话管理
- 使用 BurpSuite 发现和利用注入缺陷、输入验证和应用逻辑漏洞
OWASP 的工具套件非常值得学习�� 他们的平台无关方法意味着您可以随时随地使用这些工具,而无需担心您使用的是哪种操作系统。幸运的是,卡利默认捆绑了它。作为测试人员,OWASP 在 Web 应用安全领域的领先地位对我们更有帮助。他们的见解和指导使其成为 ZAP 的每次迭代(https://www.owasp.org/index.php/ZAP )工具,因此我们可以确定,我们正在获得前沿漏洞,并在发现时利用工具中包含的信息。
与 Kali 中的任何工具一样,您可能已经在学习或工作中使用了 ZAP,但是有一些先进的技术可以用于提高工具集中 ZAP 的范围和效率。ZAP 可以主动扫描目标(这是他们的**Quick Start**选项卡使用的方法),也可以用作代理工具来捕获、迭代和模糊站点。
ZAP 的代理功能扫描可以通过其**Tools**菜单进行扩展,以扫描、爬行或模糊应用。ZAP 充当 web 代理,通常与测试人员的浏览器位于同一主机上。以下屏幕截图显示了 ZAP 如何融入体系结构:
OWASP 的 ZAP 是我们的 MITM,它可以减慢和重放服务器-客户端交互。
虽然大多数 web 应用黑盒场景可以通过在同一主机上部署我们的代理 MITM 来解决,但应该注意的是,随着物联网的出现以及使用 web 应用为这些设备提供服务的趋势,我们可以在代理模式下使用 ZAP 或 Burp,其中客户端实际上是智能设备上的嵌入式 web 客户端(例如,电视、摄像机、恒温器、SCADA 传感器、泵或电机等)一些公司预测,到 2020 年,互联网将连接 500 亿台设备,虽然这一预测最初被认为过于热情,但实际上可能被低估了。考虑到有多少制造商似乎在确保这些设备的安全方面运气不佳(例如,见Mirai 僵尸网络),当机会出现时,值得考虑这个用例。黑客如果不是企业家,就什么都不是!
在进入 ZAP 更高级的功能之前,让我们先快速启动一个基线项目,并使用一个持久性项目(在会话之间保存数据)运行它。假设您已经将浏览器配置为指向 ZAP 作为代理(我的配置是针对localhost:8080的),我们将针对Mutillidae应用,它与DVWA类似,但提供更大的深度,位于http://172.16.30.129/mutillidae/。我还通过导入其根证书将我的客户端配置为信任来自 ZAP 的证书,以确保我不会遇到与SSL/TLS有关的问题,尽管这在本测试场景中不太可能。
在OWASP 破网应用虚拟机上有大量的培训和存档应用,包括DVWA、WebGoat、Multillidae等等。如果您下次旅行只能在 Kali 虚拟机旁边运行一个,那么它将是最好的。对于更集中的测试,我建议在找到最新的易受攻击的虚拟机 http://www.vulnhub.com/ 。
如果我们想运行活动扫描,只需在 URL 中输入 DVWA 的地址即可攻击应用,然后单击**Attack**。许多人使用此功能,但了解扫描可以帮助您更好地使用该工具并选择正确的功能组合。
快速扫描会发现大量向量,但其中最紧迫的是那些讨厌的密码。
“站点”面板映射站点,显示文件和目录结构,如前一个屏幕截图所示。在下面的窗口中,我们会注意到**Alerts是根据它们的类型进行分组的,而 ZAP 使转向后续操作变得非常简单。我们可以看到对应于相关漏洞关注级别的每个 URL 的不同颜色的标志,以及表示通过自动Spider**功能学习到的蜘蛛符号。当我们通过浏览器访问这些位置时,随着我们在与站点交互时获得更高的逼真度,爬行器将消失。扫描可以节省时间,但与任何主动技术一样,自动爬行往往是一种迟钝的工具,而不是微调的工具。如果你已经对你的目标有了一些想法,那么将这些扫描集中在目标的较小部分将在秘密中获得回报。
在这两种情况下,我们在 BWA 映像上看到的 Mutillidae 中基于 web 的安全问题比其他应用更多,其中最令人震惊的是路径遍历问题,它似乎允许我们公开/etc/passwd/内容。我们可以使用上下文菜单突出显示并阅读有关漏洞的信息,甚至在浏览器中启动标记的 URL,如以下屏幕截图所示:
哦,天哪,我们需要和客户谈谈一些密码问题�� 在我们完成测试之后。
正如我们所看到的,这个密码信息宝库只花了很少的努力,并不总是如此(曾经可以希望如此),但是 ZAP 提供的每个警报都提供了一个我们应该在渗透测试中追求的线索。
被动扫描是一种非突兀的方式,通过它我们可以绘制并了解站点的结构以及与之交互的代码。被动扫描不允许对 HTTP 消息进行在线修改,但对未修改的头和内容的全面检查允许 ZAP 提供洞察。它将构建警报和标签,就像它们是通过主动扫描生成的一样。
我们只有两个配置被动扫描的区域:
- 第一个重点是扫描引擎的灵敏度。我们可以访问选项,如以下截图所示的****
Passive Scan Rules屏幕**,并选择OffLowMedium或改变每种类型漏洞的警报阈值。**Off完全禁用扫描和警报,Low提供最高级别的灵敏度,High只关注最明确的要标记的漏洞。
根据我们的需要,被动扫描可以省略或仔细检查各种测试类型。
- 被动扫描配置的第二个方面是我们能够根据特定的正则表达式或标题信息进行标记,如下面的屏幕截图所示。为什么这对我们有用?当我们对在特定页面中寻找什么有了一些想法时,我们可以创建自定义标记,允许 ZAP 识别我们所追求的模式。如下面的屏幕截图所示,ZAP 中密码的默认标记模式可能对密码很有效,但是当我们发现我们的目标通过将字段名替换为密码短语或机密来改变情况时,会怎么样?这种标记定制还可以用来收集其他有趣的信息,这给了我们大家一个很好的理由来复习正则表达式或正则表达式语法。
可以添加或修改标签,以帮助我们发现目标自身的秘密。**** ****#### 用 ZAP 变得模糊
ZAP 能够在请求到 web 应用的过程中修改或模糊请求,这是测试输入验证、应用逻辑、大量注入漏洞和错误处理的绝佳工具。模糊攻击增加了一些自动化,以避免繁琐、费力和迭代的测试,重点是应用于如何处理请求的 bug。内置的模糊有效载荷相当简单,但可以通过使用附加组件甚至自定义脚本进行扩展。提高您在 ZAP 上的模糊技能的一个重要资源是位于的OWASP 的 OTG 附录 Chttps://www.owasp.org/index.php/OWASP_Testing_Guide_Appendix_C:_Fuzz_Vectors 。我们几乎可以在 ZAP 的任何地方启动模糊操作,只需右键点击**Alert、History或Request**条目,点击你计划模糊的链接,如我们再次点击 Mutillidae 站点时的屏幕截图所示(该应用被严重滥用!)。您的目标应该是查找导致在客户端和服务器之间传递变量的请求或响应的任何爬行器结果或浏览操作,并寻找机会来测试所接受内容的限制。在这种情况下,我们认为我们可能有机会处理登录应用并测试一些 QL 注入/输入验证漏洞。
在 ZAP 中,几乎任何地方都可以发起模糊攻击。
然后,我们可以选择一个字段进行模糊处理,并为我们想要部署的负载添加一个位置(Mutillidae 在其练习模式中指出了几个测试向量,因此我鼓励尝试其他测试向量)。
要了解 OWASP 的 Mutillidae web 应用提供的众多漏洞,您可以阅读《SAN 指南》,该指南在中解释了应用的起源、用途和内部工作原理 https://www.sans.org/reading-room/whitepapers/application/introduction-owasp-mutillidae-ii-web-pen-test-training-environment-34380 。
首先,我们将使用JBroFuzz插件来提供一个文件模糊器,这意味着 JBroFuzz 将带来一系列不同类别的列表来进行尝试。密码、目录和用户名列表是常见的,但对于各种 SQL 查询来说也是方便的字符串,可以尝试使用。这些步骤显示在下面的屏幕截图中。在测试健壮的 web 应用时,针对常见的浏览器 URI 和 HTTP 版本进行测试也很有用,以查看是否存在可以强制降级的点,以便应用能够适应您的过时的浏览器或操作系统。
配置模糊有效负载是一个简单的过程。
根据您选中的框和突出显示的字段,您将看到 ZAP 开始针对页面或字段彻底测试这些向量。在**Fuzzer选项卡中,您将注意到所有结果。如果您看到一个感兴趣的,请用鼠标右键单击它并尝试在浏览器中启动它。我们在这里寻找的是差异。为什么下面截图中的条目41会导致302**响应和更大的字节计数?模糊化过程似乎为该测试字符串带来了不同的结果。
模糊结果很快将我们的注意力集中在一小部分字符串上。
在右上方的侧面板中,您可以查看标题和正文代码或信息,如下图所示,我们可以记录一些有趣的差异,以便将来进行测试和分析。我们可以在左侧看到看似无害的有效载荷1 exec sp_ (or exec xp_)结果,在右侧看到通过有效载荷â�� or username is not NULL or username = â��的结果。
模糊结果很快将我们的注意力集中在一小部分字符串上。
正如我们现在所看到的,这似乎表明右手侧的有效载荷发现了一个不同的响应——应用装甲上的这些裂缝可能是我们站稳脚跟并危及目标所需的全部。一旦对任何感兴趣的字段进行了模糊化,通常会对字段组合进行模糊化,并对简单的基于凭证的身份验证进行暴力攻击。OWASP 的 ZAP 当然也有助于这些后续测试。类似的功能可以在其他 Kali 捆绑测试工具集中找到,如w3af、****WebScarab和经典的Paros。作为实践渗透测试的人员,我们花时间至少了解其中的几个是值得的。**** ****## 使用打嗝套件将其提升到一个新的水平
OWASP ZAP 是对基于代理的扫描和模糊的开源介绍。尽管如此,大多数测试人员已经发现,执行完整测试需要额外的工具,原因包括能够覆盖更多的输入向量,覆盖额外的内容类型,如 Flash 和 Webservice 漏洞,并自动化更多的报告和审计流程。更多关于许多工具集的信息,请访问SecToolMarket.com(http://www.sectoolmarket.com/price-and-feature-comparison-of-web-application-scanners-unified-list.html .与外部工具组协调以完成小型渗透测试以外的任何工作都是值得的麻烦。大量更新的基于代理的动态应用安全测试(DAST)框架已经涌现出来响应这一号召。这些解决方案从免费到非常昂贵,可能被大型企业或他们雇佣的笔测试人员使用。其中许多平台都运行在 Linux、Windows 甚至 Mac OS 上。
Kali Linux 方便地捆绑了 Linux 领域领先工具之一的免费版本;打嗝套件(https://portswigger.net/burp/ 由达夫伊德·斯图达德创建,并由其名为波特斯威格的公司维护。Burp Suite 的体系结构包括其他工具集的代理和模糊功能,但通过内置工具扩展了这些功能,这些工具可以更全面地扫描、模糊以及以其他方式与目标环境交互。BurpSuite 可以比较站点地图并自动化许多其他任务,这些任务对于 ZAP、w3af 和其他 Kali 捆绑工具来说是手动的,它几乎涵盖了整个 OWASP OTG。我们将详细讨论其中一些工具,它们在免费版本中要么被禁用,要么受到限制,如下面的屏幕截图**所示。**我强烈建议您订阅 Burp Suite Pro(截至本文撰写之时,每位用户每年 349 美元),因为按照这个价格,您将获得频繁的更新、卓越的支持,以及市场上最具成本效益的 web 笔测试工具之一,您可以在 Kali(或其他形式的 Linux)、Windows、,和 Mac 操作系统。
BurpSuite 免费版和专业版的比较。
了解 Burp Suite 所支持的用户驱动工作流有助于测试人员了解版本之间的差异,并决定 Burp Suite 将如何支持他们自己定制的流程。
以下截图改编自位于的图 https://portswigger.net/burp/help/suite_usingburp.html 但在这里,为了更清楚地概述专业版添加的部分:
BurpSuite 的体系结构支持完整的笔测试工作流。
不要担心前面的内容,我们将快速检查代理和 Spider 的设置和配置,然后快速进入 Burp 提供的更高级的功能,这些功能在整个笔测试过程中提供自动化。
与任何代理工具一样,我们需要配置浏览器设置以使用适当的 IP 地址和端口号(通常使用 IP 地址127.0.0.1和端口8080。幸运的是,相同的配置适用于 ZAP 和 Burp,除非您计划链接代理。如果您需要通过多个工具或使用外部代理传递流量,这可能是必要的,图片中关于如何使用 Burp 实现这一点的详细信息将在中讨论 https://portswigger.net/burp/help/options_connections.html .OWASP破网应用虚拟机****BWA VM包括多个用于测试和培训的应用,我们只想关注 OWASP Mutillidae 应用,它为我们的实践提供了大量素材
您可能已经知道,开始侦察的推荐方法是手动映射目标,首先关闭代理的拦截功能。当我们点击各个页面并以表格形式提交胡言乱语时,我们将填充**Target选项卡的Site map子选项卡。右键单击此处感兴趣的任何域或 IP 地址,可以将主机添加到分析范围中。我们也可以手动将目标添加到Target Scope**(请看下面的屏幕截图),但这两种方法都让我们有机会将分析重点放在该应用上,如绿色框所示——范围内定义的任何内容,您都需要了解 Burp 将为您带来攻击!您还可以从范围中省略某些类型的内容(在红色框中),但在这种情况下,我们只保留默认值。
这些默认设置将确保我们不会浪费时间查看注销页面。
目标范围是一个巨大的生产力提升。
我们为什么要经历这样的麻烦?自动化工具需要一些帮助。如果你在没有限制的情况下让它们丢失,你就有可能用不必要的流量破坏你的目标,或者对你的章程之外的网站造成附带损害——这两者都对业务不利!手动映射类似于走查,它允许您和您的团队更好地了解可能使用的技术,以及站点的工作流如何影响用户交互。我们需要提前更好地回答一些问题,以确保以后取得更相关的结果。网站在哪里试图吸引用户?提供什么服务?对于更深入的分析,我们可以标记哪些形式为有趣?你得到了这个想法,并可能在自己的工作中对此有所了解。重要的是,打嗝套件也理解这一点,以便更有效地为您服务。
随着被动和手动绘图的接近尾声,您当然可以从 Burp 那里获得一些帮助来完成探索。Target选项卡和Site map子选项卡中的灰色站点是已学习但未访问过的链接,因此,如果您认为通过访问它们可以获得什么,请务必尝试!您还可以激活Content discovery以允许 Burp 尝试发现目录、模板或其他潜在的隐藏文件和文件夹,这些文件和文件夹可能已解除链接或不再处于活动状态,但仍存储在服务器上。只需右键单击主机,选择Engagement Tools,然后选择**Discover Content**,即可完成此操作,如图所示:
内容发现可以帮助查找隐藏或遗忘的内容。
启动**Content Discovery**后,您有机会选择用于自动发现操作的内置或自定义单词列表(请参见以下屏幕截图)。内容发现实际上是一种特殊的爬虫功能,它实际上是查找未链接的页面和文件夹,而爬虫会话则专注于跟踪所有链接,直到站点完全映射为止。在这里,我们可以决定是否观察到案例敏感性(这增加了操作的数量,以充分列举所有可能性。我们还可以指定感兴趣的文件类型和扩展名、要使用的线程和连接的数量,甚至我们是否希望 Burp 的内容发现从这些隐藏的工件中爬行出来,并深入到这些链接可能指向的任何内容。
我强烈建议在 Burp 中使用注释功能。内容窗口中任何查找的最左侧字段都可以使用下拉菜单进行颜色编码,您还可以双击添加注释。在处理复杂的目标或作为团队的一部分时,这些工具可以使您保持组织性并防止不必要的返工。
定制内容发现的选项。
然后,**Content discovery工具将彻底测试所有可能未开发或隐藏的内容,这些内容符合您建立的标准(参见下图),您可以在Content discovery对话框的Site map**子选项卡中查看。
我建议您随时使用过滤器。特别是站点地图,它是一个非常好的工具,可以将您的信息简化为您感兴趣的信息。只需点击****Filter:****对话框,调整设置,确保过滤掉所有非必要信息。
内容发现有助于完成站点地图。
现在,我们已经准备好开始使用自动化程度更高的工具了。您可能会优先选择是先激活代理拦截还是转为打嗝蜘蛛,但我倾向于使用打嗝代理并避免蜘蛛除非是白盒测试,客户期待我们。通过目标阶段的被动和手动映射,proxy 现在应该能够帮助我们专注于我们标记为目标装甲中潜在软点的应用领域。只需切换到**Proxy选项卡Intercept**子选项卡上的截取,即可激活代理。
当您在网站上冲浪时,**Proxy将拦截这些请求,并允许您更改任何字段以供自己使用。这可能是相当劳动密集的,因此一定要将此实际操作过程限制在您认为需要人工触摸的应用部分或作为熟悉自己的手段。一旦您相信进一步的分析或调查,请右键单击代理的HTTP history选项卡(查看以下屏幕截图)并将表单或 URL 交给 BurpSuite 中的另一个工具,以更好地利用您的时间。例如,如果您需要尝试多次修改表单,Burp Repeater可以一次提供并跟踪多个此类请求。如果您希望发起自动攻击,Burp 入侵者可以代表您解决这些问题。Sequencer和Comparer**也可以在此处启动。
BurpSuite 使代理分析的数据透视变得简单。
打嗝蜘蛛是一种快速方便的工具,但我建议谨慎使用。Spidering 可以帮助加速任何笔测试过程,但该工具的作者建议只在非常大的应用的部分使用它,或者在时间至关重要且风险超过时间表的情况下使用它,这是非常值得理解的,并在你的剧目中,以备需要。好消息是,我们所有人都有足够的时间来掌握它
Spider 的配置位于一个选项卡上(请看下面的屏幕截图),让我们可以访问一些设置,这些设置可以帮助我们限制这个嘈杂的工具对目标的影响,自动生成表单填充数据,尝试登录,并传递特殊的浏览器请求标题。我可以避免更改的一个设置是**Passive Spidering设置。取消选中Passively spider as you browse框可防止 Burp 自动识别链接和内容,因为您使用套件中的其他工具,如代理或目标。假设您拥有所有喜欢的设置,您可以在Control**中启动活动爬网会话标签。
爬行设置很有用,但除非您确定,否则不要使用被动设置!
Burp 的**Target、Spide****r和Proxy**工具都能对目标进行出色的侦察,并为我们调查潜在漏洞提供一个整合的站点地图和目录。虽然站点地图和有组织的问题列表有助于我们测试的后期阶段,但您不能测试您看不到或不知道存在的东西!现在您已经收集了所有这些信息,您可能想对其做些什么。
BurpSuite 作为主要工具对我们如此有价值的原因是,我们可以快速地从侦察阶段进入测试的开发阶段,这样我们就可以验证我们的发现,而无需手动与外部工具协调。在本节中,我们将了解 Burp 的**Scanner、Intruder、Repeater、Sequencer**如何帮助挖掘漏洞工作列表,并帮助我们确定对目标的损害(或潜在损害)范围。一些笔式测试方法的问题在于,开发它们的人认为工具越多,结果越好。然而,我那些在小型公司或团队中有多年经验的同行发现,当使用完全集成的工具套件时,他们看到了更大的覆盖范围、更连贯的报告、更少的错误和心痛。您的里程可能会有所不同,但是在已经存在整合工具集的地方集成和操作一组工具可能是最适合大型笔测试团队的任务。
本节中的所有四个工具都可以从 Burp 中的几乎任何站点地图或菜单启动,而且很可能您过去使用过入侵者和中继器。我们将在这里对它们进行回顾,并提供一些建议,以便为您的测试部署它们。但是请记住–请记住�� 一些特定的攻击向量之后的有趣细节(Po.T0:SQL 注入,OT1,Po.T2,跨站点脚本,To3T3 和 Apple T4 请求 ToR.T5T,等等)将在后面的每一个主题的重点章节中被覆盖,BurpSuite 是我们用来追踪它们的工具之一。
Proxy和Spider有助于构建站点地图,但如何测试页面、表单等是否易受攻击?我们可以使用的最广泛的工具是打嗝****扫描仪毫无疑问,扫描器可以扮演一个非常积极的角色,在其积极模式下发起相当于对目标的攻击。出于这些原因,请确保您已经缩小了范围,并且清楚地知道您要释放 Burp Scanner 的主机,尤其是在使用主动扫描功能时。我确信,正是由于这些深远的影响,扫描仪才被保留为专业许可证。
如果您没有使用 Burp Suite Professional Edition,我仍然建议您了解 Scanner 的功能和价值,以帮助您证明其费用合理;但至少,提供一个条,您可以用它来测量您选择的扫描选项,无论是 Accunetix、w3af、ZAP 还是其他。
不管它值多少钱,不可能在一本大部头书中涵盖所有的替代品,同时还能写出一本有用的书。笔式测试,就像任何其他技术领域一样,可以看到同一问题的多种解决方案;与其他领域一样,选择的工具和使用的方法将根据用户的背景和熟练程度以及工作要求而有所不同。我鼓励您使用这里深入讨论的工具进行练习,并根据自己的需要考虑其他选择。
对进行常规笔试的同事进行的一项快速调查显示,尽管许多人特别使用打嗝套件和扫描仪,但大多数人并没有停下来思考每种工具在这一宏伟计划中的作用。快速回顾:扫描器的工作原理是获取在侦察阶段观察到的缓存请求,并对其进行修改,以测试底层代码中可能存在的公开漏洞。通过表达的行为,扫描程序可以验证漏洞的存在或不存在。在这许多操作的过程中,目标很可能会受到威胁,因此我们必须获得许可,了解其影响,并采取措施警告客户,并在任何测试证明对他们的姿态有害时保护服务器。
Burp 的扫描仪工具也不同于市场上的其他扫描仪,因为这些扫描仪通常同时爬行和扫描,Burp 扫描仪提供两种不同的模式:
- 被动模式:扫描仪通常以被动模式在后台工作,观察我们产生的流量,并实时评估请求和响应。为什么这是件好事?首先,它允许我们在需要对话框(凭证、表单条目等)时驱动扫描并与应用交互,从而进一步深入到应用的内部。其次,它不需要我们做任何工作——只需通过浏览器进行交互即可使用被动扫描模式。
- 主动模式:在主动模式下,扫描器既可以在您浏览网站时进行实时主动扫描,也可以通过上下文菜单手动启动扫描器,在通过向导进行一些配置后追踪应用页面或分支上的漏洞。
我们还应该注意,扫描器能够针对服务器端和客户端代码的已知漏洞进行测试;这是非常有用的,因为它允许我们向客户证明一份全面的报告,帮助他们全面了解应用的性能。
扫描仪的功能有助于将 Burp 与其他 DAST 工具区分开来,原因有三个:
- 使用其他工具时,服务器端漏洞的准确性可能会低得多,因为这些错误中的许多都是服务器端环境的本地错误,并且从未在客户端反映出来,因此避免了测试人员的检测
- Scanner 还将重点放在测试漏洞上,因为它可以很好地通过权威机构进行实际测试,这样就可以忽略那些在这里最多不准确发现的漏洞,以确保 Burp 的输出是可信的,并且没有误报
- 扫描器可以快速将数据透视到套件中的其他工具中(无需配置或传输数据),以便始终有其他可用路径
现在我们了解扫描仪的优点和职责,让我们来看看如何更有效地使用它。
很可能你们都在自己的工作中使用过扫描仪的这一方面,但为了防止它被关闭或配置错误,我们可以首先通过访问**Scanner选项卡的Live scanning**子选项卡来检查被动扫描是否打开,如图所示:
被动扫描配置为扫描所有流量。
要选择被动模式**Scanner扫描该流量的哪些方面,请访问Options**子选项卡并打开或关闭 11 个类别,如以下屏幕截图所示。我建议将它们全部选中,除非某个类别超出范围。被动扫描仅在您正在访问和与之交互的页面上实施,并且扫描造成附带损害的风险最小。
被动扫描可以观察大部分感兴趣的交通区域。
正如您在下面的屏幕截图中所看到的,被动扫描捕获了几个潜在的漏洞,并提供了问题和潜在补救步骤的解释,以及原始请求和相应的响应信息,包括标题、任何相关的 HTML 或 XML,诸如此类。对于一个不需要额外时间要求或资源的免费扫描来说,还不算太寒酸!
扫描仪的结果是描述性和完整的,并提供补救步骤。
如前所述,主动扫描是对目标的攻击。如果您发现意外或严重到需要立即向客户披露的情况,请确保您的目标、主动扫描和妥协的许可以及您的道德和法律责任。
与被动扫描非常相似,您可以首先通过访问**Scanner选项卡的Live Scanning子选项卡来检查是否打开了主动扫描。您可以选择停用它,使用目标范围甚至自定义范围来运行它。然后,您可以在Options**子选项卡上配置许多潜在的漏洞类型和引擎调整,如以下屏幕截图所示:
主动扫描选项涵盖引擎、优化和漏洞领域。
****Active Scanning Areas****部分允许您在已在其他工具集中涵盖的情况下取消选择漏洞类型。您还可以选择事件子集以集中于特定集合(在白盒测试中常见)或执行增量测试。
手动活动扫描可以遵循相同的路径,但由我们启动,而不是自动参与,如下面的屏幕截图所示。这可能是最好的折衷方案——所有活动扫描的功能,但只针对显式路径或页面。
手动活动扫描可以明确地集中在任何主机、页面或文件夹上。
在两种主动扫描技术中,扫描将被添加到**Scan Queue子选项卡中;当您确信已将足够多的活动操作排队时,您可以根据需要选择任意多个扫描,右键单击,然后继续扫描。子选项卡Scan Queue将报告所有进度(请参见以下屏幕截图),您将看到大量的资源需求,如您的Scanner**处理针对所有选定页面的迭代,以完全限定这些页面上的任何漏洞
针对所有排队操作的活动扫描进度。
**Scanner**的结果就是我们的目的(如下面的截图所示)。Burp 为我们提供了清单,每个清单都有描述和后续行动。
活动扫描结果显示在我们的指尖上,所有相关信息都在显示。
BurpSuite 还包括一些更为集中的工具,入侵者是一个允许一些严重的现场操作自动化的工具,这对于注射尝试和暴力攻击非常有用。入侵者是一个类固醇上的模糊分子。当我们发现一个 HTTP 请求看起来很适合任何此类攻击时,我们可以确定我们认为可以调整的字段(Burp 调用它们位置,然后让入侵者将 Burp 调用的有效负载应用于每一个字段,它们要么来自预先构建的列表,要么通过一些经过验证的算法生成。因为入侵者可以跨多个位置执行此操作,所以它为我们节省了大量时间,并提供了详尽的测试覆盖范围。
入侵者的多才多艺是一个巨大的帮助。它可以帮助我们披露账户名称(通常通过运行潜在列表和观察各种响应)。入侵者还可以应用这些技术来迭代每个帐户上的各种字段,例如地址、电话号码、社会安全号码、银行信息等,这些字段可能与用户的帐户或配置文件相关联。最后,为了确保我们能从该工具中得到我们所能得到的一切,入侵者也是一个功能齐全的漏洞搜索模糊程序,如注入攻击或输入验证问题。在我们自己的测试中,掌握入侵者的能力对我们来说是一个巨大的力量倍增器,幸运的是,它是一个非常简单的工具。
如果我们使用入侵者枚举单个字段,最常见的是用户名或帐户 ID,那么这个过程非常简单。我将尝试点击 Mutillidae 的登录页面(如下面的屏幕截图所示),看看我们是否能够找出我们可以挖掘的用户名类型。我会胡言乱语,只是为了在 Burp Proxy 中触发一个请求/响应对(截获处于打开状态),除非我真的很幸运,否则我会得到一个帐户不存在消息。
在这些字段中任何操作都可以启动,我们只需要查看请求!
在**Proxy选项卡和HTTP History子选项卡中,我可以看到我的Request,完成了我在单击发送之前填写的胡言乱语。我可以右击这个请求,如下图所示,然后点击Send to Intruder**来学习一些严肃的枚举功夫:
让我们将此请求发送给入侵者,以获得令人敬畏的枚举。
我们应该看到**Intruder标签的名字变成了橙色��这意味着一个新的入侵者请求已排队并准备好采取行动!在第一个选项卡(未显示)中,我们可以看到服务器的 IP 地址和端口已预填充。移动到Positions子选项卡,您将选择Sniper Mode;您需要清除所有字段(入侵者,可能会很有帮助,希望自愿猜测所有位置),然后只需选择用户名 gibberish 并单击Add,**,如以下屏幕截图所示。您会注意到,您添加的任何字段现在都将添加§在每个位置的开头和结尾(asdf现在显示为§asdf§,并用橙色突出显示。如果我们要尝试模糊漏洞扫描字段,我们会选择一个合适的位置(类似于 cookie 信息、帖子页面名称等)。这将给我们一个位置,我们可以调整有效载荷。如果我们希望暴力猜测凭证,我们可以添加第二个字段(密码),从而有两个位置应用有效载荷。很圆滑,是吗?
那么,这种模式到底意味着什么呢?好吧,这里有一个简短的概要:
- 狙击手:号使用一组有效载荷,入侵者只需依次将每个载荷插入该位置,然后报告。这对于一个简单的猜谜游戏或单场对焦来说是非常好的。
- 打击油缸:的这使用一组有效载荷,但同时将相同的有效载荷应用于多个字段。这是我们处理某些标题位置(如 cookies)时的首选模式。
- Pitchfork:的以后的模糊攻击可能会看到我们装备了相关信息,但需要同时对多个字段应用匹配集。Pitchfork 允许我们将那些匹配的集合(如凭证对、用户名和 ID 号等)发送到它们各自的字段。
- 集束炸弹:与 Pitchfork 不同,集束炸弹在其相关区域的每个组合中迭代多个有效载荷集。因此,如果您需要尝试一个用户名和一个 ID 列表,以及另一个用户名和所有这些相同的 ID,那么这就是适合您的模式!
有效载荷位置确定我们希望入侵者模糊的区域
现在,我们可以进入**Payloads子选项卡,如下面的屏幕截图所示,这允许我们决定如何根据每个请求更改每个位置。从字段类型的选择列表中,我们需要Simple list,然后我们可以从Add from list â�¦**下拉菜单中选择用户名。有关这些的更多信息,请访问上的杰出打嗝套件文档 https://portswigger.net/burp/help/intruder_payloads_types.html 。
在这里,社会工程和 OSIT 可以代替密码或用户名模糊中的单词列表,为您节省大量时间。
有效载荷可以生成、从文件中提取或手动输入。
现在,我们来看看这一切的结果是什么。Results选项卡将显示每次迭代的进展情况,可以根据负载本身进行排序,但最有用的是根据响应的状态类型(标准 web 状态)或长度进行排序,这两种方法都有助于识别任何我们应该仔细观察的奇怪行为。下面截图中的示例显示,用户列表非常平淡无奇,这意味着我们需要寻找非标准用户名,或者创建更详细或定制的列表来枚举用户。
在这个入侵者运行中,只有一个事件是突出的�� 一个开始探索的好地方!
我们将在本章中讨论的最后一个工具是 BurpSuite 的**Repeater**工具,其中入侵者允许您关注一个或多个字段并应用特定的有效负载集。Repeater 更关注应用字段修改以进行输入验证检查,甚至可以以不同的顺序回复请求以测试业务逻辑。
Repeater 是扩展套件中其他工具的一个很好的工具,就像其他工具一样,可以通过右键单击并选择**Send to Repeater选项来调用它,它将自动生成Repeater**任务选项卡(查看下面的屏幕截图)并预配置所有基本功能。
中继器允许我们接收我们捕获的请求并使用它。
收到消息后,我们可以决定如何修改每次迭代中的任何或所有字段,然后修改这些字段的部署顺序,如以下屏幕截图所示:
中继器使我们能够很好地控制以任何顺序对变量的任何组合进行排队。
Repeater 非常简单,真的。但是我们自己制作事件重播的能力对以后基于业务逻辑的攻击非常有帮助,我们将在后面的章节中讨论这些。
OWASP 的 ZAP 工具和 BurpSuite 构成了许多 web 应用安全测试方法的主体,这是有充分理由的。基于代理的工具能够观察客户端和服务器之间的事务,而不必担心丢失会话信息的上下文。因此,代理可以做外部分析无法做的事情,即查看端到端的应用工作。当我们看到攻击者通常如何破坏或利用现代应用时,他们使用这些相同的技术来来回捕获数据或插入自己的恶意意图。ZAP 和 Burp 为我们提供了一种方法,可以先发制人地使用 MITM 方法,并针对这些攻击对应用进行全面测试。
在本章中,我们介绍了用于这两个包的一些更通用的工具。我希望在基金会上的投资将帮助我们在后面的章节中完成许多更高级的任务,而不必重述这里所包含的基础知识。练习钢笔测试员的最佳方法是练习。使用空间中许多可用的易受攻击的目标 VM,您可以解决问题,并确定哪些工具最适合您的风格和流程
在下一章中,我们将深入了解第一次集中攻击的细节�� 跨站点脚本(或XSS)。我们还将讨论 XSS 的各种形式**、的目标以及最适用的地方。我们还将了解如何使用 Burp 和一些辅助工具(如牛肉**、XSSer、Webspoit和Metasploit等)执行这些攻击。这是公平的假设,我们会做一些有趣的事情,所以抓紧!****






























