# 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转义
### 流量&告警特征
- 请求参数携带 `