写在前面:合法学习边界
本文讲解 CSRF 与 SSRF 的原理与防御。请不要对真实站点做绕过测试、内网探测或构造恶意请求。所有验证都必须在自建靶场、公司授权测试环境或明确书面授权的目标上进行。
一、CSRF:利用浏览器信任发起请求
CSRF(跨站请求伪造)的核心是:浏览器在用户已登录某个网站时,会把 Cookie 自动带上;攻击者诱使用户访问恶意页面,恶意页面在用户不知情的情况下向目标站点发起请求。
典型流程:
| |
CSRF 常见后果:
| |
二、CSRF 防御
1. CSRF Token
服务端生成一次性 token,表单或请求头中必须携带正确 token 才接受请求。
2. SameSite Cookie
给 Cookie 设置 SameSite=Lax 或 Strict,限制跨站请求携带 Cookie。
3. Origin / Referer 校验
服务端检查请求来源是否可信。
4. 重要操作二次确认
例如转账、改密、删除等动作要求再次输入密码或验证码。
影响与危害
CSRF 与 SSRF 造成的影响:
| |
SSRF 常被用来打内网和云平台(如 169.254.169.254 元数据)。风险等级:中到高。
三、SSRF:让服务器替你访问别的地址
SSRF(服务端请求伪造)的核心是:服务器根据用户提供的 URL 发起请求,结果访问了内部地址或其他敏感目标。
常见场景:
| |
SSRF 可能访问:
| |
四、SSRF 防御
1. 严格白名单
只允许访问预期域名或 IP 范围。
2. 禁止内网地址
拒绝:
| |
3. 禁用自动重定向
防止通过 302 跳转到内网地址。
4. 超时与频率限制
避免成为请求放大或探测跳板。
5. 输出与日志审计
记录被访问的 URL、响应状态和调用来源。
修复
| |
验证操作步骤
| |
五、CSRF 与 SSRF 在报告中的写法
好的报告要写出触发条件、影响和修复建议。
CSRF 示例:
| |
SSRF 示例:
| |
六、小结
CSRF 和 SSRF 都是“服务器信任了什么不该信任的东西”。理解请求来源、Cookie 携带机制和服务端转发边界,是看懂这两类漏洞的关键。后续做日志分析、WAF 和渗透测试时,它们都会反复出现。