JAVA反射机制

java反射含义

反射就是在运行状态中,通过java反射机制,获取一个对象所属的类,了解任意类的属性和方法并且可以调用成员变量和方法,这种动态获取类的信息和动态调用类的方法称为java反射机制。
说白了就是以静(静态语言)制动(动态语言)

java反射机制功能点

  • 在程序运行时查找一个对象所属的类
  • 在程序运行时查找一个类的成员变量和方法
  • 在程序运行时查找一个创建一个类的对象
  • 在程序运行时调用对象的变量和方法

java命令执行类

image

获取类对象

  • forname方法
    image
  • 直接获取法
    image
  • 获取类对象---getClass方法
    image
  • 获取类对象---getSystemclassLoader().loadClass()方法(与forname区别在于不会执行static()中的代码)
    image
获取类方法
  • 1
    image
  • 2
    image
  • 3
    image
  • 4
    image
  • 5
获取类成员变量
  • 1
    image
  • 2
    image
  • 3
    image
  • 4
    image
构造任意类的对象

image

调用任意对象的方法

image

那么重点来了,看如下代码

image
这是一段正常的程序,某些程序员看到这些代码冗余就会用反射解决,如:
image
这样就有了可利用点rce

posted @ 2022-07-27 05:33  猫鳍  阅读(57)  评论(0)    收藏  举报