Oracle Apiary:SSRF获取元数据

admin 2024年7月10日16:48:39评论31 views字数 2076阅读6分55秒阅读模式

Oracle Apiary:SSRF获取元数据

正文

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

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

注册 Acme Services,主页面如下:

Oracle Apiary:SSRF获取元数据

上图显示了带有模板的 Apiary REST API 页面。

其中,左侧列出了可用的端点列表,每个端点根据其用途通常具有不同的请求方法,如GET、POST 或 PUT;
中间部分展示了有关每个端点的详细信息;右侧是 REST API 控制台,其中包含修改请求的各种选项,如 URI 参数、请求标头和请求正文;
右侧给出了一个示例URI:https://polls.apiblueprint.org/questions,并只能发送 GET 请求。

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

Oracle Apiary:SSRF获取元数据

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

Oracle Apiary:SSRF获取元数据

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

其响应包中存在一个URL参数,Apiary 正在创建一个模拟端点,端点环境为apiary-mock:

Oracle Apiary:SSRF获取元数据

在生产环境中,通常是一个环境(Staging、Development、QA、Testing、Production、Question 等)对应一个单独的端点。

该应用程序中的环境参数即为请求包中的Destination参数。

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

Oracle Apiary:SSRF获取元数据

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

Oracle Apiary:SSRF获取元数据

漏洞利用

云提供商(如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 端点:

Oracle Apiary:SSRF获取元数据

返回包如下:

Oracle Apiary:SSRF获取元数据

服务器返回了敏感数据,其中包含三个主要证书文件: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服务器(即本地)上查找这三个证书文件。

第三步:认证成功。

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

ociauth instance_principal iam compartment listcompartment id ocid1.tancy.oc1..aaaaaaaa t6du5rqytqh7vxfxh3fxbij7abcdefghiklmnopqrstuvxyz

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

Oracle Apiary:SSRF获取元数据

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

Oracle Apiary:SSRF获取元数据

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

SRC漏洞挖掘培训

玲珑安全第三期如约而至

第二期玲珑安全培训班来啦!

玲珑安全第一期SRC培训班即将开课!

往期漏洞分享

SSRF 之 Azure Digital Twins Explorer

1000美元:重定向的故事

XSS之绕过HttpOnly实现帐户接管

sql server注入实现RCE

玲珑安全交流群

Oracle Apiary:SSRF获取元数据

玲珑安全B站免费公开课

https://space.bilibili.com/602205041

Oracle Apiary:SSRF获取元数据

原文始发于微信公众号(芳华绝代安全团队):Oracle Apiary:SSRF获取元数据

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年7月10日16:48:39
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   Oracle Apiary:SSRF获取元数据https://cn-sec.com/archives/2939701.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息