文章总结: 本文详解CTFWeb模块中的客户端漏洞XSS与CSRF,核心区分了XSS注入脚本窃取信息与CSRF伪造请求利用权限的原理。结合CTF靶场实战,演示了利用存储型XSS获取Cookie和CSRF修改密码的具体步骤,并提供了新手避坑与学习建议。 综合评分: 75 文章分类: CTF,WEB安全,漏洞分析,软文广告
CTF Web模块系列分享(三):客户端漏洞专题,核心讲解XSS和CSRF
原创
龙哥网络安全
龙哥网络安全
2025年12月29日 09:41 湖南
上期我们搞定了SQL注入的基础与进阶技巧。
今天咱们进入系列的第三期——客户端漏洞专题,核心讲解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标签即可): 。
- 诱导用户访问:将恶意HTML文件上传到自己的服务器,生成链接,诱导目标用户(已登录状态)点击。
- 验证结果:用户点击后,浏览器会自动发送修改密码的请求,密码被改为hack123,我们用新密码登录即可获取Flag。
四、新手避坑&学习建议
- 区分XSS和CSRF:记住“XSS偷信息,CSRF做操作”,不要混淆两者的攻击目标。
- XSS payload灵活调整:如果基础payload被过滤,尝试替换标签(比如用
代替script标签)。
- CSRF重点看请求方法:GET请求构造简单(直接拼URL),POST请求需要构造表单自动提交。
- 推荐靶场:CTFshow新手场(XSS/CSRF专题)、DVWA(低/中难度模式)。
五、下期预告
#
今天我们搞定了XSS和CSRF这两个核心客户端漏洞,下期我们将进入第四期——文件上传/包含漏洞专题,这是Web模块中“突破服务器屏障”的关键漏洞,学会就能解决很多中难度题目。
如果今天的内容对你有帮助,别忘了点赞、在看,转发给一起学CTF的小伙伴~
全套CTF学习资源,也可以在下面蓝色链接拿!
CTF学习资源,限时免费领取
想要的兄弟,关注我发送CTF入门,直接免费分享!前提是你得沉下心练,别拿了资料就吃灰,咱学技术,贵在坚持!
给大家准备了2套关于CTF的教程,一套是涵盖多个知识点的专题视频教程:
另一套是大佬们多年征战CTF赛事的实战经验,也是视频教程:
可以截图或者长按识别、扫码添加找我拿
龙哥网络安全
扫码添加领取
点击蓝字
关注我
计算机#计算机网安#网络安全#渗透测试#CTF#CTF比赛#赛事#计算机专业大学规划#网安零基础怎么入学#大学生
免责声明:
本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。
任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。
本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我。
本文转载自:龙哥网络安全 龙哥网络安全《CTF Web模块系列分享(三):客户端漏洞专题,核心讲解XSS和CSRF》
版权声明
本站仅做备份收录,仅供研究与教学参考之用。
读者将信息用于其他用途的,全部法律及连带责任由读者自行承担,本站不承担任何责任。








评论