命令执行。

命令执行

在该项目的readme中,描述了怎么去调用的flink

通过java原生的runtime来调用flink,下一步就是去看看具体的调用过程了,是否存在可控的参数
找到具体提交命令的类方法CommandRpcClinetAdapterImpl#submitJob()

这里要确定command,是否可控,继续往上找在哪里调用了在JobBaseServiceAOImpl的submitJobForStandalone和submitJobForYarn俩个方法中都调用了submitJob,继续往上寻找哪里调用了这两个方法

在JobBaseServiceAOImpl#aSyncExecJob()方法中创建线程池的时候,正好创建了Runnable类来执行这些方法
继续往上找哪里调用了aSyncExecJob

这里的两个业务类JobStandaloneServerAOImpl和JobYarnServerAOImpl分别对应提交任务到本地,或者是远程Yarn服务,这里主要看本地的,远程Yarn需要配置,不好满足利用条件

在JobStandaloneServerAOImpl#start()中调用了aSyncExecJob,对应的controller层就是在JobConfigApiController#start()方法中
所以这里如果要测试的话就需要通过上面的绕过权限校验来创建一个额外的用户登录

创建一个新的jar包任务

 这里的jar包是可以通过后台的第三方jar包管理上传的(仅作为文件使用,并不能解析),开启任务之后直接启动,进入start方法

getJobServerAO(id)根据id返回对应处理任务的类,进入JobStandaloneServerAOImpl#start

根据id返回对应的配置信息包含在JobConfigDTO类中
后续就是根据配置信息做一些处理,任务执行情况,参数是否合法,插入日志信息等

这里需要注意下writeSqlToFile()方法,在这个方法里面,把一些系统配置(flink的路径,项目的配置路径等信息,yran的地址,flink的地址)设置到了返回值中,后续需要使用,所以这里有利用前提,需要配置了系统的信息之后才会有这个rce的漏洞,不过在搭建环境的时候就需要配置这些系统信息,否则大部分的功能无法使用

系统信息

 

进入aSyncExecJob方法

这里没有使用到nacos,跳过第一个if,直接进入Runnable#run()方法

配置了一些输出的日志信息之后,设置jar包下载地址

在downJar(jobRunParamDTO, jobConfigDTO)中下载了对应的远程jar包
所以这里也算有一个ssrf,不过没什么太大的危害
然后进入到switch语句中,因为设置的是单机模式,所以进入STANDALONE中

 在getFlinkAddress对flink_rest_http_address这个系统配置进行存活校验

进入buildRunCommandForCluster,创建执行flink的命令

先配置flink的可执行目录加上run -d
再根据address,savepointPath,是否为STANDALONE模式,存在第三方jar包等加入对应的命令

进入switch的JAR case中,这里就是在配置任务的时候设置的需要执行的类,这里就是外部可以控制的参数了
所以整体执行的命令是:
/javaTocms/flink-1.9.0/bin/flink run -d -c org.example.Main /javaTocms/tmp/udf_jar/evaljAR.jar
修改org.example.Main为需要执行的命令就可以了
回到submitJobForStandalone方法中

进入submitJob,提交命令

 

执行命令完成 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/316074.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

TiDB 6.x 新特性解读 | Collation 规则

对数据库而言,合适的字符集和 collation 规则能够大大提升使用者运维和分析的效率。TiDB 从 v4.0 开始支持新 collation 规则,并于 TiDB 6.0 版本进行了更新。本文将深入解读 Collation 规则在 TiDB 6.0 中的变更和应用。 引 这里的“引”,…

用Redis实现获取验证码,外加安全策略

安全策略 一小时内只能获取三次,一天内只能获取五次 Redis存储结构 代码展示 import cn.hutool.core.util.RandomUtil; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; import org.junit.jupiter.api.Test; import org.spri…

SD8942 600KHz、16V、2A同步降压转换器芯片IC

一般说明 该SD8942是一个完全集成,高效率2A同步整流降压转换器。SD8942在宽输出电 流负载范围内以高效率运行。该器件提供两种工作模式,PWM控制和PFM模式开关控制,它允许在更宽的负载范围内的高效率。 该SD8942需要一个现成的标…

Flink面试(1)

1.Flink 的并行度的怎么设置的? Flink设置并行度的几种方式 1.代码中设置setParallelism() 全局设置: 1 env.setParallelism(3);  算子设置(部分设置): 1 sum(1).setParallelism(3) 2.客户端CLI设置&#xff0…

电脑开机后卡在开机LOGO画面如何排查处理

当电脑开机后长时间停滞在开机LOGO画面,无法继续进入操作系统,这一现象常令用户困扰不已。本文将深入探讨导致此类问题的多种可能原因,并提供相应的解决方法,帮助你有效地诊断和排除故障。 硬件故障或接触不良 1. 硬盘问题:硬盘是系统启动的关键组件,其故障或数据线接触…

大数据分析与应用实验(黑龙江大学)

实验一 Hadoop伪分布式实验环境搭建与WordCount程序 一、实验目的 1、学习搭建Hadoop伪分布式实验环境 2、在伪分布式实验环境下运行WordCount程序 二、实验内容 1、搭建Hadoop伪分布式实验环境,并安装Eclipse。 2、在Eclipse环境下,编写并执行Wor…

