SSRF漏洞:URL绕过方法以及原理案例详细讲解
字数 1509 2025-08-19 12:41:46

SSRF漏洞:URL绕过方法及原理详解

0x00 内容概述

本文档详细讲解SSRF漏洞的URL绕过方法及原理,包含以下核心内容:

  1. SSRF场景绕过方式(URL by Pass)
  2. 盲注SSRF
  3. SSRF漏洞判断方法
  4. 靶场示例
  5. 防御方法

0x01 漏洞概述

SSRF(Server-Side Request Forgery:服务器端请求伪造)主要针对Web应用中的跳转功能。当网站存在"url跳转"场景时,可能存在SSRF漏洞。

核心机制:攻击者传递恶意参数,服务器代替攻击者访问目标资源。

利用场景

  • 读取服务器内部/外部数据(如/etc/passwd)
  • 获取源码内容(如PHP文件)
  • 作为跳板攻击其他服务器
  • 实现远程代码执行

0x02 漏洞危害

  1. 服务器内网交互渗透
  2. 作为跳板机攻击其他服务器(隐藏攻击源)
  3. 获取敏感服务器信息
  4. 可能导致远程代码执行

0x03 漏洞发现与验证

查找位置

  • HTTP请求重定向/URL跳转处理逻辑
  • 文件导入转换功能(HTML/PDF/图像等)
  • 远程服务器数据获取功能
  • 外部链接业务处理功能

验证方法

  1. 初步验证:使用http://www.dnslog.cn/测试,查看是否有访问记录
  2. 限制绕过:尝试各种绕过技术
  3. 深入利用:确认漏洞后进行深度利用

0x04 URL绕过技术(byPass)

1. 基本绕过方法

  • 直接文件协议http://<TARGET>/load?q=file:///etc/passwd
  • 单斜线绕过http://<TARGET>/load?q=index.html/{file:///etc/passwd}

2. @符号绕过

原理:@符号在URL中用于分隔认证信息和实际域名

示例

  • https://www.baidu.com@www.bing.cn → 实际访问https://bing.cn
  • ftp://username:password@127.0.0.1 → FTP认证访问

注意

  • 协议头取自@前的协议
  • 带路径的URL可能无法正确解析

3. IP地址转换

当存在IP限制时,可使用多种IP表示形式:

类型 示例
十进制 http://2130706433 (127.0.0.1)
十六进制 http://0x7f000001
IPv6 http://[::ffff:7f00:1]
IPv6简化 http://[::ffff:127.0.0.1]
简化形式 http://127.1http://127.0.1
特殊IP http://0.0.0.0

4. 短域名服务

利用在线短域名生成服务绕过URL检测

0x05 常见协议利用

Gopher协议

gopher:// - 早期Internet信息检索协议,可用于构造复杂请求

0x06 防御方法

  1. 输入验证

    • 严格校验用户输入的URL
    • 禁止file://、gopher://等危险协议
  2. 白名单限制

    • 仅允许访问预定义的合法域名/IP
    • 限制访问内网地址
  3. URL解析

    • 规范化URL后再处理
    • 解析并验证最终请求的目标
  4. 网络层防护

    • 限制服务器出站连接
    • 使用网络隔离
  5. 其他措施

    • 禁用不必要的URL处理功能
    • 使用安全的库处理URL请求

总结

SSRF漏洞危害严重,攻击者可利用多种技术绕过防护。防御需要从输入验证、协议限制、网络隔离等多方面入手,建立纵深防御体系。开发人员应特别注意所有涉及URL跳转或远程资源获取的功能点。

SSRF漏洞:URL绕过方法及原理详解 0x00 内容概述 本文档详细讲解SSRF漏洞的URL绕过方法及原理,包含以下核心内容: SSRF场景绕过方式(URL by Pass) 盲注SSRF SSRF漏洞判断方法 靶场示例 防御方法 0x01 漏洞概述 SSRF (Server-Side Request Forgery:服务器端请求伪造)主要针对Web应用中的跳转功能。当网站存在"url跳转"场景时,可能存在SSRF漏洞。 核心机制 :攻击者传递恶意参数,服务器代替攻击者访问目标资源。 利用场景 : 读取服务器内部/外部数据(如/etc/passwd) 获取源码内容(如PHP文件) 作为跳板攻击其他服务器 实现远程代码执行 0x02 漏洞危害 服务器内网交互渗透 作为跳板机攻击其他服务器(隐藏攻击源) 获取敏感服务器信息 可能导致远程代码执行 0x03 漏洞发现与验证 查找位置 HTTP请求重定向/URL跳转处理逻辑 文件导入转换功能(HTML/PDF/图像等) 远程服务器数据获取功能 外部链接业务处理功能 验证方法 初步验证 :使用http://www.dnslog.cn/测试,查看是否有访问记录 限制绕过 :尝试各种绕过技术 深入利用 :确认漏洞后进行深度利用 0x04 URL绕过技术(byPass) 1. 基本绕过方法 直接文件协议 : http://<TARGET>/load?q=file:///etc/passwd 单斜线绕过 : http://<TARGET>/load?q=index.html/{file:///etc/passwd} 2. @符号绕过 原理 :@符号在URL中用于分隔认证信息和实际域名 示例 : https://www.baidu.com@www.bing.cn → 实际访问 https://bing.cn ftp://username:password@127.0.0.1 → FTP认证访问 注意 : 协议头取自@前的协议 带路径的URL可能无法正确解析 3. IP地址转换 当存在IP限制时,可使用多种IP表示形式: | 类型 | 示例 | |------|------| | 十进制 | http://2130706433 (127.0.0.1) | | 十六进制 | http://0x7f000001 | | IPv6 | http://[::ffff:7f00:1] | | IPv6简化 | http://[::ffff:127.0.0.1] | | 简化形式 | http://127.1 或 http://127.0.1 | | 特殊IP | http://0.0.0.0 | 4. 短域名服务 利用在线短域名生成服务绕过URL检测 0x05 常见协议利用 Gopher协议 gopher:// - 早期Internet信息检索协议,可用于构造复杂请求 0x06 防御方法 输入验证 : 严格校验用户输入的URL 禁止file://、gopher://等危险协议 白名单限制 : 仅允许访问预定义的合法域名/IP 限制访问内网地址 URL解析 : 规范化URL后再处理 解析并验证最终请求的目标 网络层防护 : 限制服务器出站连接 使用网络隔离 其他措施 : 禁用不必要的URL处理功能 使用安全的库处理URL请求 总结 SSRF漏洞危害严重,攻击者可利用多种技术绕过防护。防御需要从输入验证、协议限制、网络隔离等多方面入手,建立纵深防御体系。开发人员应特别注意所有涉及URL跳转或远程资源获取的功能点。