SSRF 服务端请求伪造-漏洞解析8 前言SSRFServer-Side Request Forgery服务端请求伪造是内网渗透最核心高危漏洞常年位列 OWASP 风险清单、护网资产排查 TOP 漏洞。不同于 XSS、越权作用于应用层SSRF 的攻击面横跨「公网→服务器本地→内网网段」攻击者借助服务端身份发起请求突破防火墙、安全组隔离实现内网端口扫描、内网应用漏洞探测、Redis/Mongo 未授权访问、RCE 远程命令执行等链式攻击。本文从底层原理、典型业务场景、分层攻击手段、完整渗透链路、企业落地防御五个维度拆解内容贴合代码审计、渗透实战、Java 安全面试全部知识点可直接用于面试背诵与项目安全整改。一、SSRF 漏洞基础原理1. 漏洞本质服务端代码支持从用户可控 URL 地址拉取资源远程图片下载、URL 预览、第三方内容抓取、文件获取等功能没有对目标请求地址做内网、本地地址黑名单过滤攻击者传入恶意地址由服务器代为发起网络请求。2. 完整攻击链路攻击者提交恶意 URL → Web 后端使用 curl/HttpClient/OkHttp 等组件发起请求 → 服务端访问内网 / 本地资源 → 返回数据回显至页面 → 攻击者获取内网信息或触发漏洞利用。3. 容易产生漏洞的开发组件JavaHttpClient、OkHttp、RestTemplate、URLConnectionPHPfile_get_contents、curl_execPythonrequests、urllib凡是代码接收外部传入 url 并自动请求资源都存在 SSRF 风险。二、高频出现 SSRF 的业务场景实战、代码审计优先排查以下五类功能90% SSRF 漏洞出自这里图片远程下载 / 头像外链输入图片 URL后端拉取图片保存到服务器网页预览、链接快照输入网址后端抓取页面内容生成预览第三方接口对接用户自定义第三方 API 地址服务端主动调用文件远程导入填写远程文件地址后端下载解析文件站内爬虫功能自定义目标链接系统自动爬取内容。三、SSRF 分层攻击手段1. 访问服务器本地资源探测本地端口http://127.0.0.1:3306、http://127.0.0.1:6379、http://127.0.0.1:22访问本地后台管理系统、内网运维面板读取本地部分文件部分协议支持 file://file:///etc/passwd(Linux)、file://C:/Windows/system.ini(Windows)。2. 内网全网段端口扫描利用内网私有网段192.168.0.0/16、172.16.0.0/12、10.0.0.0/8批量遍历端口通过页面返回长度、报错差异判断端口开放状态。 Payload 示例端口开放页面返回正常内容端口关闭连接超时 / 报错完成内网资产测绘。3. 内网高危组件漏洞利用Redis 未授权访问http://192.168.x.x:6379写入 SSH 密钥、反弹 Shell、写入定时任务实现服务器接管MongoDB/Elasticsearch 未授权通过 SSRF 访问对应端口拖库、写入恶意数据Fastjson、Spring4Shell 等内网应用漏洞调用内网漏洞接口触发 RCE访问内网 Nacos、Consul 配置中心获取数据库账号密码、密钥。4. 协议攻击部分请求组件支持非 HTTP 协议突破 HTTP 限制Dict 协议探测端口、执行 Redis 指令Gopher 协议构造 TCP 报文无回显漏洞变成可利用漏洞是 SSRF 打通内网 RCE 的关键协议5. 绕过 DNS 解析域名跳转绕过 IP 黑名单使用指向内网 IP 的域名、短链接跳转绕过 IP 黑名单校验后端解析域名后实际访问内网地址。四、完整内网渗透实战链路发现 SSRF 漏洞 → 127.0.0.1 端口探测摸清本机开放服务遍历内网 C 段批量扫描存活主机与开放端口筛选内网高危端口6379、27017、9200、3306使用 Gopher/Dict 协议利用未授权组件写入后门拿下内网一台服务器以此为跳板横向渗透整个内网。 护网行动中大量内网沦陷溯源都是起始于一处 SSRF 漏洞。五、企业级落地防御方案1. 白名单优先策略只允许访问业务可信域名 / IP不在白名单的地址直接拦截禁止用户自定义任意 URL。多用于图片预览、第三方对接场景。2. IP 黑名单拦截拦截三类高危地址段本地回环127.0.0.0/8、0.0.0.0内网私有网段10.0.0.0/8、172.16.0.0/12、192.168.0.0/16保留特殊地址、组播地址。Java 校验伪代码// 获取URL解析后的目标IP判断是否在内网/本地段命中直接拒绝 InetAddress addr InetAddress.getByName(host); String ip addr.getHostAddress(); if(isLocalOrInnerIp(ip)){ return 非法地址禁止访问; }3. 协议黑名单限制禁用非业务必要协议file://、gopher://、dict://、ftp://仅保留http://、https://。4. 请求出站资源限制限制请求连接超时时间500ms 以内防止攻击者长时间内网扫描限制单次请求资源大小避免超大文件下载造成 DOS使用独立内网隔离代理机器拉取资源代理机器无内网访问权限。5. 服务端环境加固禁用危险组件的重定向跟随关闭 HttpClient 自动 302 跳转防止跳转绕过 IP 校验内网高危中间件Redis/Mongo添加密码认证关闭未授权访问WAF 添加 SSRF 特征规则拦截内网网段请求。6. 开发编码规范禁止直接使用用户输入 URL 作为资源请求地址接口入参做格式强校验限制域名格式代码审计全局检索getImage、getUrl、download等关键词定位风险点。六、面试高频考点1. 什么是 SSRF漏洞危害SSRF 即服务端请求伪造攻击者利用服务端主动请求 URL 的功能操控服务器访问本地或内网资源危害包含本地信息泄露、内网端口扫描、内网未授权组件利用、远程代码执行、内网横向渗透。2. SSRF 有哪些利用协议常用 HTTP/HTTPS 用于常规探测Gopher、Dict 用于高阶漏洞利用file 用于本地文件读取生产环境必须封禁后三类协议。3. 防御 SSRF 关键点是什么解析域名获取真实 IP 再做内网黑名单校验防域名跳转绕过封禁 file/gopher/dict 等危险协议优先可信域名白名单限制请求超时关闭 HTTP 自动重定向。4. 如何绕过简单的 IP 黑名单短链接跳转、DNS 域名解析指向内网 IP、302 重定向跳转因此必须解析目标真实 IP 再校验。七、总结SSRF 的核心本质利用服务器的网络位置借刀入侵内网。防火墙能拦外网拦不住服务器本机。 安全开发记住三条铁律不信任任何用户传入的 URL校验 IP 必须解析域名真实地址非必要协议一律封禁。在护网、代码审计场景中SSRF 是突破内网边界的关键入口也是 Java 安全、渗透测试岗位面试必考漏洞。