MongoDB的安装(Linux环境)

登录到Linux服务器执行 lsb_release -a ,即可得知服务器的版本信息为:CentOS 7。 # CentOS安装lsb_release包 [rootlinux100 ~]# sudo yum install redhat-lsb# 查看Linux版本 [rootlinux100 ~]# lsb_release -a LSB Version: :core-4.1-amd64:core-…

网络服务SSH-远程访问及控制

一.SSH远程管理 1.SSH介绍 SSH(Secure Shell)是一种安全通道协议,最早是由芬兰的一家公司开发出来,并且在IETF (Internet Engineering Task Force)的网络草案基础上制定而成的标准协议。主要用来实现字符…

IP地址的定位精度及其影响因素

IP地址作为互联网通信的基础,其定位精度对于许多应用至关重要,如网络安全、市场营销和用户定位等。然而,IP地址的定位精度受到多种因素的影响,本文将探讨这些因素以及它们对IP地址定位精度的影响。 IP地址查询:IP66_i…

windows ubuntu sed,awk,grep篇,8,Awk 语法和基础命令

目录 51.Awk 命令语法 52.Awk 程序结构(BEGIN,body,END)区域 53.打印命令 54.模式匹配 Awk 是一个维护和处理文本数据文件的强大语言。在文本数据有一定的格式,即每行数据包 含多个以分界符分隔的字段时,显得尤其有用。即便是输入文件没有一定的格式&a…

sCrypt全新上线RUNES功能

sCrypt智能合约平台全新上线一键etch/mint RUNES功能! 请访问 https://runes.scrypt.io/ 或点击阅读原文体验! 关于sCrypt sCrypt是BSV区块链上的一种智能合约高级语言。比特币使用基于堆栈的Script语言来支持智能合约,但是用原生Script编…

微信小程序实时日志使用,setFilterMsg用法

实时日志 背景 为帮助小程序开发者快捷地排查小程序漏洞、定位问题,我们推出了实时日志功能。开发者可通过提供的接口打印日志,日志汇聚并实时上报到小程序后台。开发者可从We分析“性能质量->实时日志->小程序日志”进入小程序端日志查询页面&am…

《异常检测——从经典算法到深度学习》27 可执行且可解释的在线服务系统中重复故障定位方法

《异常检测——从经典算法到深度学习》 0 概论1 基于隔离森林的异常检测算法 2 基于LOF的异常检测算法3 基于One-Class SVM的异常检测算法4 基于高斯概率密度异常检测算法5 Opprentice——异常检测经典算法最终篇6 基于重构概率的 VAE 异常检测7 基于条件VAE异常检测8 Donut: …

AI 工具合集

以下工具来源于互联网,可能会失效,请参考使用 网红工具 名称链接说明GPT-4https://chat.openai.com/ 需要梯子,需要付费。功能最强大的聊天机 器人。 文心一言https://yiyan.baidu.com/welcome 国内版 GPT,需要申请账号。回答问…

ChromaDB教程

使用 Chroma DB,管理文本文档、将文本嵌入以及进行相似度搜索。 随着大型语言模型 (LLM) 及其应用的兴起,我们看到向量数据库越来越受欢迎。这是因为使用 LLM 需要一种与传统机器学习模型不同的方法。 LLM 的核心支持技术之一是…

IDEA使用技巧(常用设置、快捷键等)

IDEA使用技巧 一、IDEA常用基本设置设置代码背景颜色/主题/字体Ctrl鼠标滚轮缩放字体大小设置字符编码左右两侧的Project,Structure,Maven等按钮消失新增类似sout,psvm的模版切换某个模块编译的JDK版本 二、常用快捷键CtrlAltT包裹代码Alt回车联想补全Ct…

How to solve matplotlib Chinese garbled characters in Ubuntu 22.04

conda create -n huizhou python3.8conda activate huizhouconda install numpy matplotlibpip install mplfontsmplfonts init# 导入必要的库 import numpy as np import matplotlib.pyplot as plt# 创建角度数组,从0到2π x np.linspace(0, 2 * np.pi, 100)# 计算…

七、OSPF特殊区域及其特性

目录 OSPF区域分类 hello报文中option字段 1.末节区域(Stub区域) 2.完全末节区域(Toally Stub区域) 3.七类LSA 4.非完全末节区域(NSSA区域) 5.完全非完全末节区域(Toally NSSA区域&#…

Windows Server配置网卡绑定:NIC组合

正文共:1024 字 12 图,预估阅读时间:1 分钟 在网络设备上,为了提高可靠性,一般会配置链路聚合(Link Aggregation)(网络之路28:二层链路聚合),同样…

# 从浅入深 学习 SpringCloud 微服务架构(四)Ribbon

从浅入深 学习 SpringCloud 微服务架构(四)Ribbon 段子手168 一、ribbon 概述以及基于 ribbon 的远程调用。 1、ribbon 概述: Ribbon 是 Netflixfa 发布的一个负载均衡器,有助于控制 HTTP 和 TCP客户端行为。 在 SpringCloud 中 Eureka …