CSRF与SSRF入门(原理对比与防御)

CSRF 与 SSRF 完整对比:原理差异、攻击链、检测方法、防御措施,帮助区分这两个容易混淆的概念。

写在前面:合法学习边界

本文仅用于学习和安全测试。对非授权系统执行 CSRF/SSRF 攻击可能触犯法律。

一、CSRF vs SSRF 核心区别

1
2
3
4
5
6
7
CSRF(Cross-Site Request Forgery):
  受害者浏览器 → 被攻击的服务器
  攻击者利用受害者的身份发起请求

SSRF(Server-Side Request Forgery):
  被攻击的服务器 → 攻击者指定的目标(内网)
  攻击者利用服务器代理请求内网资源

二、CSRF 攻击流程

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
第 1 步:受害者登录目标网站(浏览器持有 Session Cookie)
第 2 步:攻击者构造恶意页面,包含跨站请求
第 3 步:受害者访问恶意页面
第 4 步:浏览器自动携带 Cookie 发起请求
第 5 步:服务器认为请求来自已登录用户 → 执行操作

Payload 示例:
  <img src="https://bank.com/transfer?to=hacker&amount=10000">
  <form action="https://bank.com/transfer" method="POST">
    <input name="to" value="hacker">
    <input name="amount" value="10000">
  </form>

三、SSRF 攻击流程

1
2
3
4
5
6
7
8
第 1 步:找到 URL 参数/图片抓取接口
第 2 步:让服务器请求内网地址
第 3 步:探测内网服务(Redis/MySQL/K8s/云元数据)
第 4 步:利用内网未授权服务

Payload 示例:
  GET /api?url=http://169.254.169.254/latest/meta-data/
  GET /api?url=gopher://127.0.0.1:6379/_info

四、防御措施对比

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
CSRF 防御:
  ① SameSite Cookie(Lax/Strict)
  ② CSRF Token(每个请求携带随机 Token)
  ③ Referer 检查
  ④ 敏感操作用 POST + Token

SSRF 防御:
  ① URL 白名单
  ② 禁用非 http(s) 协议
  ③ 禁止内网 IP
  ④ 网络层隔离

五、小结

CSRF 利用的是浏览器自动携带 Cookie 的机制,SSRF 利用的是服务器代理请求 的机制。两者名字相似但原理完全不同,防御方式也完全不同。

本站使用「署名 4.0 国际」创作共享协议,可自由转载、引用,但需署名作者且注明文章出处
最后更新于 Aug 30, 2026 10:00 +0800