技术文章

了解最新技术文章

当前位置:首页>技术文章>技术文章
全部 15 常见问题 0 技术文章 15

Crawling介绍

时间:2023-09-25   访问量:1100

爬行阶段通常是扫描的第一部分。在爬网阶段,Burp Scanner会在应用程序中导航。它跟踪链接、提交表单并在必要时登录,以对应用程序的内容和导航路径进行编目。

虽然这个过程最初看起来很简单,但现代 Web 应用程序的设计意味着爬虫需要应对诸如易失性内容、会话处理技术、应用程序状态变化以及强大的登录机制等挑战,以创建应用程序的准确地图。

核心方法

默认情况下,爬虫使用 Burp 的浏览器在应用程序中导航。Burp Scanner 以有向图的形式构建应用程序的地图,它表示应用程序中的不同位置以及这些位置之间的链接。

处理 URL 结构

Burp Scanner 根据位置内容来识别位置,而不是用于访问这些位置的 URL。这使其能够可靠地处理将临时数据(例如CSRF令牌或缓存破坏程序)放入 URL 中的现代应用程序。即使每次访问链接时每个链接中的整个 URL 都会发生变化,Burp Scanner 也能够构建应用程序的准确地图。

具有随时变化的临时 URL 的应用程序

这种方法还使 Burp Scanner 能够根据应用程序的状态和用户的交互来处理使用相同 URL 到达多个位置的应用程序。

根据应用程序的状态或用户与其交互,使用相同 URL 到达不同位置的应用程序

当 Burp Scanner 在目标应用程序周围导航时,它会跟踪有向图中尚未完成的边。这些代表爬虫已观察到但尚未访问的链接和其他导航转换。

爬网程序在爬网时绝不会“跳转”到挂起的链接并断章取义地访问它。相反,它要么直接从当前位置导航,要么恢复到起始位置并从那里导航。此行为尽可能地复制人类用户的操作。

恢复到爬网的起始位置

避免内容过多

不对 URL 结构做出假设的爬行是处理现代 Web 应用程序的有效方法。但是,它可能会导致扫描看到太多内容。现代网站通常包含许多多余的导航路径(例如,通过页面页脚或汉堡菜单),它们有效地将网站上的所有内容链接到其他所有内容。Burp Scanner 采用多种技术来解决此问题:

这些措施还有助于处理“无限”应用程序,例如日历。

会话处理

Burp Scanner 能够自动处理几乎任何会话处理机制。无需录制宏或配置会话处理规则即可获取会话或验证当前会话是否有效。

爬网程序在导航时发出的请求是根据先前的响应动态构建的。这使得 Burp Scanner 能够自动处理 URL 或表单字段中的 CSRF 令牌,以便它可以导航使用复杂会话处理的功能,而无需额外配置。

在爬网期间自动处理会话令牌

检测应用程序状态的变化

现代 Web 应用程序具有很强的状态性,相同的应用程序功能通常会因用户的操作而返回不同的内容。Burp 的爬网程序检测爬行期间其操作导致的应用程序状态变化。


在下面的示例中,导航路径BC会导致应用程序从状态 1 转换到状态 2。链接D在状态 1 中转到的位置与在状态 2 中的位置在逻辑上不同。因此,路径AD转到空购物车,而ABCD转到到已填充的购物车。

Burp Scanner不仅能够得出链接D不确定性的结论,还能够识别链接所D依赖的状态更改路径。这使得爬网程序将来能够可靠地到达填充的购物车位置,以访问那里可用的其他功能:

检测爬网期间应用程序状态的变化

认证扫描

当 Burp Scanner 抓取目标应用程序时,它会尝试覆盖尽可能多的应用程序的攻击面。经过身份验证的扫描使 Burp 能够爬取需要登录才能访问的特权内容,例如用户仪表板和管理面板。

爬虫可以通过两种方式向目标应用程序进行身份验证:

每次扫描只能使用一种身份验证方法。如果您输入登录凭据以及记录的登录序列,Burp Scanner 会忽略登录凭据。

应用程序登录凭据

