跳到主要内容
极客日志极客日志面向AI+效率的开发者社区
首页博客GitHub 精选镜像AI 生图工具UI配色美学隐私政策关于联系
搜索内容 / 工具 / 仓库 / 镜像...⌘K搜索
注册
博客列表
JavaScript大前端

WEB 安全攻防:XSS 跨站脚本攻击原理与防御实战

Web 安全中的 XSS(跨站脚本攻击)漏洞。内容包括 XSS 的基本概念、核心机制及分类(反射型、存储型、DOM 型)。文章通过具体代码示例演示了漏洞产生的原理,如 PHP 输出未过滤数据和 JavaScript DOM 操作不当。同时分析了存储型 XSS 在订单系统、营销页面的应用场景,以及利用 XSS 平台和 BeEF 框架进行攻击验证和登录绕过的流程。最后总结了 DOM 型 XSS 的检测要点与防御措施,强调输入输出过滤、HttpOnly 标志及 CSP 策略的重要性。

BigDataPan发布于 2026/4/6更新于 2026/7/2057 浏览
WEB 安全攻防:XSS 跨站脚本攻击原理与防御实战

XSS 跨站脚本攻击(XSS)原理与防御

一、XSS 概述

1. 基本概念

  • 全称: Cross Site Scripting(跨站脚本攻击),简称 XSS。
  • 本质: 前端漏洞,主要利用 JavaScript 代码执行。
  • 产生原因: 网站对用户输入过滤不足,导致恶意脚本在页面显示并执行。

2. 核心机制

  • 输入输出特征: 必须存在数据交互的输入输出点。
  • 执行条件: 服务器未严格过滤用户输入的恶意脚本。
  • 触发方式: 浏览器直接执行注入的 JavaScript 代码。

3. 典型场景

  • 数据交互点: GET/POST 参数、HTTP Headers。
  • 输出点: 用户资料页、关键词标签、富文本编辑器等。

4. XSS 分类

  • 反射型(非持久型): 恶意脚本通过 URL 参数即时触发。
  • 存储型(持久型): 恶意脚本存储在服务器端持续影响。
  • DOM 型: 完全在客户端完成攻击,不经过服务器。
  • 特殊类型: mXSS(突变 XSS)、UXSS(通用 XSS)、Flash XSS、UTF-7 XSS。

5. 危害

  • 信息窃取: 盗取用户 Cookie、会话凭证。
  • 身份冒用: 利用被盗身份执行操作。
  • 恶意传播: 对访问者进行病毒侵害。
  • 扩展危害: 权限维持、钓鱼攻击、浏览器劫持。

二、XSS 攻击原理与示例

1. 攻击原理

  • 本质: 通过网页开发漏洞注入恶意指令代码到网页。
  • 执行方式: 用户加载并执行攻击者构造的恶意网页程序。
  • 攻击媒介: 不仅限于 JavaScript,还包括 Java、VBScript、ActiveX、Flash 等。
  • 攻击后果: 获取更高权限、窃取私密内容、会话和 cookie 等敏感信息。

2. 漏洞产生原理

  • 关键条件:
    • 输入点:网页接受用户输入(如搜索框)。
    • 输出点:将输入内容直接输出到页面源代码中。
  • 攻击过程:
    • 将正常输入替换为 JS 代码。
    • 浏览器渲染时会将 JS 代码识别并执行。
    • 示例:搜索关键词显示在页面源代码中,若替换为 <script>alert(1)</script> 则会被执行。

3. 本地漏洞演示

  • 反射型 XSS 示例:
$code = $_GET['x'];
echo $code;
  • 漏洞表现: 通过 URL 参数直接输出未过滤内容。
  • 测试方法: xss.php?x=123 会输出 123,改为 xss.php?x=<script>alert(1)</script> 则执行弹窗。

4. DOM 型 XSS 示例

function domxss() {
    var str = document.getElementById("text").value;
    document.getElementById("dom").innerHTML = "<a>" + str + "</a>";
}
  • 闭合技巧: 通过构造 '><img onmouseover="alert('xss')"> 等 payload 实现攻击。
  • 防御要点: 需要对输出内容进行 HTML 实体编码。

