XSS详解
本篇研究 XSS(Cross-Site Scripting,跨站脚本攻击)
作用:攻击者在网站注入恶意脚本,在用户浏览网页时执行该脚本,从而实现盗取 Cookie、钓鱼、传播木马等攻击行为。
一、XSS 原理
XSS 是客户端攻击,核心是将恶意脚本注入到网页中,诱使其他用户在自己的浏览器中执行。
常见注入点包括:
- 评论区、昵称、文章内容等可存储内容;
- URL 参数、搜索框、表单等用户可控输入;
攻击者通过这些点注入 JavaScript 代码,实现对用户的攻击。
二、XSS 类型
类型 | 描述 |
---|---|
反射型 XSS | 恶意脚本来自当前请求,如URL参数,页面立即反射执行 |
存储型 XSS | 恶意脚本被存储在数据库中,后续所有访问者都会被攻击 |
DOM 型 XSS | 恶意代码通过修改前端 DOM 实现,通常不依赖服务端返回 |
1. 反射型 XSS 示例:
用户访问如下 URL:
后端返回:
你搜索了:
浏览器解析执行脚本,弹出 alert(1)。
2. 存储型 XSS 示例:
攻击者在评论区插入:
其他用户访问页面时会被执行,造成 Cookie 被窃取。
3. DOM 型 XSS 示例:
假设前端代码如下:
1 |
|
用户访问:
1 |
|
脚本被插入到页面并执行。
三、XSS 攻击利用
XSS 可实现:
- 窃取 Cookie 或 localStorage
- 劫持用户会话
- 引诱用户点击恶意链接(钓鱼)
- 网页仿冒(页面篡改)
- 与 CSRF 联合攻击
四、XSS 防御措施
防御手段 | 描述 |
---|---|
输出编码(重点) | 对用户输出做 HTML/JS/CSS 编码,防止执行脚本 |
使用 CSP 策略 | 内容安全策略限制脚本来源,防止外部脚本执行 |
输入校验与过滤 | 防止含有 <script> 、onerror 、javascript: 等内容 |
HttpOnly Cookie | 设置 Cookie 为 HttpOnly,防止被 JS 读取 |
感觉有用的就是存储型 XSS,其他两个比较鸡肋,作用比较大的就是窃取 Cookie 或 localStorage来进后台吧
XSS详解
https://www.xiaotian.org.cn/2025/05/06/XSS详解/