云存储服务有助于Web应用程序在存储服务中存储和访问对象。 但是,访问控制配置不当的话可能会导致敏感信息暴露,数据被篡改或未经授权的访问。
一个比较知名的例子就是Amazon S3存储配置错误,尽管其他云存储服务也可能面临类似的风险。 默认情况下,所有S3存储桶都是私有的,并且只能由被明确授予访问权限的用户访问。 用户可以授予对存储桶本身以及存储在该存储桶中的各个对象的公共访问权限。 这可能导致未经授权的用户能够上载新文件,修改或读取存储的文件。
评估云储存服务的访问控制配置是否正确
首先,先找出用于访问存储服务中数据的URL,然后考虑用以下方法:
1.读取未经授权的数据
2.上载新的任意文件
可以通过curl命令测试来查看是否可以成功执行未经授权的操作。
比如要测试读取对象的能力:
curl -X GET https://<cloud-storage-service>/<object>
测试上传文件功能:
curl -X PUT -d ‘test’ ‘https://<cloud-storage-service>/test.txt’
Amazon S4储存服务遵循两种格式之一,一种是虚拟主机或路径样式。
虚拟主机格式接入格式:
https://bucket-name.s3.Region.amazonaws.com/key-name
在下面的例子中,my-bucket是存储服务名称,us-west-2是区域,puppy.png是键名:
https://my-bucket.s3.us-west-2.amazonaws.com/puppy.png
路径样式接入格式:
https://s3.Region.amazonaws.com/bucket-name/key-name
如上所示,在下面的例子中,my-bucket是存储服务名称,us-west-2是区域,而puppy.png是键名:
https://s3.us-west-2.amazonaws.com/my-bucket/puppy.jpg
对于黑盒测试,可以在HTTP消息中找到S3 URL。 以下例子就是一个在HTTP响应中的img标记中发送了存储段URL。
…
<img src="https://my-bucket.s3.us-west-2.amazonaws.com/puppy.png">
…
对于灰盒测试,可以从Amazon的Web界面,文档,源代码或任何其他可用来源中获取存储服务的URL。
除了使用curl进行测试之外,还可以使用AWS Command Line Interface(CLI)工具进行测试。 在这种情况下,使用s3://协议。
列表
当将配置为public时,以下命令列出了所有对象。
aws s3 ls s3://<bucket-name>
以下是上传文件的命令:
aws s3 cp arbitrary-file s3://bucket-name/path-to-save
下面的例子是代表上传成功的:
$ aws s3 cp test.txt s3://bucket-name/test.txt
upload: ./test.txt to s3://bucket-name/test.txt
而有以下提示是代表失败的:
$ aws s3 cp test.txt s3://bucket-name/test.txt
upload failed: ./test2.txt to s3://bucket-name/test2.txt An error occurred (AccessDenied) when calling the PutObject operation: Access Denied
用户名 | 金币 | 积分 | 时间 | 理由 |
---|---|---|---|---|
奖励系统 | 100.00 | 0 | 2020-07-16 09:09:16 | 投稿满 10 赞奖励 |
奖励系统 | 50.00 | 0 | 2020-07-10 10:10:52 | 投稿满 5 赞奖励 |
打赏我,让我更有动力~
© 2016 - 2023 掌控者 All Rights Reserved.
l836918621
发表于 2020-7-10
大佬写文章是真的快
评论列表
加载数据中...
小花生
发表于 2020-7-10
厉害
评论列表
加载数据中...
嘿静儿
发表于 2020-7-12
加油吖 冲冲冲!!!
评论列表
加载数据中...