目录
一、📖什么是CSRF
二、🔗漏洞利用过程
三、📑漏洞的前提条件
四、🔍常见漏洞发生位置
五、✅CSRF挖掘技巧
(一) 抓正常请求包进行初步判断
(二) Referer 绕过验证测试
(三) Token 缺失与二次验证缺失识别
六、⚠️漏洞危害
七、🔒CSRF漏洞防御
一、📖什么是CSRF
CSRF(Cross-Site Request Forgery)是指攻击者诱导用户在已登录某网站的情况下,执行非本意的操作(如转账、改密码等)。它依赖于用户已登录状态下浏览器自动携带 Cookie 的特性。
二、🔗漏洞利用过程
- 攻击者发现目标网站存在 CSRF 漏洞,关键操作接口未对请求来源进行身份校验。
- 攻击者构造包含恶意请求的 Payload(如自动提交的表单、恶意图片、JS 脚本等),并嵌入到钓鱼网页或第三方平台。
- 通过社交工程手段(如钓鱼邮件、社交消息、伪装广告等)引导用户点击该页面或链接。
- 用户在已登录目标网站(如银行)且持有有效 Cookie 的情况下访问该恶意页面,浏览器自动携带 Cookie 发起请求。
- 如果目标网站未对请求来源进行验证,则会误以为该请求是用户主动发起的。
- 请求被成功执行,导致敏感操作被触发(如转账、修改信息、授权操作等),用户在毫无察觉的情况下被攻击。
三、📑漏洞的前提条件
- ✅用户登录了目标网站,并且登录状态仍然有效(如 Cookie 未失效)
- ✅网站对关键操作的请求没有做身份校验
- ✅用户能被引诱点击恶意链接或访问恶意页面
- ✅网站使用 Cookie 认证,而非 Token认证方式
四、🔍常见漏洞发生位置
- 修改用户信息:如邮箱、密码、绑定手机
- 金融交易类接口:如转账、支付、充值
- 内容发布/删除:如发帖、删除评论、点赞
- 管理员操作接口:如添加用户、授权、配置
五、✅CSRF挖掘技巧
(一) 抓正常请求包进行初步判断
抓取关键操作(如POST)的正常请求包:
- 若缺少 Referer / Origin 字段;
- 且请求中无明显 CSRF Token 或防伪参数(如
_csrf
,token
,authenticity_token
),
👉 则接口极有可能存在 CSRF 漏洞。
(二) Referer 绕过验证测试
请求中即使存在 Referer 字段,也可进行伪造测试:
- 使用 Burp 修改 Referer 为第三方域名,或直接删除;
- 若服务端仍返回 200 正常响应并执行业务操作,
👉 基本可以确认该接口未校验请求来源,存在 CSRF 风险。
(三) Token 缺失与二次验证缺失识别
在表单提交、按钮操作、GET 请求等处:
- 若用户操作无 CSRF Token 校验机制;
- 且未引入验证码 / 二次确认弹窗 / 图形验证等二次验证措施,
👉 该接口高概率可被构造 CSRF Payload。
六、⚠️漏洞危害
- 被利用执行敏感操作(如转账、改密码)
- 账户被篡改、信息泄露
- 管理员权限被下发
- 业务被滥用(如刷积分、批量点赞)
- 信任损失、法律风险等内容
七、🔒CSRF漏洞防御
- 添加验证码/密码
- 打断请求的自动化流程,用户主动交互,防止CSRF自动执行敏感操作。
- 双重Cookie验证
- 通过比较Cookie和请求参数中的值,验证请求合法性。
- 使用CSRF Token
- Token是随机会话特定的,攻击者难以预测或伪造。
- 检查Referer头
- 通过验证请求来源,确保请求来自合法域名(参考同源策略)。
- 使用SameSite Cookie属性
- 限制Cookie在跨站请求中的发送,防止伪造请求。