【网络安全】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/

相关推荐
荒川之神26 分钟前
ORACLE 闪回技术简介
数据库·oracle
newxtc2 小时前
【支付行业-支付系统架构及总结】
安全·支付宝·第三方支付·风控系统·财付通
Mephisto.java2 小时前
【大数据学习 | kafka高级部分】kafka的优化参数整理
大数据·sql·oracle·kafka·json·database
newxtc2 小时前
【旷视科技-注册/登录安全分析报告】
人工智能·科技·安全·ddddocr
成都古河云2 小时前
智慧场馆:安全、节能与智能化管理的未来
大数据·运维·人工智能·安全·智慧城市
Gworg2 小时前
您与此网站之间建立的连接不安全解决方法
安全
ac-er88883 小时前
MySQL如何实现PHP输入安全
mysql·安全·php
BearHan5 小时前
Sqlsugar调用Oracle的存储过程
oracle·存储过程·orm
superman超哥5 小时前
04 深入 Oracle 并发世界:MVCC、锁、闩锁、事务隔离与并发性能优化的探索
数据库·oracle·性能优化·dba
jjyangyou6 小时前
物联网核心安全系列——物联网安全需求
物联网·算法·安全·嵌入式·产品经理·硬件·产品设计