原创 K 2025-08-18 17:00 上海
Web应用漏洞检测新突破:基于导向式模糊测试的高效漏洞检测技术
近年来,随着Web应用的广泛部署和复杂性不断增加,Web应用安全问题日益凸显。传统的模糊测试技术在面对Web应用庞大的参数搜索空间和复杂的语义约束时,往往效率低下且漏洞检测能力有限。为了解决这一挑战,我们团队设计了一种创新的Web应用导向式模糊测试工具WDFuzz,在漏洞检测效率和准确性方面取得了显著突破。
成果亮点
团队最新研究成果《Effective Directed Fuzzing with Hierarchical Scheduling forWeb Vulnerability Detection》针对传统模糊测试在Web应用场景下面临的参数搜索空间庞大、语义约束复杂等关键挑战,提出了创新性的解决方案WDFuzz。WDFuzz在开源和闭源数据集上的实验验证中表现优异:已知漏洞重现率达92.6%,发现92个零日漏洞,漏洞类型涵盖远程代码执行、SQL注入、任意文件读写等高危漏洞类型,且发现漏洞的效率相比现有工具提高7.1倍。发现存在漏洞的应用包括服务大量企业客户的闭源商业Web应用,以及多个Star数超过1万的流行开源应用,获得19个漏洞编号。
研究背景
Web应用的安全现状
Web应用作为数字化时代的关键基础设施,承载着电子商务、在线服务、企业办公等各种重要功能。然而,Web应用的复杂性和开放性也使其成为网络攻击的重要目标。传统的安全检测方法,如静态分析和动态分析,虽然在一定程度上能够发现部分漏洞,但在面对现代Web应用的复杂架构时,往往存在误报率高、覆盖率低等问题。模糊测试作为一种有效的漏洞挖掘技术,近年来在Web应用安全检测领域受到广泛关注。
传统模糊测试的局限性
然而,将传统的模糊测试技术直接应用于Web应用时,面临着诸多挑战:
搜索空间巨大:Web应用通常包含大量的输入参数,形成了庞大的搜索空间
语义约束复杂:Web应用中存在大量具有特定格式要求的输入,如邮箱地址、日期时间等
嵌套结构处理困难:Web应用中广泛存在的键值对嵌套结构增加了测试复杂度
测试效率低下:盲目的随机测试往往难以触达深层的漏洞代码,且Web应用执行效率远低于二进制程序,难以进行大量随机测试
技术创新
01
导向式模糊测试策略
我们的研究首先基于一个重要观察:Web应用中仅有少部分代码与漏洞相关。基于这一洞察,我们提出了基于导向式模糊测试的思想,通过静态分析技术识别出能够触发漏洞的关键代码路径,将测试资源集中投入到这些高价值目标上,从而显著提高漏洞检测效率。
此外,我们发现不同的Web入口和漏洞位置触发漏洞的难易程度存在显著差异。为此,我们设计了一种创新的分层调度策略,综合考虑目标URL、目标漏洞位置和种子请求三个维度,实现了智能且高效的测试资源分配。
02
语义感知的参数处理
针对Java Web应用中复杂的参数结构和语义约束问题,我们提出了两个关键创新:
首先,我们充分利用了Java Web应用广泛使用框架开发的特点,通过分析主流Web框架(如Spring、Struts等)的开发模式,能够全面、准确地提取应用的入口点、参数结构和潜在漏洞位置。
其次,我们发现Java Web应用往往基于特定模式处理用户输入参数,因此可以通过分析漏洞路径上的API操作序列,自动解析和还原参数的结构信息和语义约束,为模糊测试提供更加精准的指导。
技术架构:
WDFuzz系统设计
路径敏感的参数结构提取
我们发现Java Web应用广泛使用Web框架进行开发,这为我们提供了全面提取入口点、参数和潜在漏洞位置的机会。通过深入分析Web框架的开发模式,WDFuzz能够:
精确解析Web应用入口:自动识别所有可能的攻击入口点
提取参数结构信息:解析参数间的嵌套关系和依赖关系
定位潜在漏洞位置:基于静态分析识别高风险代码区域
语义约束提取
针对Java Web应用基于特定模式处理用户输入参数的特点,WDFuzz设计了基于API操作序列的语义约束提取技术:
API序列分析:通过静态分析分析提取漏洞路径上的API操作序列,供后续提取
约束使用参数结构还原:基于操作参数结构的API序列,自动还原JSON等复杂、嵌套的参数结构关系
语义约束信息提取:基于API序列识别参数的格式要求和业务逻辑约束,精确提取各类语义约束条件
树状结构的种子生成
基于提取的参数结构和约束信息,WDFuzz采用一种基于树状结构的初始种子生成机制,为模糊测试提供高质量的起始输入,大幅提升测试覆盖率和效率。
分层调度的导向策略
WDFuzz设计了一种多层次的调度机制,基于Web入口的参数复杂度、到潜在漏洞位置的距离、种子的历史调度情况等关键指标和要素,逐层选择最有可能触发漏洞的Web入口点、漏洞位置和种子请求:
Web入口点调度:根据不同Web入口点的漏洞风险评估,优先测试高风险入口
漏洞位置调度:基于静态分析结果,重点关注容易触发漏洞的代码位置
种子调度:选择最有潜力的种子请求进行进一步变异
这种分层调度策略不仅优先测试最有可能产出漏洞的测试用例,从而大幅度提高漏洞检测效率,还能够根据预期想要到达的漏洞位置,指导变异策略选择变异的参数,进一步压缩搜索空间。
实验验证:
卓越的Web漏洞检测能力
数据集与对比基准
为了全面评估WDFuzz的效果,我们在具有代表性的包含开源应用和闭源商业应用的数据集上进行了实验:
开源应用:包括12个GitHub上Star数超过2000的流行Java Web项目
商业应用:覆盖3款服务大量企业客户的闭源商业Web应用
已知漏洞测试集:上述应用中的68个历史已知漏洞
检测成果
通过在开源和闭源数据集上的全面测试验证,WDFuzz在多个关键指标上均取得了显著优势。其中,已知漏洞重现率高达92.6%,相比现有SOTA工作提高3.2倍,漏洞发现效率相对现有工作提高7.1倍。新发现零日漏洞数92个,获得CVE和CNVD编号共19个,涵盖远程代码执行、SQL注入、任意文件读写等高危漏洞类型。这些发现充分验证了WDFuzz在实际Web应用漏洞检测场景中的有效性和实用价值。
第一作者
林紫涵,系统软件与安全实验室22级博士生,本硕毕业于厦门大学。主要研究方向为Web应用漏洞的检测和防护技术。目前在USENIX Security等网络安全顶级会议发表高水平学术论文,发现零日漏洞百余个,研究成果在工业界落地取得良好效果。
- END -
供稿:林紫涵
排版:K
责编:邬梦莹
审核:张琬琪、洪赓、林楚乔
复旦白泽战队
一个有情怀的安全团队
还没有关注复旦白泽战队?公众号、知乎、微博搜索:复旦白泽战队也能找到我们哦~
