本文中,作者通过利用Shodan以语法 Org:’ibm’ tomcat 进行搜索,发现了IBM某个在线服务x.x.x.x中包含了大量敏感日志文件信息,通过这些日志信息,作者又发现了多个IBM在用的第三方服务登录凭据,进一步的漏洞利用可对这些应用服务实现完全的控制管理。
漏洞发现过程
如上,我用Shodan语法 Org:’ibm’ tomcat 进行搜索,发现x.x.x.x中包含了大量IBM日志数据,其中涉及IBM公司大量雇员的Token口令和电子邮箱。
经检查,我发现其中的大量Token口令已经过期,但出于隐私和数据泄露考虑,这不应该曝露在网,于是我马上通过HackerOne进行了上报。但之后,他们的回复如下:
IBM方面需要切实的漏洞危害证明才能接收该上报漏洞问题,于是,我仔细查看了上述曝露在网的日志信息,对他们进行了收集整理,尝试从中发现深层次的隐患。
隐患发现
通过日志分析,我发现其中存在一个管理员才可以访问的URL路径,我点击它后会跳出提示“There is a missing token”,接着,我把该请求拿到了Burp中进行了测试。我在Burp请求内容中添加了一个名为“token”的字段内容,并给它赋了个随机值。请求发出后,响应回来的消息为“The token is invalid or expired”。很好,基于此,我就能判断这些日志数据中的“token”是否有效了。
凑巧的是,不负有心人,经过反复的发包测试,最终我发现了其中一个“token”仍然处于有效期,利用该“token”我可以轻而易举地获取到该雇员的相关信息:
之后,我又在日志数据中发现了大量IBM在用的AWS 和 Azure服务相关密钥信息:
就此打住吧。漏洞上报后,IBM方面也只好乖乖接收了。
在之后的分析中,我还发现IBM在用的敏捷开发服务Services DevOps Commander URL路径,经简单的口令猜测,发现其竟然是弱口令(admin/pass),之后,登录后即可控制其开发项目了:
在该项目管理系统中,我通过查看设置功能,还发现了如gitlab和jenkins等IBM在用的第三方服务登录凭据:
真的让我吃惊。
漏洞上报和处理进程
2020.7.21 漏洞上报 2020.7.22 漏洞分类 2020.12.8 漏洞修复