网站提供“输入图片 URL,由服务器下载并生成缩略图”功能。攻击者提交指向云环境链路本地元数据服务的 URL,试图让服务器代为读取凭据。该攻击主要属于()。
SSRF 利用服务器代发网络请求的能力访问攻击者本来无法直达的内网、环回或元数据服务。题干的危险点不是浏览器替用户提交操作,而是服务器被诱导访问受信任网络位置。
选项分析
错误。CSRF 依赖受害者浏览器携带登录凭据发起跨站操作。
正确。攻击者控制服务端请求目标,利用服务器访问受限资源。
错误。题干没有把恶意脚本注入页面并在浏览器执行。
错误。没有将输入拼接进数据库语句。
本题为什么容易错
只做 URL 前缀黑名单很容易漏。一个域名可能先解析成公网地址,随后变成内网地址;跳转后的目标也可能越过最初检查。
简短答案
用户提交图片 URL,服务器却访问内网元数据地址,这属于什么风险,正确答案是 B(服务端请求伪造 SSRF)。SSRF 利用服务器代发网络请求的能力访问攻击者本来无法直达的内网、环回或元数据服务。题干的危险点不是浏览器替用户提交操作,而是服务器被诱导访问受信任网络位置。
易混淆概念对比表
| 概念 | 本题判断 | 区别要点 | 记忆提示 |
|---|---|---|---|
| 跨站请求伪造 CSRF | 本题干扰项 | 错误。CSRF 依赖受害者浏览器携带登录凭据发起跨站操作。 | 看到该词不要急着选,先判断是否真正解决题干问题 |
| 服务端请求伪造 SSRF | 本题正确答案 | 正确。攻击者控制服务端请求目标,利用服务器访问受限资源。 | 看到题干核心场景时优先联想到它 |
| 反射型 XSS | 本题干扰项 | 错误。题干没有把恶意脚本注入页面并在浏览器执行。 | 看到该词不要急着选,先判断是否真正解决题干问题 |
| SQL 注入 | 本题干扰项 | 错误。没有将输入拼接进数据库语句。 | 看到该词不要急着选,先判断是否真正解决题干问题 |
本题易混淆选项怎么区分
- 跨站请求伪造 CSRF:错误。CSRF 依赖受害者浏览器携带登录凭据发起跨站操作。
- 反射型 XSS:错误。题干没有把恶意脚本注入页面并在浏览器执行。
- SQL 注入:错误。没有将输入拼接进数据库语句。
知识点详解
SSRF 防护应覆盖协议、域名、端口、DNS 解析结果、重定向链和实际连接地址。云环境还应采用新版元数据访问机制、限制实例身份权限并监控异常访问。单靠应用层正则难以覆盖所有地址编码和解析差异,网络层出站限制是重要补充。下载服务最好放在隔离网络,并限制响应大小、协议和超时。
备考速记
CSRF 借浏览器身份,SSRF 借服务器位置。
SSRF 在Web 安全场景中的作用
SSRF在本题中的核心价值,是解决“网站提供“输入图片 URL,由服务器下载并生成缩略图”功能。攻击者提交指向云环境链路本地元数据服务的 URL,试图让服务器代为读取凭据。该攻击主要属于()”这个场景问题。复习时不要只背选项名称,还要理解它为什么适用于该场景,以及它能解决哪类安全、流程或管理问题。
同类题怎么考
- 服务端抓取 URL 被利用访问 127.0.0.1、内网或元数据服务。
- 比较 SSRF、CSRF、XSS 和开放重定向。
SSRF 在信息安全工程师软考中的考法
软考选择题通常不会只考概念定义,还会把SSRF放到Web 安全场景中,要求判断它的作用、适用范围或与相近概念的区别。遇到这类题时,先抓住题干中的业务场景,再看哪个选项最能解决该场景下的核心问题。
解题思路
先问“谁在发危险请求”。图片下载器运行在服务器,它往往能访问内网地址、环回地址和云元数据端点。攻击者只是给了一个 URL,就借到了服务器的网络位置和信任边界,这就是 SSRF。防护不能只检查字符串里有没有 127.0.0.1,还要考虑 DNS 重绑定、IPv6 表示、重定向和解析后的真实目标。
考点定位
SSRF 与 CSRF 只差一个 S,但发请求的主体不同:SSRF 借服务器身份访问网络资源,CSRF 借用户浏览器和登录态执行操作。
易错提醒
- 只拦截字符串形式的 localhost,漏掉十六进制、IPv6 和 DNS 解析结果。
- 允许任意重定向,初始 URL 合法但最终落到内网。
- 服务器出站网络没有最小权限,应用可访问所有内部服务。
备考提示
- 优先使用明确的目标域名或服务白名单,并在解析后检查 IP 类型。
- 结合出站防火墙、代理、元数据服务强化和短期凭据降低故障半径。
你可能还想了解
- SSRF 和 CSRF 有什么区别?
- 为什么 URL 黑名单很难完全防住 SSRF?
- DNS 重绑定如何绕过 SSRF 检查?
本文小结
服务器根据用户URL代发请求,并被诱导访问云元数据或内网资源,是典型SSRF。防护要覆盖解析后IP、重定向和出站网络权限,不能只做简单字符串黑名单。