【网络安全】Oracle:SSRF获取元数据

未经许可,不得转载。

文章目录

前言

Acme 是一家广受欢迎的播客托管公司,拥有庞大的客户群体。与许多大型运营公司一样,Acme 采用了Apiary的服务,使用户能够安全高效地管理他们的播客。

Apiary 于2017年初被Oracle收购,提供了一套完整的工具集,用于开发、测试和管理REST API。

正文

注册 Acme Services。主页面如下:

在这里插入图片描述

上图显示了带有模板的 Apiary REST API 页面。左侧列出了可用的端点列表,每个端点根据其用途通常具有不同的请求方法,如 GET、POST 或 PUT;中间部分展示了有关每个端点的详细信息;右侧是 REST API 控制台,其中包含修改请求的各种选项,如 URI 参数、请求标头和请求正文。

右侧给出了一个示例URI:https://polls.apiblueprint.org/questions,并只能发送 GET 请求。

根据端点名称推测,发送GET请求将返回与调查相关的内容。使用UI控制台发送请求后,收到了预期的数据:

在这里插入图片描述

而该请求在BurpSuite中却是这样的:

在这里插入图片描述

也就是说,UI控制台显示的Get请求实质上是通过https://jsapi.apiary.io/apis/ssrftest/http-transactions/接口、以POST请求发送的。

通过响应包可以看到,存在一个URL参数,Apiary 正在创建一个模拟端点,端点环境为apiary-mock:

在这里插入图片描述

在生产环境中,通常是一个环境(Staging、Development、QA、Testing、Production、Question 等)对应一个单独的端点。而环境参数即为请求包中的Destination参数。

尝试将Destination参数由production改为questions:

在这里插入图片描述

响应如下,说明在此应用程序中,确实存在多组一一映射关系:

在这里插入图片描述

漏洞利用

云提供商(如AWS、Microsoft Azure和Google Cloud)使用的云服务器元数据 REST 接口通常通过 http://169.254.169.254 提供。

该地址是提供实例元数据服务(IMDS)的入口点。IMDS允许实例在运行时获取其自身的详细信息,包括但不限于:

  • 实例的ID和名称
  • 实例的IP地址和其他网络配置信息
  • 实例的操作系统和应用程序信息
  • 实例的启动参数和元数据

因此尝试修改URL参数为 http://169.254.169.254/opc/v2/(Oracle Cloud 的实例元数据版本) ,以访问 Oracle Cloud 的 IMDS 端点:

在这里插入图片描述

响应如下:

在这里插入图片描述

我们收到了敏感数据,其中包含三个主要证书文件:cert.pem、Intermediate.pem、key.pem

这三个文件都负责509证书签名过程,接下来,我们在本地配置属性,就可以直接通过Oracle调用接口(OCI)进行渗透测试。

第一步:使用Python的Flask模块在本地设置一个服务器。这样,当我们向实际服务器发送请求时,我们的本地服务器将通过自定义的本地地址获取所有三个证书文件。

第二步:使用命令sudo /sbin/ifconfig lo0 169.254.169.254 netmask 255.255.255.0 up,将本地主机地址重置为与IMDSv1地址相同(169.254.169.254)。这样,在向OCI服务器发送命令时,它将在IMDSv1服务器(即本地)上查找这三个证书文件。

第三步:认证成功。

接着我们就可以执行命令:

oci–auth instance_principal iam compartment list–compartment id ocid1.tancy.oc1..aaaaaaaa t6du5rqytqh7vxfxh3fxbij7abcdefghiklmnopqrstuvxyz

这里列出指定 compartment-id 的 IAM(身份和访问管理)部门。--auth instance_principal 表示我们使用实例主体身份验证,ocid1.tenancy.oc1..aaaaaaaat6du5rqytqh7vxfxh3fxbij7abcdefghiklmnopqrstuvwxyz 是一个示例的租户ID(Tenancy OCID),用于指定我们要查询的部门所在的租户。

回显如下,获取敏感数据:

在这里插入图片描述

在这里插入图片描述

原文出处:https://orca.security/resources/blog/oracle-server-side-request-forgery-ssrf-attack-metadata/

相关推荐

  1. php 获取网页数据

    2024-07-11 13:54:01       28 阅读
  2. flink消费kafka时获取数据信息

    2024-07-11 13:54:01       29 阅读
  3. # 15 React 使用useEffect获取网络数据

    2024-07-11 13:54:01       41 阅读
  4. 如何安全的进行数据获取!!

    2024-07-11 13:54:01       30 阅读
  5. 网络安全>《18 数据安全交换系统》

    2024-07-11 13:54:01       41 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-11 13:54:01       66 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-11 13:54:01       70 阅读
  3. 在Django里面运行非项目文件

    2024-07-11 13:54:01       57 阅读
  4. Python语言-面向对象

    2024-07-11 13:54:01       68 阅读

热门阅读

  1. MyClass.static_method() 加不加括号有什么区别

    2024-07-11 13:54:01       23 阅读
  2. AcWing 1633:外观数列

    2024-07-11 13:54:01       26 阅读
  3. nginx的重定向

    2024-07-11 13:54:01       24 阅读
  4. SpringBoot整合Easy-Es最佳实践

    2024-07-11 13:54:01       21 阅读
  5. SpringBoot防止重复提交 AOP+自定义注解+redis

    2024-07-11 13:54:01       23 阅读
  6. 在Spring Boot中实现多租户架构的数据隔离

    2024-07-11 13:54:01       21 阅读
  7. LeetCode --- 2119. A Number After a Double Reversal 解题报告

    2024-07-11 13:54:01       19 阅读
  8. sublime使用

    2024-07-11 13:54:01       22 阅读