三、存储型 XSS

1. 典型场景

  • 订单查询功能: 演示使用老旧的订单系统作为案例,该系统具有订单查询功能,是典型的存储型 XSS 攻击面。
  • 营销手段与商品展示: 药品、成人用品、保健品等特殊商品营销页面,通常包含'立即购买'、'获取资料'等表单提交功能。
  • 招商网站示例: 包含项目资料领取功能,需要用户提交个人信息。

2. 攻击流程

  1. 攻击者在订单/留言中插入恶意脚本。
  2. 管理员登录后台查看新订单。
  3. 恶意脚本在管理员浏览器中执行。

3. 利用条件

  • 需要管理员查看用户提交数据的页面未做输出过滤。

4. 防御措施

  • 输入输出过滤。
  • 设置 HttpOnly 标志。
  • 内容安全策略 (CSP)。

四、XSS 平台与工具

1. 平台选择

  • 第三方平台: 网上有免费平台可用,但需注意信息可能被平台所有者获取。
  • 自建优势: 完全掌控数据安全,避免信息泄露风险,适合隐蔽性要求高的项目。

2. BeEF 框架

  • 部署方法: 通过 Docker 运行命令 docker run --rm -p 3000:3000 janes/beef 启动 BeEF 平台。
  • 访问方式: 部署成功后访问 http://127.0.0.1:3000/ui/panel 进入控制面板。
  • 功能特点: 专业 XSS 利用框架,支持多种浏览器攻击模块。

3. 攻击效果验证

  • 验证方法:
    • 观察浏览器请求包中是否包含 XSS 平台地址。
    • 检查 XSS 平台是否接收到管理员 cookie 等敏感信息。
  • 信息收集: 获取管理员访问的完整 URL 地址、当前会话的 cookie 信息、用户代理 (User-Agent) 等请求头数据。

4. 登录绕过

  • 自动跳转机制: 未登录状态下访问后台地址会触发自动跳转。
  • 认证信息伪造: 通过 Burp Suite 等工具伪造获取到的认证信息可实现登录绕过。
  • 关键参数: uid 参数、cookie 值等认证信息是绕过登录的关键。

五、DOM 型 XSS 实例分析

1. 基本概念

  • 核心区别: 与存储型、反射型不同,DOM 型 XSS 的漏洞触发完全在前端页面完成。
  • 代码审计重点: 主要查看 HTML/JS 代码,无需审计 PHP/JAVA 等后端代码。
  • 数据流向: 恶意输入→前端 JS 处理→DOM 操作→漏洞触发。

2. 帝国 CMS 漏洞实例

  • 漏洞文件: /e/d6/img/index.htm
  • 关键代码: 通过 requestURL 获取浏览器地址栏参数,未过滤直接写入 DOM(document.write)。
  • 攻击原理: 构造 javascript:alert(1) 形式 payload。

3. 漏洞利用方法

  • 构造方式: 直接修改 URL 参数:/e/d6/img/index.htm?url=javascript:alert(1)。
  • 检测目标: 存在前端 URL 参数处理的页面。
  • 特征识别: 使用 document.write/innerHTML 等动态 DOM 操作,存在 location/window.location 等 URL 参数获取。

六、知识总结

知识点核心内容关键要点
XSS 漏洞原理输入输出机制导致 JS 代码执行接收用户输入数据;将数据输出到页面;JS 代码被浏览器解析执行
XSS 分类反射型/存储型/DOM 型对比反射型:一次性构造利用;存储型:持久化数据库攻击;DOM 型:纯前端 JS 实现
反射型 XSS非持久化攻击特点需构造恶意链接;依赖受害者点击;实战利用难度大
存储型 XSS数据库持久化危害留言板/评论系统高发;可长期影响后续访问者;配合 XSS 平台窃取 cookie
DOM 型 XSS纯前端漏洞特征不依赖后端处理;完全在浏览器环境触发
XSS 利用工具XSS 平台/BEEF 框架XSS 平台:cookie 窃取基础功能;BEEF:浏览器劫持/钓鱼攻击
防御措施常见防护与绕过输入输出过滤;CSP 策略;httponly cookie 防护
实战案例典型漏洞场景UA 查询平台反射案例;订单系统存储型案例;帝国 CMS DOM 型案例

