安全审计案例:绕过Apache Superset限制执行SQL注入

2024-11-27 23 0

前言

在现代数据驱动的世界中,数据安全和隐私保护变得越来越重要。Apache Superset 作为一个广泛使用的开源数据探索和可视化平台,其安全性尤其受到关注。本文将详细介绍我们在一次审计过程中发现的一个严重漏洞,以及如何利用这一漏洞绕过 Apache Superset 的安全措施,执行任意 SQL 查询。

什么是 Apache Superset?

Apache Superset 是一个开源平台,用于数据探索和可视化。它提供了一个无需编码的界面,用于快速图表制作,使用户能够在不编写复杂 SQL 查询的情况下探索数据。此外,Superset 还提供了一个基于 Web 的 SQL 编辑器,用于更高级的分析。尽管可以执行 SQL 查询,但并非所有操作都对用户开放,因为安全性和数据隔离是考虑的重要因素。

背景

在一次针对某企业 Web 应用的安全审计过程中,发现某企业的应用程序使用了Apache Superset(版本4.0.1,撰写本文时的最新版本)来展示数据图表和分析结果。通过分析应用程序与Burp之间的交互,发现可以与Apache Superset的API进行交互。

在进一步的测试中,发现可以通过以下API路径控制DBMS执行某些 SQL 查询:

/superset/explore_json/(使用 xpath_exists(xpath, xml [, nsarray]) 将基于时间的注入转换为基于错误的注入,该函数评估XPath 1.0表达式)

/api/v1/chart/data

安全审计案例:绕过Apache Superset限制执行SQL注入插图

安全审计案例:绕过Apache Superset限制执行SQL注入插图1

需要注意的是,在Apache Superset中执行 SQL 查询是正常的,因为这是该应用程序的主要目的,并不被视为漏洞。这篇文章的目的是展示已识别的关于防止攻击者执行任意 SQL 请求的安全措施的弱点。

一旦用户(因此也是攻击者)试图执行任意请求,这些请求就会被安全机制阻止。

安全审计案例:绕过Apache Superset限制执行SQL注入插图2

查看代码

为了确定阻塞的原因,只需从GitHub获取源代码。经过快速的代码审查,以下代码片段似乎检查查询是否包含任何子查询。

文件:superset/models/helpers.py

函数:validate_adhoc_subquery()

def validate_adhoc_subquery(

sql: str,

database_id: int,

default


4A评测 - 免责申明

本站提供的一切软件、教程和内容信息仅限用于学习和研究目的。

不得将上述内容用于商业或者非法用途,否则一切后果请用户自负。

本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑或手机中彻底删除上述内容。

如果您喜欢该程序,请支持正版,购买注册,得到更好的正版服务。如有侵权请邮件与我们联系处理。敬请谅解!

程序来源网络,不确保不包含木马病毒等危险内容,请在确保安全的情况下或使用虚拟机使用。

侵权违规投诉邮箱:4ablog168#gmail.com(#换成@)

相关文章

AI 安全案例分享:我是如何控制劫持AI助手的
深入了解失效对象级授权(BOLA):API安全的薄弱环节
内网渗透技术学习 | 代理与转发详解
数据安全包含哪些场景
深入挖掘:install4j更新机制中的XXE漏洞
渗透测试 | 入门必备的 JavaScript 基础知识

发布评论