Burp Scanner 从未经身份验证的阶段开始爬网,在此阶段不提交任何凭据。这使其能够发现应用程序内的任何登录和自注册功能。

笔记

有关 Burp 如何识别登录和自我注册表单的更多信息,请参阅识别登录和注册表单

如果应用程序支持自注册,Burp Scanner 默认情况下会尝试在此时注册用户。

如果启用触发登录失败扫描配置设置,Burp Scanner 还会尝试向站点提交虚假凭据。尽管这些凭据不能用于登录,但它们仍然可能达到有趣的功能,例如帐户恢复机制。


接下来,Burp Scanner 尝试进行经过身份验证的爬网。它多次访问登录功能并尝试使用以下方式登录:

Burp Scanner 依次使用每组凭据登录,并爬取登录机制背后的内容。这使得系统能够捕获不同类型用户可用的不同功能。

使用不同的登录凭据进行爬网以访问不同用户可用的不同功能

爬取挥发性内容

现代 Web 应用程序经常包含易失性内容,其中相同的位置或函数在不同的场合返回不同的响应,不一定是任何用户操作的结果。这种行为可能是由社交媒体源、用户评论、内嵌广告或真正随机的内容(例如当天的消息或 A/B 测试)等因素造成的。

爬虫可以识别许多易失性内容的实例。然后,尽管响应有所不同,但它可以在不同的访问中重新识别同一位置。这使得系统能够将注意力集中在一组应用程序响应中的核心元素上,以发现应用程序内容和功能的关键导航路径。

识别HTML页面的核心元素,以及在不同场合变化的可变内容

在某些情况下,在不同场合访问链接会返回不能视为相同的响应。在这种情况下,Burp Scanner 将响应的两个版本捕获为两个不同的位置,并在图中绘制非确定性边缘。只要爬行中没有太多非确定性实例,Burp 通常仍然可以找到位于非确定性链接后面的内容。

当应用程序响应有时不确定时进行爬网

使用Burp的浏览器进行爬行

默认情况下,Burp Scanner 使用嵌入式 Chromium 浏览器来导航您的目标网站和应用程序(如果您的计算机支持)。这使得 Burp Scanner 能够处理大多数客户端技术。

浏览器驱动的扫描的主要优点之一是能够有效地抓取包含大量 JavaScript 的内容。一些网站使用 JavaScript 动态生成导航 UI。尽管此内容不存在于原始 HTML 中,但 Burp Scanner 可以使用浏览器加载页面,执行构建 UI 所需的任何脚本,然后继续正常爬行。

这还使 Burp Scanner 能够处理网站异步构建和发送请求或使用 JavaScript 响应文档事件的情况。

例如,网站可能会在事件发生后使用 JavaScript 构建表单提交请求onsubmit,并将生成的 CSRF 令牌添加到参数中。浏览器还使爬网程序能够与 JavaScript 事件处理程序可点击的元素进行交互,否则不会被识别为导航元素。

要在扫描配置中手动启用或禁用浏览器驱动的扫描,请转至爬网选项 > 其他

查看爬行路径

Burp Suite Professional中,您可以从“目标”>“爬网路径”选项卡实时监控扫描的爬网阶段此选项卡显示爬网程序为到达目标站点中发现的每个位置而采取的操作,以及在这些位置中发现的任何问题。

目标> 爬网路径选项卡显示当前项目中所有常规非隔离扫描的组合路径信息。您运行的任何新的非隔离扫描都可以利用并添加到此选项卡中显示的信息中,从而使 Burp Scanner 在您运行更多扫描时能够更有效地进行爬网。


上一篇:使用 Burp Repeater 重新发出请求

下一篇:Burp Scanner 采用多种技术来准确审核目标应用程序

发表评论:

评论记录:

未查询到任何数据!

在线咨询

点击这里给我发消息 售前咨询专员

点击这里给我发消息 售后服务专员

在线咨询

免费通话

24小时免费咨询

请输入您的联系电话,座机请加区号

免费通话

微信扫一扫

微信联系
返回顶部