news 2026/9/3 4:05:49

CTF Web模块系列分享(三):客户端漏洞专题,核心讲解XSS和CSRF

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
CTF Web模块系列分享(三):客户端漏洞专题,核心讲解XSS和CSRF

今天咱们进入系列的第三期——客户端漏洞专题,核心讲解XSS(跨站脚本)和CSRF(跨站请求伪造)。这两类漏洞和之前的SQL注入不同,攻击目标不是服务器,而是用户的浏览器,利用的是浏览器对网站的信任机制,也是CTF Web模块中高频的基础题型,新手必须掌握!

话不多说,直接上干货!今天我们先拆原理,再讲实战,帮大家彻底分清XSS和CSRF的区别,轻松拿下这类题型的分数。

一、先分清:XSS和CSRF到底有啥不一样?

很多新手刚接触会把这两个漏洞搞混,先记住一个核心区别:

XSS:往页面里注入恶意脚本,让脚本在用户浏览器里执行,目的是偷取用户信息(比如Cookie、账号密码)。

CSRF:伪造用户的合法请求,让用户在不知情的情况下执行操作(比如转账、改密码),目的是利用用户权限做事。

用通俗的例子总结: XSS像在奶茶里加了泻药,让喝奶茶的人(用户)出问题; CSRF像“冒充你给商家发消息说‘把我的奶茶送给别人’”,利用你的身份(权限)做事。

二、XSS漏洞:跨站脚本的核心逻辑与实战

XSS的本质是:开发者没对用户输入的内容做过滤,导致恶意JavaScript脚本被嵌入到页面中,并且被浏览器执行。

1. 新手必懂的3种XSS类型

  • 存储型XSS:恶意脚本被存储到服务器数据库(比如评论区、个人资料),所有访问该页面的用户都会触发脚本(危害最大,CTF中最常考);

  • 反射型XSS:恶意脚本通过URL参数注入,只有点击了带有恶意参数的URL的用户才会触发(危害较小,常出现在搜索框、跳转页面);

  • DOM型XSS:通过修改页面的DOM结构触发,脚本不经过服务器,直接在客户端执行(相对少见,但需要掌握基础思路)。

2. 实战演练:存储型XSS拿Flag

以CTFshow新手场的存储型XSS题目为例,手把手教你解题:

题目场景
打开题目链接,是一个“留言板”页面,用户可以提交留言,页面会显示所有历史留言,Flag存储在管理员的Cookie中,我们需要通过XSS获取管理员的Cookie。

解题步骤
测试是否存在XSS:在留言框输入,提交后如果页面弹出“xss”弹窗,说明存在存储型XSS。

构造恶意脚本:核心是“偷取Cookie并发送到自己能访问的地方”,新手常用的payload(直接复制可用): 。

提交恶意留言:将构造好的payload输入留言框提交,等待管理员查看留言板(CTF题目中通常会模拟管理员访问,提交后直接触发)。

获取Flag:查看自己的服务器日志,会发现包含管理员Cookie的请求,其中就有Flag(格式:flag{xxx})。

三、CSRF漏洞:跨站请求伪造的核心逻辑与实战

CSRF的本质是:利用用户已登录的身份(浏览器保存的Cookie),伪造一个合法的请求,让用户在不知情的情况下执行特定操作。

1. CSRF成立的3个前提

用户已登录目标网站,浏览器保存了有效的Cookie。

攻击者能构造出合法的请求(知道请求的URL、参数、请求方法)。

用户在登录状态下访问了攻击者构造的恶意链接/页面。

2. 实战演练:CSRF伪造改密码请求

以修改用户密码”的CSRF题目为例,解题步骤:

题目场景
目标网站有“修改密码”功能,已知修改密码的请求是:http://题目地址/change.php?newpass=123456,请求方法为GET,我们需要构造CSRF页面,让登录的用户点击后自动修改密码为我们设定的值。

解题步骤
分析请求:通过Burp抓包确认修改密码的URL、参数(newpass)和请求方法(GET/POST)。

构造恶意页面:新建一个HTML文件,写入自动发送请求的代码(GET请求直接用img标签即可): < img src=“http://题目地址/change.php?newpass=hack123” style=“display:none”>。