目录

  1. XSS 跨站脚本攻击(XSS)原理与防御
  2. 一、XSS 概述
  3. 1. 基本概念
  4. 2. 核心机制
  5. 3. 典型场景
  6. 4. XSS 分类
  7. 5. 危害
  8. 二、XSS 攻击原理与示例
  9. 1. 攻击原理
  10. 2. 漏洞产生原理
  11. 3. 本地漏洞演示
  12. 4. DOM 型 XSS 示例
  13. 三、存储型 XSS
  14. 1. 典型场景
  15. 2. 攻击流程
  16. 3. 利用条件
  17. 4. 防御措施
  18. 四、XSS 平台与工具
  19. 1. 平台选择
  20. 2. BeEF 框架
  21. 3. 攻击效果验证
  22. 4. 登录绕过
  23. 五、DOM 型 XSS 实例分析
  24. 1. 基本概念
  25. 2. 帝国 CMS 漏洞实例
  26. 3. 漏洞利用方法
  27. 六、知识总结
  • 免费图片AI生成工具免费生成了解详情
  • Magick API 一键接入全球大模型注册送1000万token查看
  • 免费图片视频在线生成30秒,将你的创意变成现实开始设计
  • X/Twitter免费视频下载器免登陆无限额度免费视频解析下载了解详情
  • 100+免费在线小游戏爽一把
极客日志微信公众号二维码

微信扫一扫,关注极客日志

微信公众号「极客日志V2」,在微信中扫描左侧二维码关注。展示文案:极客日志V2 zeeklog

更多推荐文章

查看全部
  • 全球顶级 AI 大模型排名:Gemini 3.1 Pro 与 GPT-5.4 并列第一,GLM-5 进前五
  • 昆仑万维开源 Skywork-R1V3:38B 多模态推理模型,高考数学 142 分刷新 SOTA
  • 前端请求后端 404/405/500 状态码排查与解决指南
  • 2026 年 3 月 17 日热点解读:楼市分化、医保覆盖与中东风险
  • LeetCode 207. 课程表:BFS 与 DFS 拓扑排序解法
  • C++/WinRT 教程 (1):初识 WinRT 程序
  • 基于YOLOv8/v11/v26与LLM的Web目标检测及人脸表情识别系统
  • 渐进式 AIGC 聚合系统:多模型私有化部署与 Agent 工作流
  • GPT-4o 多模态能力深度解析与应用前景
  • Java 项目实战:尚庭公寓单体架构开发与部署
  • JDK 17 官方下载与安装配置指南
  • OpenClaw 配置飞书机器人指南
  • LINUX DO 社区 2025 年注册指南:填写自述与加入缘由
  • Python 安全工具与库精选:网络、逆向、Web 等方向
  • 命令行下利用 MCP 协议与大模型交互的工具:MCPHost 实战
  • 116 道网络安全工程师面试真题及参考答案
  • 动态规划基础概念及第 N 个泰波那契数题解 (1)
  • 文心一言与通义千问大模型能力评测
  • OpenClaw开源机器人实现空间智能体记忆技术
  • Docker 部署 OpenClaw 踩坑实录:Web UI 访问、飞书配对及自定义模型配置

相关免费在线工具

  • Keycode 信息

    查找任何按下的键的javascript键代码、代码、位置和修饰符。 在线工具,Keycode 信息在线工具,online

  • Escape 与 Native 编解码

    JavaScript 字符串转义/反转义;Java 风格 \uXXXX(Native2Ascii)编码与解码。 在线工具,Escape 与 Native 编解码在线工具,online

  • JavaScript / HTML 格式化

    使用 Prettier 在浏览器内格式化 JavaScript 或 HTML 片段。 在线工具,JavaScript / HTML 格式化在线工具,online

  • JavaScript 压缩与混淆

    Terser 压缩、变量名混淆,或 javascript-obfuscator 高强度混淆(体积会增大)。 在线工具,JavaScript 压缩与混淆在线工具,online

  • Base64 字符串编码/解码

    将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online

  • Base64 文件转换器

    将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online