# XSS 跨站脚本:原理、利用链与完整防护|红蓝对抗演练视角 > 核心一句话:**XSS(Cross-Site Scripting),把恶意JS代码注入网页,浏览器解析执行这段脚本;攻击者可以窃取Cookie、劫持会话、篡改页面、钓鱼。** > 和CSRF对比记忆: > - CSRF:借用用户Cookie发请求,**拿不到Cookie** > - XSS:在用户浏览器执行JS,**可以读取Cookie,权限更强** ## 一、原理 网站把用户输入的内容,未经过滤直接输出到HTML页面中。浏览器分不清这段内容是页面原生代码还是用户输入,当作正常JS执行。 示例: 页面接收参数 `?name=xxx`,后端直接输出到页面: ```html
欢迎您:
``` 攻击者传入payload: ``` ?name= ``` 页面渲染后变成: ```html
欢迎您:
``` 浏览器执行` ``` > 如果Cookie设置了`HttpOnly`,JS无法读取Cookie!这是重要防护。 4. 拓展利用: - 伪造页面弹窗钓鱼,诱导输入账号密码 - 调用前端接口,执行用户身份下的操作(类似CSRF) - 盗取页面内敏感信息、token 5. 拿到会话Cookie → 攻击者使用Cookie登录受害者账号,接管账户 ### 常用简易Payload(过滤绕过很多,仅基础示例) ```html click ``` ## 四、蓝队审计与检测 ### 白盒审计要点 1. 所有用户可控输出点:页面展示、评论、搜索结果、提示文字 2. 查找前端DOM操作:`innerHTML、document.write、eval` 等危险DOM API 3. 检查是否做HTML转义 ### 流量&告警特征 - 请求参数携带 `