路径级持久化模糊测试:XSSky 如何精准击破 XSS 漏洞

" 跨站脚本攻击(XSS)长期以来都是PHP** Web 安全领域最顽固、最常见的漏洞类型之一。现有检测技术主要分为两类:动态分析能够生成 PoC,但覆盖率不足;静态分析覆盖全面,但严重依赖 sanitizer 建模,易产生误报与漏报。那么,是否可以融合二者优势,在保证覆盖率的同时提供可验证的漏洞证明?研究者提出了一个全新的解决方案:XSSky,一种基于路径持久化模糊测试的 XSS 漏洞检测框架。 "**

  • 📄 论文标题:XSSky: Detecting XSS Vulnerabilities through Local Path-Persistent Fuzzing

01---方法介绍

根据OWASP可以将sink上下文分为四种主要类型,如图1所示。

图1. 每种sink上下文类型的示例

XSSky的核心思想非常清晰:利用静态分析定位 source-sink 路径,再对每条路径进行"本地化、持久化、上下文敏感"的模糊验证。

整体流程可以概括为三步:

① 路径定位

基于静态分析工具获取潜在 source-sink 路径。

② PUT 构建

将路径转换为可独立执行的 Program Under Test(PUT)。

③ 路径持久化模糊

针对该路径进行上下文感知 fuzzing,验证是否可构造有效 PoC。

图 2. Dolibarr(5.5k stars)中发现的一个持续存在的XSS漏洞示例;已于2022年6月13日完全修复

小结:不再"盲目探索整个程序",而是"精准围绕单条路径验证漏洞存在性"。

02---关键机制

  1. 路径持久化模糊测试(Path-Persistent Fuzzing), 只围绕目标 source-sink 路径执行,避免无关代码干扰。
  2. PUT 本地化转换策略, 自动补全未定义变量与函数,解决静态路径不可执行问题。
  3. Sink 上下文感知 Exploit Grammar, 针对 HTML、URL、Attributes、JS 四类上下文设计专属攻击模板。
  4. 基于 PHP 解释器的反馈引导, Hook preg_replace 等函数,精准定位 sanitizer 拦截字符。
  5. Sanitizer 可绕过验证机制, 不依赖建模假设,直接通过输入构造验证漏洞存在。
模块 设计思路 作用
PUT 转换模块 补全未定义变量与函数 生成可独立执行的局部代码片段
路径持久化 Fuzzing 避免探索无关路径 提升模糊效率与吞吐率
Sink 上下文分析 运行时 DOM 解析 识别 HTML / URL / JS 等上下文
解释器反馈机制 Hook PHP 字符串函数 精准识别 sanitizer 拦截位置
自动化漏洞判定 Selenium 监听弹窗 生成可验证 PoC

小结:XSSky 通过"路径级执行 + 解释器级反馈",构建了一个可证明漏洞存在性的检测框架。

03---实验结果

XSSky的路径定位阶段在复用TChecker 的基础上修改其提前终止策略,使其能够完整报告包含净化器的潜在易受攻击路径;PUT转换阶段基于代码属性图(CPG)开展分析;模糊测试阶段实现了汇点上下文分析、变异策略与模糊测试流程以及错误预言机等关键模块。数据集包含20个流行的PHP Web应用程序,主要实验结果如下。

(1)实验通过PUT模糊测试评估了XSSky在检测数据集中的XSS漏洞方面的有效性,结果如表1所示。总体而言,确认60/74(81.08%)的报告确实为跨站脚本(XSS)漏洞。

表1. 评估数据集的细分以及XSSky检测到的XSS漏洞

(2)实验比较了XSSky与两种基线方法(静态检测器和动态测试器)在检测XSS漏洞方面的有效性,实验结果见表2。XSSky在检测XSS漏洞方面优于多个基线方法,其精确度提高了11.48% ~642.49%,召回率提高了87.51% ~172.70%。

表2. XSSky与SOTA技术之间的有效性对比。

(3)实验通过在数据集上进行端到端分析评估了XSSky的效率。实验结果见表3。总体而言,XSSky花费了平均3.74小时从数据集中检测目标应用程序的XSS漏洞。在路径定位模块中,每个应用程序的平均时间约为0.56小时;PUT转换模块是一项相对耗时的任务,平均每个应用程序需要2.72小时。PUT Fuzzing模块,在目标应用中测试所有PUT平均耗时0.46小时。

表3. XSSky分析每个应用程序的性能按不同模块细分,包括平均值、中位数和中位数绝对偏差(MAD)。

**小结:**XSSky将静态分析器识别出的source---sink路径转换为可在本地执行的PUT,并采用一种由PHP解释器反馈引导的路径保持式模糊测试策略。该设计避免了繁琐的净化器建模过程,同时增强了静态检测器识别存在缺陷净化器的能力。

📌 总结

XSSky 的真正突破在于:它不再假设 sanitizer 是安全的,也不依赖复杂建模,而是用"路径级 PoC 生成"直接证明漏洞存在。这种"静态定位 + 局部动态验证"的混合范式,为 Web 漏洞检测提供了一种全新的工程化思路。

📣 欢迎留言讨论

  • 你认为路径级 fuzzing 是否可以推广到 SQL 注入或 SSTI 检测?

  • 解释器反馈机制是否可以扩展到其他语言(如 Node.js / Python?

📌 点赞 + 收藏 + 分享,你的支持,是我们持续解析高水平软件安全论文的最大动力!

相关推荐
AndrewHZ1 小时前
【LLM技术全景】多模态大模型:当语言模型学会“看“和“听“
人工智能·gpt·深度学习·语言模型·自然语言处理·llm·多模态
湘美书院--湘美谈教育1 小时前
湘美谈教育互联网逻辑:AI时代的社会学猜想
大数据·人工智能·深度学习·机器学习·生活
老孙讲技术2 小时前
做过安防后端的人都懂:别把「云录像留证」和「告警外呼叫醒」拆成两套台账——分层搭重大事件触达
物联网·安全
zzq77973 小时前
Android 风险识别机制实测:从录屏悬浮窗到远程控制的边界评估
android·安全·安卓·app加固·御盾安全
m沐沐4 小时前
【深度学习】循环神经网络RNN——结构、原理与长期依赖问题解析
人工智能·pytorch·python·rnn·深度学习·算法·机器学习
IT小白杨4 小时前
指纹浏览器安全架构技术评测与API自动化能力对比
经验分享·安全·自动化·业界资讯·安全架构·指纹浏览器
Chengbei114 小时前
云安全漏洞挖掘SKILL、一站式云漏洞挖掘工具,支持S3爆破、IMDS探测、K8s检测与AK/SK权限利用
前端·人工智能·网络安全·云原生·容器·kubernetes·系统安全
MartinYeung55 小时前
[论文学习]The Instruction Hierarchy:训练LLM优先处理特权指令
人工智能·深度学习·学习
饼饼学习空间智能5 小时前
Kimi K3发布后,为什么数字孪生与物理AI底座更重要?从3D智能到具身智能落地
人工智能·深度学习·3d
hz567895 小时前
应急管理部门跨部门会商用什么系统?指挥调度视频会议方案解析
网络·安全·音视频·实时音视频·信息与通信