当前位置: 首页 > news >正文

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

相关文章:

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

未经许可,不得转载。 文章目录 前言正文漏洞利用 前言 Acme 是一家广受欢迎的播客托管公司,拥有庞大的客户群体。与许多大型运营公司一样,Acme 采用了Apiary的服务,使用户能够安全高效地管理他们的播客。 Apiary 于2017年初被Or…...

Android Bitmap

在Android开发中,位图(Bitmap)是一个非常重要的图形处理对象,它用于在内存中存储图像数据。以下是关于Android中位图使用的一些关键点和方法: 一、获取位图 从资源文件中获取: 使用BitmapFactory类&#…...

2024 年全国青少年信息素养大赛 Python 小学组复赛真题

2024 年全国青少年信息素养大赛 Python 小学组复赛真题 《伶俐角少儿编程》gzh查看所有题目 第一题 题目描述 在一个神秘的王国里,国王希望通过一个简单的测试来评估他的子民对基础数学运算的掌握情况。他决定让每个人输入一个正整数 N (0≤N≤1000),然后计算并输出(5N)的值…...

C语言——流程控制:if...else、switch...case

控制类语句: 逻辑运算符: 选择语句: if...else: if()括号内的内容终究会被转换成0,1,满足的话即为1,不满足的话为0。因此要注意,()括号内因为条件…...

小白的OS Copilot 产品测评

背景 通过群友介绍才知OS Copilot 。不想错过任何优秀的AI产品。随着互联网的发展和时代的进步,要紧跟时代,了解市面上的优秀的AI科技产品。 OS Copilot 产品体验评测 1)您的角色是什么?开发、运维、学生?如果使用O…...

使用Scikit-Learn决策树:分类问题解决方案指南

如何用scikit-learn的决策树分类器解决分类问题 1. 引言 在本教程中,我们将探讨如何使用scikit-learn(sklearn)库中的决策树分类器解决分类问题。决策树是一种强大的机器学习算法,能够根据输入数据的特征属性学习决策规则&#…...

E12.【C语言】练习:求两个数的最大公约数

1.枚举 #define _CRT_SECURE_NO_WARNINGS #include <stdio.h> int main() {int a 0;int b 0;int tmp 0;scanf("%d %d", &a, &b);if (a < b){for (int i1; i < a; i){if (0a% i && 0b%i)tmp i;}}if (a>b){for (int i 1; i <…...

Elasticsearch:介绍 retrievers - 搜索一切事物

作者&#xff1a;来自 Elastic Jeff Vestal, Jack Conradson 在 8.14 中&#xff0c;Elastic 在 Elasticsearch 中引入了一项名为 “retrievers - 检索器” 的新搜索功能。继续阅读以了解它们的简单性和效率&#xff0c;以及它们如何增强你的搜索操作。 检索器是 Elasticsearc…...

全面升级的对象创建——抽象工厂模式(Python实现和JAVA实现)

1. 引言 大家好&#xff01;在之前的文章中&#xff0c;我们探讨了简单工厂和工厂方法模式&#xff1a; 轻松创建对象——简单工厂模式&#xff08;Python实现&#xff09; 轻松创建对象——简单工厂模式&#xff08;Java实现&#xff09; 灵活多变的对象创建——工厂方法模式…...

谷粒商城实战笔记-29~34-前端基础 - ES6

文章目录 零&#xff0c;安装Live Server插件一&#xff0c;创建前端工程1&#xff0c;创建工程2&#xff0c;在工程ES6中创建一个html文件 二&#xff0c;ES6 简介1&#xff0c;ES6 的历史 三&#xff0c;前端基础ES61&#xff0c;let 和 const1.1&#xff0c;let1.1.1 严格的…...

浔川官方撤销浔川总社部社长王*职位——浔川官方

2024年7月13日晚9点半&#xff0c;浔川社团举报中心接到举报&#xff0c; 询问情况后&#xff0c;才知&#xff0c;浔川社团前日&#xff08;7月13日&#xff09;发布了一篇文章《浔川回应浔川官方宣布官方账号将在CSDN进行无人管理——浔川官方》文章会被删除&#xff0c;官方…...

小白学python(第七天)

哈哈&#xff0c;这个系列的文章也有一段时间没更新&#xff0c;主要是最近在忙c嘎嘎&#xff0c;不过没事接下来会优先更python啦&#xff0c;那么我们先进入正题吧 函数的定义及调用 函数定义 格式&#xff1a;def 函数名&#xff08;形参列表&#xff09;&#xff1a; 语…...

npm和yarn清理缓存命令

yarn清除缓存 1、查看yarn全局缓存目录 yarn cache dir2、清除缓存 yarn cache cleannpm 清除缓存 1、将node-modules文件夹先删除 2、清理缓存命令&#xff1a; npm cache clean --force3、重新安装一次即可 npm install /cnpm install...

数据结构之初始二叉树(1)

找往期文章包括但不限于本期文章中不懂的知识点&#xff1a; 个人主页&#xff1a;我要学编程(ಥ_ಥ)-CSDN博客 所属专栏&#xff1a;数据结构&#xff08;Java版&#xff09; 目录 树型结构 树的概念 与树的有关概念 树的表示形式 树的应用 二叉树 概念 两种特殊的…...

STM32-寄存器点灯案例详解

本文以PA1引脚点亮LED灯为案例&#xff0c;解析了STM32寄存器操作的配置过程&#xff0c;以及从手册查询方法和寄存器配置步骤。 一、概念 1.十六进制和二进制之间相互转换关系 首先&#xff0c;需要了解十六进制和二进制之间的基本转换方法。十六进制是一种基数为16的数制&…...

Github Action 自动部署更新静态网页服务

