路径级持久化模糊测试: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?

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

相关推荐
Demons_kirit7 小时前
CTFHub 信息泄露通关笔记:Git泄露 Log - 教程
笔记·git·网络安全
苏能润滑油油液文哥8 小时前
储能液冷安全边界解析:从热失控链条看冷却液的介入区间与选型指标
安全
Rocky Ding*8 小时前
深入解析GPT-6 Astra提示词工程:从Skills、AGENTS.md到可验证的Agent交付
论文阅读·人工智能·深度学习·机器学习·aigc·ai-native·提示词工程
小天源8 小时前
从 Nginx 日志到访问分析:轻量化网站监测服务的架构实践
jvm·nginx·网络安全·架构·网络监控
Lcr3s9 小时前
我的DVWA靶场实践_Low难度
安全
江润舟9 小时前
万物|炼器:从零手搓工业级旋转目标检测网络·卷5 —— YAML蓝图与parse_model动态引擎(一)
人工智能·深度学习
亚远景aspice9 小时前
亚远景-低空经济与具身智能:具身智能飞行器量产落地,过程合规与安全体系怎么搭
人工智能·安全·过程改进·低空经济·研发管理·亚远景科技·过程能力评估
EasyGBS9 小时前
水域乱象难管控?国标GB28181视频平台EasyGBS视频+AI双引擎赋能河湖监管
深度学习·安全·gb28181
万年咸鱼10 小时前
HTTPS 是如何保证传输安全的?
网络协议·安全·https
JackieDYH10 小时前
深入理解iframe的allow属性与安全实践-iframe权限点
安全