命令执行。

命令执行

在该项目的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.mfbz.cn/a/582821.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

SAP-ERP TM运输管理模块详解-3

9、定义采购数据结算 事务代码及配置路径: TCODE: SPRO 路径:IMG > 后勤执行 > 运输 > 装运成本 > 结算 > 分配采购数据。详见图9-1。 配置路径截图: 、 如图9-2所示,配置根据计划运输点Z001装运成本类型Z001…

国家强制标准来了!契约锁如何帮您合规签署8项特殊作业票

“作业票”是明确现场施工内容、排查作业风险、落实安全措施的授权许可票,也是现场施工作业安全管理的第一道关口。 近年国家应急管理部组织修订的国家标准《危险化学品企业特殊作业安全规范》(GB 30871-2022)已将“8大特殊作业票”的部分管理…

【机器学习-19】集成学习---投票法(Voting)

一、引言 集成学习(Ensemble Learning)是机器学习领域中的一种重要策略,它通过结合多个模型的预测结果来提高整体性能。在单个模型容易过拟合或欠拟合的情况下,集成学习能够通过综合多个模型的优点来减少这种风险,从而…

代码量应该和数据结构的学习深度成比例。

在开始前我有一些资料,是我根据网友给的问题精心整理了一份「数据结构的资料从专业入门到高级教程」, 点个关注在评论区回复“888”之后私信回复“888”,全部无偿共享给大家!!! 代码量少,敲个…

2024年水资源保护盛事,“澜湄周”邀请国信华源加入!

4月26日,2024年水资源领域“澜湄周”活动在北京举行。水利部国科司、外交部亚洲司和边海司、湄公河五国驻华使馆以及澜湄水资源合作单位的代表嘉宾出席活动。北京国信华源公司特邀参加,现场就深化澜湄水资源合作展开深入交流研讨。 澜湄六国,…

软件测试用例模板

今天给大家分享下测试用例模板包含哪些内容: 1、测试项:[测试项名称] 2、测试用例标题:[测试用例标题] 3、优先级:[测试用例的优先级,冒烟用例为P0,基础用例P1等] 4、前置条件:[列出执行该测…

LeetCode_(兜兜转转还是你)浪漫的环形链表问题

✨✨所属专栏:LeetCode刷题专栏✨✨ ✨✨作者主页:嶔某✨✨ 第一题: 这道题的代码很简单,但是后续的一些问题在思考的过程是很复杂的。下面我们就一起来分析一下吧! 链表带环的意思就是说链表的某个节点的next指针指向…

定位系统源码,工厂人员定位系统源码,UWB高精度定位系统源码

一套java定位系统源码,工厂人员定位系统源码,UWB高精度定位系统源码,前后端分离架构,源码有演示。 工厂人员定位系统,高精度的位置数据作为智能工厂数据流的重要组成部分,可实现对工厂内的人,车…

环状串的字典序

【题目描述】 长度为n的环状串有n种表示法,分别为从某个位置开始顺时针得到。例如,图3-4的环状串有10种表示: CGAGTCAGCT,GAGTCAGCTC,AGTCAGCTCG等。在这些表示法中,字典序最小的称为"最小表示"…

利用GaussDB的可观测性能力构建故障模型

D-SMART高斯专版已经开发了几个月了,目前主要技术问题都已经解决,也能够初步看到大概的面貌了。有朋友问我,GaussDB不已经有了TPOPS了,为什么你们还要开发D-SMART高斯专版呢? 实际上TPOPS和D-SMART虽然都可以用于Gaus…

区块链技术下的DApp与电商:融合创新,开启商业新纪元

区块链技术的蓬勃发展正引领着一种新型应用程序的崛起——去中心化应用程序(DApp)。DApp并非传统的中心化应用,它构建于去中心化网络之上,融合了智能合约与前端用户界面,为用户提供了全新的交互体验。智能合约&#xf…

01.Kafka简介与基本概念介绍

1 Kafka 简介 Kafka 是最初由 Linkedin公司开发,是一个分布式、支持分区(partition)的、多副本(replica)的,基于 Zookeeper 协调的分布式消息系统,它的最大的特性就是可以实时的处理大量数据以满足各种需求场景:比如基于 hadoop 的…

算法工程师——算法岗的分类及要求汇总

算法岗工程师 根据 Talent Seer 人才报告显示,全球 AI 从业者总人数约有 30 万,还是供不应求,其中 AI 技术专家(具有相关领域博士学位及 3 年以上工作经验的)约有 3.65 万。 简介 对于计算机专业的毕业生而言,算法岗基本上就是 「高薪」 的代名词。 在当今 IT 行业,算…

如何将本地项目上传到Github(SSH方式)

天行健,君子以自强不息;地势坤,君子以厚德载物。 每个人都有惰性,但不断学习是好好生活的根本,共勉! 文章均为学习整理笔记,分享记录为主,如有错误请指正,共同学习进步。…

训练营第三十七天动态规划(基础题part3)

训练营第三十七天动态规划(基础题part3) 343. 整数拆分 力扣题目链接 题目 给定一个正整数 n ,将其拆分为 k 个 正整数 的和( k > 2 ),并使这些整数的乘积最大化。 返回 你可以获得的最大乘积 。 …

一篇文章 学会Qt 样式表(qss)

QML 中风格和主题的设计可以通过配置文件选择现有几种中的一种,或者直接在控件定义时,指定其属性,如背景颜色或者字体大小。在QWidget框架中,则通过了一种叫做qss样式表的东西来进行描述,跟CSS逻辑上类似。 这个qss抽…

【Redis 开发】多级缓存,本地进程缓存Caffeine

多级缓存 多级缓存本地进程缓存CaffeineCaffeine三种缓存驱逐策略 多级缓存 Redis处理并发的能力是非常强大的,但是tomcat的支持并发的能力跟不上Redis的性能,导致整体性能的下降 Redis缓存失效时,会对数据库产生冲击,之间再无屏…

自动驾驶横向控制算法

本文内容来源是B站——忠厚老实的老王,侵删。 三个坐标系和一些有关的物理量 使用 frenet坐标系可以实现将车辆纵向控制和横向控制解耦,将其分开控制。使用右手系来进行学习。 一些有关物理量的基本概念: 运动学方程 建立微分方程 主要是弄…

软件测试之学习及复习面试路线汇总

对于很多想通过自学或面试复习软件测试的同学,痛点并不是学习动力,而是找不到清晰的学习思路。 熬夜3天,吐血整理了这份《软件测试学习路线》,全文接近6000字,请大家耐心看完! 软件测试职业成长图 第一阶…

数字信号的产生与检测——DSP学习笔记六

本专栏的博客的图片大部分来源于老师的PPT,本博客只是博主对于上课内容的知识结构的分析和梳理。 几种数字信号的产生 正弦波信号 多项式逼近(除了泰勒展开,还有一种方法是切比雪夫逼近法,感兴趣可以自己去了解一下) 查找表 核心思…
最新文章