介绍
Bubble.io是一个流行的无代码平台,使用户能够在不需要编写代码的情况下构建功能完整的应用程序。虽然它承诺提供用户友好的环境,但本文深入分析了其底层安全机制。我们应用进攻性安全技术来识别平台中的漏洞,特别是在它与Elasticsearch交互和处理有效载荷加密方面的漏洞。
漏洞发现
通过对平台JavaScript代码进行逆向工程和分析HTTP头,我们发现了一个可能允许攻击者针对支持Bubble.io应用程序的Elasticsearch实例执行任意查询的漏洞。
涉及的技术:
-
Elasticsearch:被Bubble.io用于执行数据库搜索。 -
AES-CBC + PBKDF2_HMAC:用于保护对Elasticsearch请求的加密方法。
主要发现
-
有效载荷结构:
有效载荷由三部分组成: -
"y":由页面上的JavaScript代码生成的时间戳,以Base64编码。 -
"x":也是由JavaScript生成的IV(初始化向量),以Base64编码。 -
"z":加密的有效载荷,它是"y"和AppName作为解密密钥,以及"x"作为IV的组合。 -
有效载荷的反序列化:
要解密有效载荷: -
从 X-Bubble-Appname
HTTP头获取AppName
。 -
使用所有Bubble应用程序共享的硬编码IV( "po9"
和"fl1"
)。 -
使用 AppName
和IV应用AES解密来解密"y"和"x",然后使用这些来解密有效载荷("z")。 -
漏洞利用执行:
一旦解密,有效载荷揭示了查询的结构方式,使攻击者能够绕过平台施加的限制(例如,返回结果的数量或某些比较函数,如相等
或不相等
)。 -
影响:
通过操纵查询的能力,攻击者可能会访问Elasticsearch数据库中的所有用户数据,绕过安全措施,如查询限制。
演示漏洞利用
以下序列显示了攻击者如何制作恶意有效载荷来绕过限制:
-
标准查询基于电子邮件地址返回一个用户。 -
通过修改有效载荷,攻击者可以消除对结果的限制,在一个响应中检索所有用户数据。
修改前后的有效载荷示例:
-
原始有效载荷:返回有限的数据集(例如,一个用户)。 -
修改后的有效载荷:检索所有用户及其相关信息。
结论
如同所示,Bubble.io的无代码平台并非对安全风险免疫,其Elasticsearch使用和加密机制中存在漏洞。虽然无代码解决方案很强大,但了解底层系统及其潜在弱点很重要。这个案例强调了此类平台的开发人员和用户需要将安全性视为开发过程中不可或缺的一部分。
最终思考:
尽管像Bubble.io这样的无代码平台使构建应用程序变得容易,但缺乏对安全隐患的认识可能会导致严重的漏洞。开发人员必须保持警惕,并采取必要步骤保护敏感数据。
注意:本分析旨在提高对无代码平台安全缺陷的认识,并鼓励开发人员认真对待安全性,无论他们使用什么工具。
-
exp地址:https://github.com/demon-i386/pop_n_bubble
原文始发于微信公众号(独眼情报):【真0day未修复】Bubble.io平台 0day安全分析:揭露Elasticsearch漏洞
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论