【第93课】云服务篇&对象存储&Bucket桶&任意上传&域名接管&AccessKey泄漏

免责声明

本文发布的工具和脚本,仅用作测试和学习研究,禁止用于商业用途,不能保证其合法性,准确性,完整性和有效性,请根据情况自行判断。

如果任何单位或个人认为该项目的脚本可能涉嫌侵犯其权利,则应及时通知并提供身份证明,所有权证明,我们将在收到认证文件后删除相关内容。

文中所涉及的技术、思路及工具等相关知识仅供安全为目的的学习使用,任何人不得将其应用于非法用途及盈利等目的,间接使用文章中的任何工具、思路及技术,我方对于由此引起的法律后果概不负责。

知识点

1、云服务-对象存储-权限配置不当
2、云服务-对象存储-域名解析接管
3、云服务-对象存储-AccessKey泄漏

章节点:

云场景攻防:公有云,私有云,混合云,虚拟化集群,云桌面等
云厂商攻防:阿里云,腾讯云,华为云,亚马云,谷歌云,微软云等
云服务攻防:对象存储,云数据库,弹性计算服务器,VPC&RAM等
云原生攻防:Docker,Kubernetes(k8s),容器逃逸,CI/CD等
云服务,顾名思义就是云上服务,在云厂商上购买的产品服务。
国内有阿里云、腾讯云、华为云、天翼云、Ucloud、金山云等,
国外有亚马逊的AWS、Google的GCP、微软的Azure,IBM云等。

各个云厂商对云服务的叫法都不统一,这里统一以亚马逊的AWS为例。
S3 对象存储Simple Storage Service,简单的说就是一个类似网盘的东西
EC2 即弹性计算服务Elastic Compute Cloud,简单的说就是在云上的一台虚拟机。
RDS 云数据库Relational Database Service,简单的说就是云上的一个数据库。
IAM 身份和访问管理Identity and Access Management,简单的说就是云控制台上的一套身份管理服务,可以用来管理每个子账号的权限。

对象存储各大云名词:

阿里云:OSS 腾讯云:COS 华为云:OBS
谷歌云:GCS 微软云:Blob 亚马逊云:S3

对象存储:

对象存储用来存储数据的(图片、视频、音频等,网站在从这个对象存储桶里调用的这些数据),告别传统的数据放在自己服务器硬盘上。

一、演示案例-云服务-对象存储-权限配置不当

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

权限控制-公共读或公共读写:可完整访问但不显示完整结构目录

在这里插入图片描述
在这里插入图片描述
这里就会有个问题,就是必须知道具体文件名才能读。
在这里插入图片描述

权限控制-Bucket授权策略:设置ListObject显示完整结构目录

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

权限控制-Bucket公共读写权限:公共读写直接PUT文件任意上传

在这里插入图片描述
在这里插入图片描述
提示403是因为没有写的权限,只是读的。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

二、演示案例-云服务-对象存储-域名解析接管

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
需要等待一会才会解析生效
在这里插入图片描述
在这里插入图片描述

如何在实战中判断对方域名绑定了OSS存储桶?

在这里插入图片描述
在这里插入图片描述

公共读写权限-任意文件上传

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

OSS桶接管

Bucket存储桶绑定域名后,当存储桶被删除而域名解析未删除,可以尝试接管!(自己去新建一个存储桶,然后去绑定这个域名从而实现接管)

当Bucket显示NoSuchBucket说明是可以接管的,如果显示AccessDenied则不行。
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
注意,新建一个OSS桶的时候,对方用的什么云存储桶你就用什么云存储桶,对方存储桶地域是什么,新建的时候也要选择对应的地域。

fofa实战

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

三、演示案例-云服务-对象存储-AccessKey(访问凭证)泄漏

APP(反编译),小程序(反编译),JS中泄漏导致

AccessKey标识特征整理-查找
https://wiki.teamssix.com/CloudService/more/
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

四、演示案例-云服务对象存储攻防挖掘案例

案例1:对象存储任意文件上传

1、打开xxx.xxx.com 显示目录遍历 一般肯定是公共可读写

在这里插入图片描述

2、 尝试获取解析oss的url地址

在这里插入图片描述

3、尝试对oss的url地址进行put上传

在这里插入图片描述
在这里插入图片描述

案例2:对象存储解析域名劫持

在这里插入图片描述

1、访问该域名显示NoSuchBucket,

那么只需要去阿里云存储桶重新创建一个与HostID一样的存储桶名称即可
在这里插入图片描述
在这里插入图片描述

2、随后只需要上传文件,就可以让该域名显示我们上传的任意文件

在这里插入图片描述

案例3:对象存储泄漏AccessKey

在这里插入图片描述

1、在JS文件中找到存在泄露的AccessKey

在这里插入图片描述

2、在托管平台(github、gitee等)找到存在泄露的AccessKey

在这里插入图片描述

3、在第三方组件配置不当导致泄露AccessKey

常见场景:/actuator/heapdump堆转储文件泄露SecretId/SecretKey

4、 在APP,小程序反编译中泄漏AccessKey

在这里插入图片描述

5、利用官方OSS工具连接

在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,关于Minio获取上传文件,我们需要先了解一下Minio的对象上传和存储过程。 Minio是一款开源的对象存储服务器软件,支持多种操作系统和云平台,可以通过API或者CLI上传、下载、管理对象数据。在Minio中,对象是以Bucket为单位进行组织和存储的,每个Bucket下面可以有多个对象。 关于对象上传和存储,一般需要进行以下步骤: 1. 创建Bucket:使用Minio的API或者CLI创建一个Bucket用于存储上传的对象。 2. 上传对象:使用Minio的API或者CLI上传对象数据到指定的Bucket中。 3. 获取对象:使用Minio的API或者CLI获取Bucket中指定对象的数据。 具体操作可以参考以下示例代码: ``` // 1. 创建Bucket minioClient.MakeBucket("your-bucket-name", "your-location") // 2. 上传对象 object, err := os.Open("your-file-path") if err != nil { log.Fatalln(err) } defer object.Close() objectInfo, err := minioClient.PutObject("your-bucket-name", "your-object-name", object, -1, minio.PutObjectOptions{}) if err != nil { log.Fatalln(err) } fmt.Println("Successfully uploaded object:", objectInfo) // 3. 获取对象 file, err := os.Create("your-file-path") if err != nil { log.Fatalln(err) } defer file.Close() err = minioClient.FGetObject("your-bucket-name", "your-object-name", "your-file-path", minio.GetObjectOptions{}) if err != nil { log.Fatalln(err) } fmt.Println("Successfully downloaded file") ``` 以上代码中,我们首先通过`MakeBucket`方法创建了一个Bucket,然后使用`PutObject`方法上传了一个对象,最后使用`FGetObject`方法获取了该对象的数据并保存到本地文件中。 希望这个回答能够帮助到你。如果还有其他问题,可以随时提出。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值