摘要:黑盒漏洞扫描器是用于Web应用漏洞检测的重要辅助工具, 能够在Web应用正式上线前有效识别潜在的安全威胁, 从而提升Web应用的整体安全性. 当前大多数黑盒扫描器主要通过模拟用户操作和正则匹配来收集攻击面. 然而, 模拟用户操作容易被输入验证机制拦截, 且难以处理复杂的事件操作, 而正则匹配方法无法有效处理动态内容. 这导致扫描器难以有效处理JavaScript代码中的隐藏攻击面和动态生成的攻击面, 使其在部分Web应用中漏洞检测效果不佳. 为解决上述问题, 提出一种基于JavaScript代码分析的漏洞扫描器增强框架JSEScan. 该框架结合静态与动态代码分析技术, 绕过表单验证和事件触发的限制, 通过提取JavaScript代码中攻击面的特征, 实现JavaScript代码中攻击面的挖掘, 并且攻击面将被同步至多种扫描器, 从而增强其漏洞检测能力. 实验结果表明, JSEScan能将单个扫描器的代码覆盖量提高81.02%–242.15%, 并且相比于多扫描器同时工作的情况, 额外发现239个安全漏洞, 具备更强的攻击面收集能力和漏洞检测能力.