反射来命令执行存在的一些问题

news/2024/12/22 19:32:20/

一.利用Runtime进行反射

java.lang.Runtime.getRuntime().exec("")

若使用该paylaod,比如若依利用点如下:

Object bean = Class.forName(beanName).newInstance();
invokeMethod(bean, methodName, methodParams)

想要通过Class.forName(beanName).newInstance()成功实例化,必须满足类至少有一个无参的构造函数(这就是它的使用局限性)

也就代表有如下两个条件
1.public
2.无参

而Runtime类的构造函数是private的,不满足public条件,因此使用payload java.lang.Runtime.getRuntime().exec(“”),会报错。
在这里插入图片描述

二.利用ProcessBuilder进行反射

ProcessBuilder满足public,但是不满足无参构造方法
在这里插入图片描述
那么问题来了,我们平时写都是上面这样子,没有报错,也没有传进去参数,为什么说它没有无参构造函数,我们跟进去看看
在这里插入图片描述
进来后可以看到不是无参构造函数,只不过可以不加参数而已


http://www.ppmy.cn/news/607231.html

相关文章

大数据ClickHouse(十五):ClickHouse SQL语法之DDL 操作讲解

文章目录 ClickHouse SQL语法之DDL 操作讲解 一、创建库 二、查看数据库

Mathpix:非常好用的公式生成器,可以图片转公式

官方网站:Mathpix 截图快捷键: 截图后自动识别生成公式,第三个为Markdown格式公式。

AI与传统编译器

AI与传统编译器 至于TVM,现在有很多框架(TF,Pytorch),然后会部署到不同平台(CPU、GPU、TPU),神经网络编译器呢就是把不同框架里写的东西编译成一样的格式再生成到某一平台的代码 再来…

【图论】有向无环图的拓扑排序

1. 引言 有向无环图(Directed Acyclic Graph, DAG)是有向图的一种,字面意思的理解就是图中没有环。常常被用来表示事件之间的驱动依赖关系,管理任务之间的调度。拓扑排序是对DAG的顶点进行排序,使得对每一条有向边(u, …

大数据必学Java基础(五十三):Colletion接口

文章目录 Colletion接口 一、Colletion接口常用方法 二、Collection集合的遍历 Colletion接口 一、Colletion接口常用方法

余子式、代数余子式、伴随矩阵

余子式 定义 设矩阵 A(aij)nnA\left(a_{i j}\right)_{n \times n}A(aij​)nn​, 将矩阵 AAA 的元素 aija_{i j}aij​ 所在的第行第 j\mathrm{j}j 列元素划去后, 到余的各元素按原来的排列顾序组成的 n−1n-1n−1 阶 矩脌所确定的行列式称为元古 aija_{i j}aij​ 的余子式&…

MLIR与Code Generation

MLIR与Code Generation MLIR多级中间表示 MLIR 项目是一种构建可重用和可扩展编译器基础架构的新方法。MLIR 旨在解决软件碎片问题,改进异构硬件的编译,显着降低构建特定领域编译器的成本,帮助将现有编译器连接在一起。 MLIR作用 MLIR 旨在成…

[线性代数]矩阵的加、减、乘、幂运算

(1) 矩阵的加法和减法 矩阵的加法和减法就是将两个矩阵对应位置上的数相加减。因此,相加减的两个矩阵 A,B\mathrm{A} , BA,B 的行列必须相同。 (2) 矩阵乘法 二阶矩阵乘法示例: [abcd][efgh][aebgafbhcedgcfdh]\left…