购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

3.3 API KEY泄露漏洞

因API KEY泄露导致的API安全问题,在业界非常普遍,下面这个漏洞就是因API KEY保护不当而被泄露导致个人信息泄露。

3.3.1 API KEY泄露漏洞基本信息

2010年以来,个人信息泄露问题越来越成为互联网关注的重点。甚至,有专家学者认为,信息泄露问题将可能成为压垮互联网发展的最后一根稻草,这也从另一侧面反映出当前个人信息泄露的严重程度。在这个案例中,将给读者讲解密钥泄露如何导致个人信息泄露。

漏洞类型: API2-失效的用户身份认证。

漏洞难度: 中。

报告日期: 2020-2-5。

信息来源: https://medium.com/@spade.com/api-secret-key-leakage-leads-to-disclosure-of-employees-information-5ca4ce17e1ce。

因为隐私问题,漏洞赏金猎人Ace Candelario在公开资料中将被攻击企业化名为redacted.com,在子域名收集的过程中意外发现了某个域名对应的主页面上,main.js文件包含API KEY,通过此密钥信息连接API接入点,从而获取了企业的员工信息。信息泄露过程如图3-5所示。

●图3-5 信息泄露过程示意图

3.3.2 API KEY泄露漏洞利用过程

在收集到的子域名中,Ace Candelario发现了一个叫smh.internal.redacted.com的子域名,其功能是从Google重定向以对员工登录进行身份验证。用户若想登录该页面,则需要一个有效的员工电子邮件账号,类似于XXX@redacted.com。

在查看页面源代码后,他发现了一个JavaScript文件main.js,让他感到惊喜的是JavaScript文件并没有混淆压缩,仅仅通过检查特定的关键字,如公司名称redacted、域名(隐藏域或内部子域名)、文件扩展名或明显的API路径、'secret'、'access[_|-]'、'access[k|t]'、'api[_|-]'、'[-|_]key'、'https:'、'http:'等,就找到了Base64编码的身份验证凭据,即HR系统API KEY。其中main.js内容如图3-6所示。

●图3-6 main.js文件内容示意图

通过API文档的阅读,快速验证JavaScript文件中泄漏的API KEY是否仍在工作。并通过curl命令,可以轻松地从API接口获取员工列表。另外,还可以查看、删除、更新所有的员工信息。

当然,漏洞提交后也很快通过官方的审核,并获取了2000美元的奖励。

3.3.3 API KEY泄露漏洞启示

现在再来回顾一下整个攻击过程,如图3-7所示。

●图3-7 API KEY管理不当导致个人信息泄露攻击过程分析

从漏洞过程分析中可以看出,在整个模拟攻击中,通过 main.js文件获取API KEY成了至关重要的一步 。拥有了API KEY之后,才能通过API接口获取员工信息。

从攻击者的角度看,如何创建自己的密钥关键字、通过关键字找到密钥、正确地读懂API文档、及时验证密钥的可用性,这些都是攻击者能力积累的体现。从防御者的角度看,将密钥存放在JavaScript文件中、采用Base64编码、JavaScript文件未混淆压缩都是败笔,方便了攻击者快速地获取密钥信息。 8qatqLaeDao4Z7uHImcx+ot2ryOg/kDU6FTO16JDEsmpc2MqtS6fET3pTQ9r6f7V

点击中间区域
呼出菜单
上一章
目录
下一章
×