本文首发于 Anyeの小站&#xff0c;点击跳转 获得更优质的阅读体验 前言 贴一段胡话 在用过 应用&#xff1a;静态网页服务 之后&#xff0c;事实证明&#xff1a; 总而言之&#xff0c;自动化是一个很令人着迷的东西&#xff0c;摆脱重复繁琐的工作&#xff0c;解放了双手的…...

如何在CSS中控制动画的触发位置?

如何在CSS中控制动画的触发位置&#xff1f; 在CSS中控制动画的触发位置主要是通过transform属性来实现的。例如&#xff0c;如果你希望动画从某个固定的位置开始&#xff0c;可以设置transform: translate(x, y)&#xff0c;其中x和y是你想让元素偏离其原始位置的距离。对于动…...

MFC流的形式读取图片

1.基于对话框布置控件 2.给控件绑定变量 3.给按钮控件添加响应函数 void CMFC流的形式读取图片Dlg::OnBnClickedButton1() {// TODO: 在此添加控件通知处理程序代码//HDC mECGDC; // 设备描述表句柄//CPen mECGDrawPen; // ECG波形画笔//RECT mECGRect; // 在该矩形区域内画…...

查找PPT中某种字体的全部对应文字

本文章的目的是找到某种字体的文字&#xff0c;而不是替换某种字体的文字&#xff0c;也不是将某种字体全部替换为另外一种文字。 第一步&#xff1a;在PPT中按下ALTF11 出现以下窗口 第二步&#xff1a;点击插入->模块 第三步&#xff1a;将以下代码输入到窗体中 Sub F…...

相机光学(三十一)——暗房设置的要求

ISO标准通常在测试相机时指定对周围条件的要求。由于摄影ISO组试图保持这些要求与所有标准一致&#xff0c;所以我们总结了这个“技术说明”中的重要方面。   温度应保持在23C /- 2C的范围内。在设计空调系统时&#xff0c;请记住图表照明的耗电量和发热量。湿度需要在&#…...

Linux安全技术与防火墙

一、安全技术和防火墙 1.1 安全技术 入侵检测系统&#xff1a;特点是不阻断网络访问&#xff0c;主要是提供报警和时候报警&#xff0c;不主动介入。 入侵防御系统&#xff1a;透明模式工作&#xff0c;对数据包、网络监控、服务攻击、木马蠕虫、系统漏洞等等进行准确的分析和…...

C#中简单Socket编程

C#中简单Socket编程 Socket分为面向连接的套接字(TCP套接字)和面向消息的套接字(UDP 套接字)。我们平时的网络编程是对Socket进行操作。 接下来&#xff0c;我用C#语言来进行简单的TCP通信和UDP通信。 一、TCP通信 新建项目SocketTest&#xff0c;首先添加TCP通信的客户端代…...

UNIAPP_ReferenceError: TextEncoder is not defined 解决

错误信息 1、安装text-decoding npm install text-decoding2、main.js import { TextEncoder, TextDecoder } from text-decoding global.TextEncoder TextEncoder global.TextDecoder TextDecoder...

科普文:微服务技术栈梳理

概叙 如上两图所示&#xff0c;微服务架构下&#xff0c;需要的组件很多&#xff0c;上面中也并未列全。下面将梳理一下国内微服务架构下&#xff0c;用到的技术栈&#xff0c;仅供参考。 科普文&#xff1a;12种常见的软件架构-CSDN博客 没有最好的架构&#xff0c;只有最适…...

如何使用HTML和JavaScript读取文件夹中的所有图片并显示RGB范围

如何使用HTML和JavaScript读取文件夹中的所有图片并显示RGB范围 在这篇博客中&#xff0c;我将介绍如何使用HTML和JavaScript读取文件夹中的所有图片&#xff0c;并显示这些图片以及它们的RGB范围。这个项目使用现代浏览器提供的<input type"file" webkitdirecto…...

PDF公式转Latex

文章目录 摘要数据集 UniMER介绍下载链接 LaTeX-OCRUniMERNet安装UniMER 用的数据集介绍下载链接 PDF-Extract-Kit整体介绍效果展示评测指标布局检测公式检测公式识别 使用教程环境安装参考[模型下载](models/README.md)下载所需模型权重 在Windows上运行在macOS上运行运行提取…...

excel 百分位函数 学习

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、函数说明PERCENTILE 函数PERCENTILE.inc 函数PERCENTILE.exc 函数QUARTILE.EXC 函数 二、使用步骤总结 前言 excel 百分位函数 Excel提供了几个函数用于…...

(十一) Docker compose 部署 Mysql 和 其它容器

文章目录 1、前言1.1、部署 MySQL 容器的 3 种类型1.2、M2芯片类型问题 2、具体实现2.1、单独部署 mysql 供宿主机访问2.1.1、文件夹结构2.1.2、docker-compose.yml 内容2.1.3、运行 2.2、单独部署 mysql 容器供其它容器访问&#xff08;以 apollo 为例&#xff09;2.2.1、文件…...

提高项目透明度:有效的跟踪软件

国内外主流的10款项目进度跟踪软件对比&#xff1a;PingCode、Worktile、Teambition、Tower、Asana、Trello、Jira、ClickUp、Notion、Liquid Planner。 在项目管理中&#xff0c;确保进度跟踪的准确性与效率是每位项目经理面临的主要挑战之一。选用合适的项目进度跟踪软件不仅…...

大模型生成人物关系思维导图的实战教程

大家好,我是herosunly。985院校硕士毕业,现担任算法研究员一职,热衷于机器学习算法研究与应用。曾获得阿里云天池比赛第一名,CCF比赛第二名,科大讯飞比赛第三名。拥有多项发明专利。对机器学习和深度学习拥有自己独到的见解。曾经辅导过若干个非计算机专业的学生进入到算法…...