开启debug模式的Django和laravel API密钥泄露

开启debug模式的Django和laravel API密钥泄露

Criminal IP (https://www.criminalip.io/)网站上搜索启用了 Debug 模式的Django Web 应用程序时,发现有 3100 多个应用程序的数据库(以下简称 DB)帐户信息和 API Keys 暴露在互联网。这意味着黑客能够毫不费力地窃取公司的个人信息和机密文件。CIP 团队搜索了 Django 和Laravel等 Web 应用程序及其相关关键字,以评估凭据泄漏的严重性。

什么是凭证?

Credential在字典中被定义为“资格”,通常是指证明一个人的权利和权力的证据,例如您的身份证和证书。但是,“凭据”一词也适用于云环境和 Oauth,例如 Facebook,您在其中使用访问密钥 ID/秘密密钥进行社交身份验证。现在,Credential 一词并不一定意味着与身份验证相关的密钥,而是更全面地表示内部云 VPC 网络的 IP 信息。

如何在criminalip资产中搜索凭证

在criminal IP 资产搜索中搜索与身份验证相关的关键字(访问密钥 ID、秘密访问密钥)时,您通常可以找到具有暴露凭据的 IP,其中许多是 Oauth 或 RESTfull API。

  • Access Key ID:又名Access Key,是指一般网站的用户名。
  • Secret Access Key:又名Secret Key,是指一般网站的密码。

例如,Amazon Cloud 中使用的访问密钥类型包括以下内容:

开启debug模式的Django和laravel API密钥泄露
Amazon Cloud 中使用的访问密钥类型

此外,您可以通过 Bucket(云服务中经常使用的存储)查找与身份验证相关的信息。如果可访问,此存储桶可能会导致严重问题,因为任何人都可以从服务器窃取未公开的文件。我们搜索关键字 Bucket 以查找处于读取模式的存储桶。

“READ_BUCKET_NAME”

在Criminal IP上搜索“READ_BUCKET_NAME”,一共可以找到635个网站。其中,您还可以找到名为“NAVERCloud VOD Service TBD”的网站,假设为NAVER Cloud用户上传bucket的演示页面。但是,这些网站有演示端点域地址、访问密钥 ID 和访问密钥,用于文件上传测试,而这些网站本来应该是隐藏的。使问题更加严重的是,有更多这样的网站。

开启debug模式的Django和laravel API密钥泄露
HTML Body 标记下的公开访问凭据

如何在criminalip资产搜索中搜索 Django Web 应用程序的调试模式站点

为了方便开发,基于 PHP 的 Laravel 框架和基于 python 的 Django Web 应用程序经常使用调试模式。尽管调试模式提供了便利,但它也给 Laravel 框架和 Django 带来了一个问题,因为一旦激活它就会将敏感信息暴露给错误消息。

您可以使用以下过滤器在criminalip资产搜索中搜索启用了 Django 调试模式的网站。

“DisallowedHost at“

开启debug模式的Django和laravel API密钥泄露
开启debug模式的Django和laravel API密钥泄露
启用调试模式的 Django 网站,将敏感信息暴露给错误消息

在 Django Web 应用程序上暴露的 HTTP 请求标头不仅包含目前提到的 API Key,还包含 Admin 和密码等身份验证相关信息,以及 DB 帐户。

开启debug模式的Django和laravel API密钥泄露
暴露了敏感信息(例如管理员和密码)的 Django 网站

您还可以使用下面的过滤器查找启用了调试模式的 Laravel 网站。

title: “Whoops! There was an error”

开启debug模式的Django和laravel API密钥泄露
搜索标题时的结果:“Whoops! There was an error”

在所有这些搜索到的 IP 地址中都激活了 Laravel 调试模式,访问时,您将能够在错误消息中看到有关 APP Key、DB 帐户和密码的信息。

开启debug模式的Django和laravel API密钥泄露
Laravel 网站暴露了敏感信息,例如数据库帐户和密码

以文本文件形式公开的 API 密钥

如果您在资产搜索中搜索“APIKEY.txt”,您会发现一些有趣的东西。

APIKey.txt

开启debug模式的Django和laravel API密钥泄露
在criminalip资产搜索中搜索“APIKey.txt”时的结果

浏览搜索的网站,很难说出该网站的目的。但是,页面源代码可以让您清楚地了解此页面的全部内容。

开启debug模式的Django和laravel API密钥泄露
搜索 APIKey.txt 后的网站

页面源码说明本网站使用 Firebase 作为其数据库,在 firebase Configuration 下,可以看到使用 firebase SDK 时发布的 API Key、AuthDomain、AppID 被暴露。

开启debug模式的Django和laravel API密钥泄露
上述网站的页面凭据被暴露。

我们还发现了一个网站,该网站似乎是中国的 RESTfull API,其中暴露了 Admin 的 Access Token 哈希。

开启debug模式的Django和laravel API密钥泄露
一个带有暴露 Admin Access Token hash 的中文网站

criminalip经常显示包含凭证的 HTML 文件,这些凭证往往会因测试或错误而无人看管。例如,下图是带有 Amazon Cloud Service (AWS) IAM 元数据库或 DynamoDB AWS 密钥的 HTML 文件。

1) 带有 IAM 元数据的 HTML 文件。找到用户帐户。

开启debug模式的Django和laravel API密钥泄露
在 AWS IAM 元数据中显示用户账户的 HTML 文件

2) 带有 DYnamoDB 的 HTML 文件,DYnamoDB 是主要的 AWS NoSQL 服务器之一。包括 Access Key ID 和 Secret Key 在内的凭证被公开。

DynamoDB Admin

开启debug模式的Django和laravel API密钥泄露
在criminalip资产搜索中搜索 AWS DynamoDB 管理员时的结果
开启debug模式的Django和laravel API密钥泄露
AWS DynamoDB 工作脚本中的公开访问密钥

结论

得益于云原生技术,开发人员的生产力得到了显着提升。但是,由于重点主要放在生产力上,因此有人担心安全性被视为低优先级。

过去安全性只关注数据库中的用户名和密码等帐户管理,而现在,在云时代,API Keys 具有“更改”权限,这意味着仅一个 API Key 泄漏就可能导致凭据泄漏或操纵所有.

云相关技术正在快速发展,安全性也在快速发展。因此,需要对开发人员进行定期检查,看看他们是否赶上了最新的网络安全技术。此外,我们都应该记住,在云时代,一个小错误,比如设置错误,就会导致凭证泄露,对个人和企业都造成灾难性的安全损害。

from

转载请注明出处及链接

Leave a Reply

您的电子邮箱地址不会被公开。 必填项已用 * 标注