环境搭建
搭建一个阿里云OSS,可以选择试用
-
https://www.aliyun.com/product/oss?spm=5176.28536895.nav-dropdown-menu-0.19.53dd586ckiS3OP&scm=20140722.X_data-47ed1f95c8b1f5f652d4._.V_1
访问存储桶的几种场景
-
这种有key id等等数据的就算成功访问了,说明该存储桶配置为了公开的,而且允许了文件路径列出 "只读(包含ListObject)"
-
这种是有权访问,但是文件路径不正确
-
403拒绝访问,这种有很多可能性:可能是没有权限访问,配置为了私有需要身份认证、文件路径不对、目前没有任何文件、特定的Bucket策略限制,后面专门详细解释。
-
这种是存储桶虽然是公开的,但是是该存储桶目前没有任何文件,且开启了文件列出(ListObject)权限
-
这种是不存在这个存储桶
-
这种是存储桶名无效
漏洞分析
接下来介绍几种不安全配置导致的安全漏洞:
如果配置为公共读/公共读写,那么所有人可以不用经过身份验证就可以访问存储桶的数据
oss凭证泄露
-
可以直接看我博客这篇文章
https://x1lys.github.io/2024/07/12/%E4%BA%91%E4%B8%BB%E6%9C%BA%E5%AF%86%E9%92%A5%E6%B3%84%E9%9C%B2/
OSS存储桶路径列出
-
如果配置为公共读/公共读写,且权限控制中的Bucket授权策略配置了"只读(包含ListObject)",那么访问存储桶会直接列出所有文件路径(Key),类似于Apache的目录遍历漏洞,都是配置错误的原因。那就不用爆破存储桶文件名路径了,只需提取出路径来访问就行
-
当文件太多,一个一个手动去拼接访问链接太慢了,可以用这个工具,提取文件的具体路径
-
https://github.com/source-xu/ossx
OSS爆破
如果配置为公共读/公共读写,但知道的信息很少,想得到更多的数据,还可以试试爆破来碰碰运气。
1. 存储桶名爆破
对存储桶名的爆破其实就是对子域名的爆破,因为存储桶名会被用来作为子域名,通过查看响应得知是否成功。但是其实如果都不知道目标的存储桶的名字,那么想单纯靠爆破的方式得到目标的存储桶名,几乎是不可能的,除非目标的存储桶名有规律,比如以企业名+其他标识为存储桶名的话可能还有一丝丝希望,不过也难。又但是,一般情况下,存储桶名很容易就得到了:访问存储桶的文件看子域名,查看响应包,FindSomeThing插件就可直接得到了
2. 存储桶文件名路径爆破
可以尝试一些常见的文件名比如1.pdf 1.docx test.jpg 等等,准备好字典跑就完事
说明oss配置为了私有,需要经过身份验证或者满足配置的特定Bucket策略才可以访问。还有一种可能是,该存储桶虽然是公开的,但是是你不知道文件的访问路径,或者该存储桶目前没有任何文件,且关闭了文件列出(ListObject)权限
403的场景与绕过
上图出现了403 AccessDenied,有如下几种情况:
存储桶被配置为了私有
需要带上正确的身份验证参数才能访问,这种情况直接跳过,没法利用了,除非通过泄露达到了ak sk等等身份验证数据
不知道文件路径key
这种情况是,明明存储桶是公开的,但是不知道文件路径的话,且没有开启文件列出(ListObject)权限,也会出现403 AccessDenied
这种就按照上面提到的直接爆破文件名就行
如果开启了文件列出(ListObject)权限,会是这样
4A评测 - 免责申明
本站提供的一切软件、教程和内容信息仅限用于学习和研究目的。
不得将上述内容用于商业或者非法用途,否则一切后果请用户自负。
本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑或手机中彻底删除上述内容。
如果您喜欢该程序,请支持正版,购买注册,得到更好的正版服务。如有侵权请邮件与我们联系处理。敬请谅解!
程序来源网络,不确保不包含木马病毒等危险内容,请在确保安全的情况下或使用虚拟机使用。
侵权违规投诉邮箱:4ablog168#gmail.com(#换成@)