漏洞检测与利用

在完成对目标应用程序的信息收集和分析以及任何必须的 Burp 配置之后,您可以开始测试应用程序中常见的漏洞。在这个阶段,通常最有效的方法是同时使用 Burp 的多个组件,在不同组件之间传递个别请求以执行不同的任务,并返回浏览器进行一些测试。 在 Burp 中,您可以使用菜单在组件之间传递项目,并执行其他操作。

在 Burp 的默认配置中,它会自动对通过代理的所有请求和响应执行实时的被动扫描。因此,在您开始探测应用程序之前,您可能会发现 Burp 的 Scanner 组件已经记录了一些值得进一步查看的信息。

Burp 的组件可以以许多不同的方式使用,以支持主动测试漏洞的过程。下面针对不同类型的问题描述了一些示例:

  • 输入点上可能存在的漏洞 - 对于 SQL 注入,XSS 和目录遍历等漏洞,您可以通过以下方式使用 Burp 来发现这些问题:

    • 您可以使用 Burp 的 Scanner 组件执行主动扫描。您可以在 Burp 中的任何位置选择某个项目,并使用上下文菜单来开启手动扫描。 或者,您可以配置 Burp 对通过代理的所有范围内请求进行实时的主动扫描
    • 您可以使用 Burp 的 Intruder 组件来执行模糊测试,其中的测试字符串和有效载荷位置由您设定。
    • 您可以使用 Burp 的 Repeater 组件发送单个的HTTP(HTTPS)请求,手动修改此次请求并重新发出请求。
    • 对于已经识别了类型的漏洞,你可以使用 Intruder 组件来测试该漏洞。 例如,您可以使用递归grep功能来测试 SQL 注入漏洞。
  • 逻辑和设计缺陷 - 对于使用不安全的客户端控件,不能强制让帐户退出的,以及多个阶段流程中的跳过了关键步骤的缺陷,您通常需要手动操作来发现这些缺陷:

    • 对 Proxy 组件的历史记录,您需要仔细的审查其中的请求,提取出来关键的一些请求。
    • 您可以通过使用 Repeater 组件单独发出这些关键请求来探测应用程序处理意外方式,也可以在使用浏览器时打开代理拦截并手动更改HTTP(HTTPS)请求。
    • 您可以使用 Intruder 组件来测试多处的逻辑和设计缺陷。例如,Intruder 可用于枚举有效的用户名,猜测密码,爆破可预测的会话令牌或密码恢复令牌,或者甚至简单又粗暴的发出大量相同的请求(使用空有效载荷)。
    • 在确认了逻辑或设计上的缺陷点之后,可以通过使用 Proxy 组件的匹配/替换功能会话处理规则来以系统方式更改请求,从而发现更多的功能。
  • 访问控制问题 - Burp 包含几个功能,可以帮助测试访问控制漏洞时:

    • 您可以使用比较站点地图功能完成各种任务,包括:识别出来某个用户可见,但另一个用户不可见的功能;测试低特权用户是否可以访问应该限制为较高特权用户才可以访问的功能;以及发现特定的用户标识符在哪里被用于隔离相同类型的两个用户对数据的访问。
    • 您可以使用不同的浏览器登录不同的账户来访问应用程序,并为每个浏览器使用单独的代理(Proxy)侦听器(使用不同的端口)。然后,您可以打开代理历史(Proxy —> HTTP history)窗口(通过上下文菜单),并在每个窗口上设置显示过滤器,以显示在特定侦听器端口上接收的项目。当您在不同的浏览器中使用应用程序时,每个侦听器的历史记录窗口将仅显示关联的用户上下文的项目。然后,您可以使用”使用当前会话在浏览器中请求”功能(通过上下文菜单)在浏览器之间切换请求,以确定程序如何在不同的浏览器、不同的用户上下文中处理它们。
    • 当应用程序在请求参数中传递用户标识符时,会出现许多特权提升的漏洞,并使用该漏洞来标识当前用户上下文。您可以通过使用 Intruder 组件以适当的格式(例如,使用数字自定义迭代器等有效内容类型)循环访问标识符并配置 Grep-Extract 项以从应用程序的响应中检索您感兴趣的用户的特定数据,从而更好的利用此类型的漏洞。
  • 其他漏洞 - Burp 包含的功能可用于自动化探测大部分可能存在的漏洞。例如:

    • 您可以查看 Target 组件的站点地图来寻找内容信息泄漏等问题,使用搜索查找注释功能来帮助您更好的获取这些信息。
    • 识别了可能存在的 CSRF 漏洞后,您可以使用 CSRF 生成器在HTML 中快速创建并验证攻击,然后使用”在浏览器中测试”功能将设定好的攻击载荷加载到浏览器中,然后查看浏览器处理结果和 Porxy 的历史记录来验证攻击是否成功。
    • 您可以使用 Sequencer 组件来分析来自应用程序的会话令牌,并估计它们的随机性是否符合要求。
    • 对于某些加密会话令牌或其他参数的类型,您可以使用 Intruder 组件中的位翻转器ECB块打乱来对其中的有效内容类型进行盲改加密,以尝试更改应用程序处理的解密数据。
    • 您可以编写自己的自定义 Burp 扩展来执行更专业或是自定义的任务。

本节英文原版地址:
https://portswigger.net/burp/help/suite_usingburp.html#vulns