【重磅!】OSS密钥复用研究以及常用渗透利用方式总结

OSS渗透目前最常见的方式就是得到Secret Key,那么如果Secret Key并没有被泄露难道就不可以被利用了吗?答案是否定的。
自笔者上篇文章末尾的“全域名”泛滥后,笔者来给大家通过官方给出的API代码分析的方式分析一下Secret Key的复用问题,因为在这里,某里云官方给的demo同样是存在此问题的。
0x01 环境布局在这里,笔者准备了一个购买了ECS的账号来跟大家进行演示。这个账号的资产为:
一台ECS在真正的实战中,遇到我们喜爱的上传点时,我们会发现类似于如下HTTP请求:
当Options请求完毕后会发现一个上传包,并且携带了key:
那么此时已经可以确定为OSS上传点。
针对于类似于这种的包,我们会第一时间去翻看网站所引入的所有JavaScript外联,去查看是否在前端泄露了Secret Key。
在这里笔者先给大家简单的叙述一下查找到Secret Key意味着什么。
Access Key可以看作是阿里云的另一种账户密码。
OSS,ECS等等是阿里云账户下的产品,
当这个账户下有OSS产品,我们就可以用accesskey访问这个oss,
如果这个账户下有ECS,我们就能通过这个accesskey去操控ecs,执行命令。
在这里为了方便演示,我们首先将两台服务器设置跨域请求:
然后创建规则:
下面笔者创建一个实战模拟代码
源代码来自:https://files.cnblogs.com/files/ossteam/oss-h5-upload-js-direct.tar.gz
参考:https://www.cnblogs.com/ossteam/p/4942227.html
情况一:Secret Key 泄露使用F12进行搜索Secret Key:
这是实战中一个典型的Secret Key泄露,也是能让大家眼前一亮的信息,那么我们下一步应该怎么做呢?
使用 oss-browser 来进行管理 oss 服务器下载地址:
在这里我们只需要将阿里云的AccessKeyId与AccessKeySecret填入就可以了。
这里我们就可以对这两台OSS服务器进行增删改查操作。
使用行云管家进行重置ECS密码信息当然如果只可以管理两台静态服务器,那么这点权限也太小了,我们可以通过行云管家来进行管理ECS。
登陆行云管家:https://yun.cloudbility.com/
填入Access Key ID 与 Access Key Secret 即可接管ECS服务器。