freeBuf
主站

分类

漏洞 工具 极客 Web安全 系统安全 网络安全 无线安全 设备/客户端安全 数据安全 安全管理 企业安全 工控安全

特色

头条 人物志 活动 视频 观点 招聘 报告 资讯 区块链安全 标准与合规 容器安全 公开课

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

安全审计案例:绕过Apache Superset限制执行SQL注入
2024-11-20 15:12:42
所属地 广东省

前言

在现代数据驱动的世界中,数据安全和隐私保护变得越来越重要。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

1732086227_673d89d3de643d07b3d24.png!small?1732086228655

1732086238_673d89de560f1d55c20de.png!small?1732086238892

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

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

1732086256_673d89f09b86db6c83fad.png!small?1732086257026

查看代码

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

文件:superset/models/helpers.py

函数:validate_adhoc_subquery()

def validate_adhoc_subquery(

sql: str,

database_id: int,

default

# SQL注入 # web安全 # 数据安全 # 网络安全技术 # 安全审计
本文为 独立观点,未经允许不得转载,授权请联系FreeBuf客服小蜜蜂,微信:freebee2022
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
相关推荐
  • 0 文章数
  • 0 关注者
文章目录