常见漏洞验证121 条

存储型 XSS 验证

数据被持久化后在其他页面渲染且未编码时构成存储型 XSS;用唯一标记跟踪全部渲染点,覆盖前台与后台界面。

存储型 XSS 验证

存储型 XSS 指用户提交的数据被持久化保存,之后在其他页面渲染时未做编码,脚本随页面加载自动执行。它比反射型更危险:无需诱导点击特定链接,任何访问该页面的用户都会中招,影响范围随渲染点扩散。验证方法是用专用测试账号提交一个唯一标记串,然后在所有可能出现该数据的地方检索它——列表页、详情页、搜索结果、导出文件、邮件通知、后台管理界面——逐个判断渲染位置是否做了编码。凡是数据被存储后又展示的地方都要覆盖,前后台都不能漏。

基本信息

风险类型跨站脚本(存储型),CWE-79
高风险字段昵称、评论、工单、备注、地址、文件名
渲染点列表、详情、搜索、导出、邮件通知、后台管理
验证方法用专用测试账号提交唯一标记串,逐点检索
清理要求测试数据要可识别、可删除,结束前清理

典型使用场景

  • 用户资料:昵称、签名、地址等在多处展示的字段
  • 工单与客服:工单内容、回复、备注进入后台界面
  • 评论与留言:前台展示且常进入管理审核列表
  • 文件名:上传文件的名字在列表与预览页展示
  • 日志与通知:数据进入邮件模板或消息通知后渲染

验证步骤

验证步骤
1. 用专用测试账号提交唯一标记串
2. 在前台与后台多个渲染点检索标记
3. 找到未编码渲染位置,记录数据流(入口到存储到渲染)
4. 判断上下文类型,给出对应修复建议
5. 测试结束清理数据,并在报告注明清理情况

渲染点与风险

渲染点典型位置关注点
前台列表首页、搜索结果数据被批量渲染,影响面最大
详情页内容详情、个人主页直接展示用户输入
后台管理审核列表、用户管理常被忽略,管理员会话权限高
导出文件Excel、CSV、PDF 导出上下文不同,转义规则也不同
邮件通知站内信、邮件模板HTML 邮件同样存在执行风险
修复视角:输出编码加富文本白名单过滤(保留安全标签属性)双管齐下;只做输入过滤容易在展示环节失效。
测试数据未清理会形成长期注入痕迹,也可能被其他用户看到;测试内容要可识别,结束前务必删除并在报告注明。

易错点

  • 只测一个页面,漏掉后台管理、导出与邮件通知场景
  • 测试数据未清理,形成长期注入痕迹并被其他用户看到
  • 只做输入侧过滤判断,忽略输出编码才是该类漏洞的关键修复点
  • 用真实用户账号提交测试数据,影响他人并可能触发对外通知

数据来源与参考

  • OWASP WSTG WSTG-INPV-02
  • OWASP XSS Prevention Cheat Sheet
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