Burp的当前扫描仪可以报告各种各样的扫描仪基于DOM的漏洞使用静态分析技术。

JavaScript的静态分析涉及解析代码以构建抽象语法树,识别受污染的源和危险的汇,以及定位可能的数据流过代码,以识别可以从源从源传播到接收器的路径。

Burp的新扫描仪正在获得梦幻般的新功能。它将执行JavaScript的动态分析,以可靠地发现基于DOM的漏洞。

安全测试的静态和动态方法具有不同的固有优势和缺点:

  • 静态分析(SAST)能够找到动态分析未命中的一些漏洞,因为它可以识别可能在合适的情况下执行的代码路径,但其实际上是由动态分析执行的。然而,静态分析本质上是易发的误报和噪声,因为它在实际上看到了一些代码路径可能是可执行的,因为它未能了解自定义数据验证逻辑,这意味着从源到下沉的源污染路径不在事实可利用。
  • 动态分析(达斯的)具有相反的特征。它不太容易出现误报,因为如果它实际观察到在执行期间从源传播的合适的数据,那么这是漏洞的具体证据。但是,它可以在其污染数据由于应用程序的当前状态或其他数据的值而无法达到水槽的情况下遭受错误的否定,其中攻击者实际上可以控制。

Burp对JavaScript的新动态分析使用了嵌入式无头浏览器。它将HTTP响应加载到浏览器中,将有效载荷注入到攻击者可能可控的位置的DOM中,并在响应中执行JavaScript。它还通过创建鼠标事件以实现尽可能多的代码覆盖来与页面进行交互。它监控可用于执行攻击的危险汇,以识别到达那些汇款的任何注入的有效载荷。

新的JavaScript分析已经在开发了很多月份,在此期间我们已经测试了众多错误赏金网站,并发现任何现有工具都找不到的可利用漏洞。所以我们知道它有效:


但它变得更好。新扫描仪仍然执行其旧式静态分析,并利用两种方法的联合益处。它将两种技术的结果相关联,以及可用的地方呈现两种类型的证据。这些问题可能被视为岩石固体结果,并报告为肯定。在只有静态分析可以检测到潜在问题的情况下,Burp将报告问题的信心降级。这种综合的JavaScript分析方法很大程度上有助于审查结果以找到最重要的问题的测试人员。