文章总结: 本文全面解析CSRF漏洞原理、利用流程与防御机制。核心在于浏览器自动携带Cookie致身份滥用,文章详述检测方法与PoC生成,深入分析Referer校验与Token机制的多种绕过技巧。最后给出SRC报告结构与修复建议,强调信任边界的重要性,具备较高实战价值。 综合评分: 92 文章分类: WEB安全,漏洞分析,渗透测试,SRC活动
第64天-CSRF攻防全解析:从原理构造到Token绕过实战复盘
原创
萧瑶 萧瑶
AlphaNet
2026年3月3日 10:19 韩国
一、CSRF 原理:借刀杀人,而刀是浏览器
CSRF(Cross-Site Request Forgery,跨站请求伪造)的核心并不复杂:
攻击者诱导受害者浏览器向目标站点发送“合法请求”,浏览器自动携带 Cookie,从而以受害者身份执行操作。
关键点只有两个:
-
浏览器会自动携带目标站点的 Cookie
-
服务器只校验“是否登录”,不校验“请求来源”
如果服务器认为: “只要你带着合法 Session Cookie,就是你本人操作。”
那它就输了。
二、CSRF 可利用功能点分析
CSRF 的威力取决于目标系统的“敏感操作暴露程度”。典型高危功能包括:
-
删除账户
-
更改邮箱
-
修改密码(尤其不验证旧密码)
-
添加管理员(RBAC系统)
-
修改昵称、姓名等基础信息
-
修改通知复选框
-
修改或删除头像
判断标准非常简单:
是否是“已登录用户才能操作”的状态变更行为。
只要是状态改变接口,而没有严格校验来源,都可能成为攻击面。
三、CSRF 利用流程(无防护场景)
1️⃣ 漏洞检测
黑盒思路:
-
抓包修改关键请求
-
删除 Referer 观察是否拦截
-
删除/篡改 token 观察是否有效
-
替换请求方法 POST→GET
白盒思路:
-
查看是否存在 CSRF Token
-
是否校验 Referer/Origin
-
Token 是否与 Session 强绑定
2️⃣ 生成 PoC
在 Burp Suite 中:
Engagement Tools → Generate CSRF PoC
生成一个 HTML 表单:
<form action="https://target.com/change_email" method="POST">
<input type="hidden" name="email" value="[email protected]">
</form>
<script>
document.forms[0].submit();
</script>
攻击方式:
-
放置在攻击者网站
-
社工诱导点击
-
或配合 XSS 自动触发
这时候,浏览器替你完成攻击。
没有痕迹。没有异常流量。全是“合法请求”。
四、CSRF 防御机制与原理
1️⃣ 同源策略(Origin / Referer 校验)
浏览器天然存在 Same-Origin Policy,但服务器必须主动校验。
原理
服务器检查:
-
Referer 头是否来自本站
-
或 Origin 是否匹配
只允许来自自身域名的请求。
绕过方式(逻辑不严谨场景)
-
规则匹配不严格
例如仅使用字符串包含判断:
http://evil.com/http://target.com
如果服务器只是做 contains 判断,就会误判为合法。
- 利用
<meta name="referrer" content="no-referrer">
让浏览器不发送 Referer,从而绕过校验逻辑漏洞。
- 配合文件上传
若上传功能允许 HTML 文件,可在目标域下生成恶意页面,变成“同源攻击”。
- 配合存储型 XSS
一旦 XSS 存在,同源校验直接失效。
同源防护不是万能盾牌,它是逻辑约束工具。
2️⃣ CSRF Token 机制
原理
服务器生成随机 Token:
-
存入 Session
-
页面隐藏字段带出
-
提交时必须一致
攻击者无法提前知道 Token。
典型绕过方式(代码逻辑缺陷)
1️⃣ Token 可复用
未绑定 Session,或长期有效
2️⃣ 删除 Token 参数
后端未做强校验
3️⃣ Token 参数置空
后端使用 if(token) 判断
4️⃣ 修改一个字符仍通过
比较逻辑错误(例如使用 contains)
5️⃣ 使用其他用户 Token
Token 未绑定用户
6️⃣ 内容长度绕过
比较时仅校验长度或前几位
本质问题:
Token 是随机数,但验证逻辑不随机。
五、CSRF 绕过总结模型
攻击绕过本质分三类:
-
请求结构篡改(方法、编码、参数)
-
逻辑匹配绕过(字符串包含、长度判断)
-
同源校验利用(文件上传、XSS)
所有绕过,都不是“浏览器漏洞”,而是“开发者假设错误”。
六、实战复盘:SRC / CVE 报告思路
优秀 CSRF 报告结构通常包含:
-
功能点描述
-
影响权限说明
-
漏洞原理分析
-
PoC 代码
-
实际影响场景
-
修复建议
修复建议必须清晰:
-
强制 POST
-
加入 CSRF Token 且与 Session 强绑定
-
校验 Origin
-
SameSite Cookie 设置为 Strict / Lax
尤其现代浏览器的 SameSite 属性:
-
Strict:完全阻止跨站携带 Cookie
-
Lax:部分阻止
-
None:允许跨站(必须 https)
这是浏览器层面的“被动防御”。
七、一个重要认知
CSRF 是“身份滥用漏洞”,不是“代码执行漏洞”。
它利用的是:
-
用户信任浏览器
-
服务器信任 Cookie
-
开发者信任逻辑
三重信任叠加,漏洞诞生。
八、进阶思考
未来趋势:
-
浏览器默认 SameSite=Lax
-
双重 Token 模型
-
JWT + CSRF 双层校验
-
前后端分离场景下的 Token 注入
CSRF 不会消失,但攻击面在减少。
真正的风险,正在转向:
-
API 误用
-
OAuth 绑定缺陷
-
跨域资源共享(CORS)配置错误
安全问题,从来不是“有没有漏洞”,而是“信任边界是否清晰”。
当你分析 CSRF 时,别只盯着表单。去问一句:
这个系统在信任什么?
一旦你看见信任模型,你就看见了攻击面。
这才是攻防真正的核心。
免责声明:
本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。
任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。
本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我。
本文转载自:AlphaNet 萧瑶 萧瑶《第64天-CSRF攻防全解析:从原理构造到Token绕过实战复盘》
版权声明
本站仅做备份收录,仅供研究与教学参考之用。
读者将信息用于其他用途的,全部法律及连带责任由读者自行承担,本站不承担任何责任。










评论