诱导用户访问:将恶意HTML文件上传到自己的服务器,生成链接,诱导目标用户(已登录状态)点击。

验证结果:用户点击后,浏览器会自动发送修改密码的请求,密码被改为hack123,我们用新密码登录即可获取Flag。

四、新手避坑&学习建议

区分XSS和CSRF:记住“XSS偷信息,CSRF做操作”,不要混淆两者的攻击目标。

XSS payload灵活调整:如果基础payload被过滤,尝试替换标签(比如用代替script标签)。

CSRF重点看请求方法:GET请求构造简单(直接拼URL),POST请求需要构造表单自动提交。

推荐靶场:CTFshow新手场(XSS/CSRF专题)、DVWA(低/中难度模式)。

五、下期预告

今天我们搞定了XSS和CSRF这两个核心客户端漏洞,下期我们将进入第四期——文件上传/包含漏洞专题,这是Web模块中“突破服务器屏障”的关键漏洞,学会就能解决很多中难度题目。

如果今天的内容对你有帮助,别忘了点赞、在看,转发给一起学CTF的小伙伴~

CTF学习资源分享

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

给大家准备了2套关于CTF的教程,一套是涵盖多个知识点的专题视频教程:

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

另一套是大佬们多年征战CTF赛事的实战经验,也是视频教程:

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

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

Chromedriver下载地址汇总 + VibeThinker-1.5B编程推理双加持

Chromedriver下载与VibeThinker-1.5B&#xff1a;轻量智能 自动化控制的技术闭环 在算法竞赛训练营里&#xff0c;一位参赛者正为连续几道动态规划题卡壳发愁。他打开浏览器&#xff0c;准备手动搜索解法时&#xff0c;突然收到一条系统推送&#xff1a;“您关注的三道新题已生…

作者头像 李华
网站建设 2026/9/2 21:39:11

C++ STL 源码剖析与底层实现详解

一、引言标准模板库&#xff08;STL, Standard Template Library&#xff09;是 C 最强大的基础组件之一&#xff0c;包含了常用的数据结构&#xff08;如 vector、map、set&#xff09;与算法。STL 的使用门槛不高&#xff0c;但真正掌握其性能特点和底层实现逻辑&#xff0c;…

作者头像 李华
网站建设 2026/9/2 9:23:49

Docker容器自愈能力实战(健康检查成功配置全解析)

第一章&#xff1a;Docker容器自愈能力概述 Docker 容器的自愈能力是指在容器发生故障、崩溃或异常退出时&#xff0c;系统能够自动检测并采取恢复措施&#xff0c;从而保障服务的高可用性与稳定性。这一能力并非 Docker 原生默认开启的功能&#xff0c;而是通过组合使用容器编…

作者头像 李华
网站建设 2026/9/3 1:50:54

告别信息刷屏!RssHub+cpolar 让你的订阅源随时随地能看

RssHub 的核心功能是给各种网站生成 RSS 订阅源&#xff0c;不管是微博热搜、GitHub 仓库更新&#xff0c;还是豆瓣小组、慕课课程&#xff0c;它都能把内容整理成标准格式&#xff0c;方便用阅读器统一查看。适合需要实时追踪信息的自媒体人、关注代码动态的程序员&#xff0c…

作者头像 李华
网站建设 2026/9/3 3:13:38

认识定性数据和定量数据和描述性统计的常规分析

下面内容摘录自《用R探索医药数据科学》专栏文章的部分内容&#xff08;原文5342字&#xff09;。 2篇3章1节&#xff1a;定量数据的集中趋势描述&#xff0c;文末有众数的自定义函数-CSDN博客 在科研中&#xff0c;很多资料经过整理之后&#xff0c;常常需要进行一系列的统计…

作者头像 李华
网站建设 2026/9/2 22:21:54

【Docker安全监控终极指南】:揭秘Falco实时监控的5大核心应用场景

第一章&#xff1a;Docker安全监控的演进与Falco的崛起 随着容器化技术的广泛应用&#xff0c;Docker已成为现代应用部署的核心组件。然而&#xff0c;其轻量、动态和短暂的特性也带来了新的安全挑战。传统的主机级安全监控工具难以深入容器内部行为&#xff0c;无法有效检测异…

作者头像 李华