CSRF(跨站请求伪造)漏洞概述

发布于:2025-04-19 ⋅ 阅读:(14) ⋅ 点赞:(0)

CSRF(跨站请求伪造)漏洞概述

一、什么是 CSRF

image

攻击者诱导已登录用户在不知情的情况下,对受信任网站执行未授权操作。

简单说:你登录着网站A,攻击者诱导你访问某个恶意链接,使网站A误以为是你自己发出的操作(比如转账、改密码等)。

xss 与 csrf 对比:

xss:攻击者发现 XSS 漏洞——构造代码——发送给受害人——受害人打开——攻击者获取受害人的 cookie——完成攻击
csrf:攻击者发现 CSRF 漏洞——构造代码——发送给受害人——受害人打开——受害人执行代码——完成攻击

XSS 容易发现,因为攻击者需要登陆后台完成攻击,管理员可以看到日志发现攻击者;而 CSRF 的攻击是管理员自己实现的,攻击者只负责构造代码。
CSRF 属于业务逻辑漏洞,服务器信任经过身份认证的用户
XSS 属于技术漏洞,客户信任服务器

二、CSRF 攻击原理

image

1.用户 C 打开浏览器,访问受信任网站 A,输入用户名和密码请求登录网站 A;

2.在用户信息通过验证后,网站 A 产生 Cookie 信息并返回给浏览器,此时用户登录网站 A 成功,可以正常发送请求到网站 A;

3.用户未退出网站 A 之前,在同一浏览器中,打开一个 TAB 页访问网站 B;

4.网站 B 接收到用户请求后,返回一些攻击性代码,并发出一个请求要求访问第三方站点 A;

5.浏览器在接收到这些攻击性代码后,根据网站 B 的请求,在用户不知情的情况下携带 Cookie 信息,向网站 A 发出请求。网站 A 并不知道该请求其实是由 B 发起的,所以会根据用户 C 的 Cookie 信息以 C 的权限处理该请求,导致来自网站 B 的恶意代码被执行。

⚙️ 攻击核心机制:

  1. 用户在浏览器中登录了某网站(如银行、论坛),会话凭据(如 Cookie)仍有效
  2. 攻击者诱导用户点击恶意链接或访问恶意页面。
  3. 浏览器会自动携带用户的 Cookie 发出请求。
  4. 服务端未做防护,以为是用户本人发出的请求,执行了操作。

三、利用方式

  • 钓鱼邮件、私信诱导点击
  • 论坛签名、评论中嵌入恶意内容
  • 恶意JS构造表单自动提交
  • GET / POST 请求均可被利用

四、常见工具

工具 用途
Burp Suite 构造并测试 CSRF 请求
CSRF PoC Generator(插件) 自动生成 CSRF 攻击页面
OWASP ZAP 扫描目标是否存在 CSRF 漏洞
XSRFProbe 用于审计和识别 CSRF 问题(GitHub 开源)

五、危害

  • 未授权转账、删除账户、修改信息等操作
  • 控制用户权限或泄露隐私
  • 如果管理员中招,可能被篡改配置或植入后门
  • 一旦结合 XSS,破坏性更高

六、CSRF 攻击防范

目前防御 CSRF 攻击主要有三种策略:

  • 验证 HTTP Referer 字段;
  • 在请求地址中添加token 校验;
  • 在 HTTP 头中自定义属性并验证
  • 使用双重认证机制:关键操作如转账,要求再次验证身份
  • 避免 GET 操作产生副作用:尽量使用 POST 进行敏感操作

七、检测思路(渗透测试)

  1. 抓包关键操作(如改密码)
  2. 尝试构造一个 HTML 页面模拟请求
  3. 看是否能在不登录状态下伪造请求成功
  4. 若成功,说明存在 CSRF 漏洞


网站公告

今日签到

点亮在社区的每一天
去签到