CSRF 与 SSRF 入门

解释 CSRF 与 SSRF 的原理、危害和防御思路,帮助初学者理解跨站请求伪造和服务端请求伪造在 Web 安全中的位置。

写在前面:合法学习边界

本文讲解 CSRF 与 SSRF 的原理与防御。请不要对真实站点做绕过测试、内网探测或构造恶意请求。所有验证都必须在自建靶场、公司授权测试环境或明确书面授权的目标上进行。

一、CSRF:利用浏览器信任发起请求

CSRF(跨站请求伪造)的核心是:浏览器在用户已登录某个网站时,会把 Cookie 自动带上;攻击者诱使用户访问恶意页面,恶意页面在用户不知情的情况下向目标站点发起请求。

典型流程:

1
2
3
4
5
1. 用户登录目标站点,获得会话 Cookie
2. 用户访问恶意页面
3. 恶意页面发起一个指向目标站点的请求
4. 浏览器自动附带 Cookie
5. 目标站点误认为请求来自合法用户

CSRF 常见后果:

1
2
3
4
5
改密码
发评论
转账
修改资料
关闭安全设置

二、CSRF 防御

1. CSRF Token

服务端生成一次性 token,表单或请求头中必须携带正确 token 才接受请求。

给 Cookie 设置 SameSite=LaxStrict,限制跨站请求携带 Cookie。

3. Origin / Referer 校验

服务端检查请求来源是否可信。

4. 重要操作二次确认

例如转账、改密、删除等动作要求再次输入密码或验证码。

影响与危害

CSRF 与 SSRF 造成的影响:

1
2
CSRF:在用户不知情下执行敏感操作(改密、转账、删数据)
SSRF:服务器成为跳板,访问内网/云元数据/扫描内部端口

SSRF 常被用来打内网和云平台(如 169.254.169.254 元数据)。风险等级:中到高。

三、SSRF:让服务器替你访问别的地址

SSRF(服务端请求伪造)的核心是:服务器根据用户提供的 URL 发起请求,结果访问了内部地址或其他敏感目标。

常见场景:

1
2
3
4
5
URL 预览
截图服务
Webhook 回调
图片代理
文件下载

SSRF 可能访问:

1
2
3
4
内网服务
元数据接口
Redis/MySQL 等本地服务
内部管理页面

四、SSRF 防御

1. 严格白名单

只允许访问预期域名或 IP 范围。

2. 禁止内网地址

拒绝:

1
2
3
4
5
6
127.0.0.0/8
10.0.0.0/8
172.16.0.0/12
192.168.0.0/16
169.254.0.0/16
0.0.0.0

3. 禁用自动重定向

防止通过 302 跳转到内网地址。

4. 超时与频率限制

避免成为请求放大或探测跳板。

5. 输出与日志审计

记录被访问的 URL、响应状态和调用来源。

修复

1
2
3
CSRF:校验 Referer/Origin + 使用 CSRF Token + SameSite Cookie
SSRF:服务端 URL 白名单、禁止访问内网地址、禁用重定向跟随、对响应做过滤
修复后复测:跨站请求被拦截、内网访问被阻断

五、CSRF 与 SSRF 在报告中的写法

好的报告要写出触发条件、影响和修复建议。

CSRF 示例:

1
2
3
发现:修改资料接口未校验 CSRF Token,已登录用户在恶意页面可被诱导修改资料。
风险:可能导致账户设置被篡改。
建议:增加 CSRF Token;启用 SameSite;关键操作二次验证。

SSRF 示例:

1
2
3
发现:图片预览接口允许访问任意 URL,可访问内网服务地址。
风险:可能导致内网探测、敏感信息泄露或横向移动。
建议:限制可访问域名;禁止内网地址;关闭自动重定向;增加日志告警。

六、小结

CSRF 和 SSRF 都是“服务器信任了什么不该信任的东西”。理解请求来源、Cookie 携带机制和服务端转发边界,是看懂这两类漏洞的关键。后续做日志分析、WAF 和渗透测试时,它们都会反复出现。

本站使用「署名 4.0 国际」创作共享协议,可自由转载、引用,但需署名作者且注明文章出处