首页
学习
活动
专区
圈层
工具
发布

初探java安全之反射(2)

比如 Runtime 中的 exec(String command) 函数,获取它就是 Class clazz = Class.forName("java.lang.Runtime"); Method...cmd = clazz.getMethod("exec", String.class); invoke() invoke() 方法用于执行 getMethod 获取的方法,看看它的相关参数 第一个参数是函数所在的对象或...**类(执行静态方法可用)**,第二个参数是所执行的函数的对象参数 依旧拿 exec(String command) 方法来说 Runtime run = Runtime.getRuntime();//...如果直接 exec 传入的是字符串的话 Runtime.getRuntime().exec("calc"); 可以看到经过最终会跳转到 exec 的另一个重载方法上。...,即可以传递 String[] 类型 即 Runtime.getRuntime().exec("calc"); 底层就是执行了 new ProcessBuilder(new String[] {"calc

55840

【JAVA代码审计】——1、Spring框架知识篇

参考链接: Java中StringTokenizer类的示例| 1(构造函数) 本期Java代码审计Spring框架知识篇将讲述Spring构造POC要必备的知识。 ...();        }    } }  系统命令的执行结果:  此方法将产生一个本地的进程,并返回一个Process子类的实例(注意:Runtime.getRuntime().exec(cmd)返回的是一个...]+\\.com'} 0X03 SpEL表达式与命令执行组合  此处以SpEL表达式与getRuntime组合为例,T(java.lang.Runtime).getRuntime().exec(‘gnome-calculator..."T(java.lang.Runtime).getRuntime().exec('gnome-calculator')";//构造好的SpEL表达式          String result =...Spring框架构造POC必备的知识,如java命令执行函数,SpEL表达式使用、两者的配合使用构造Spring框架的POC。

67520
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Java代码审计| Spring框架知识篇

    此方法将产生一个本地的进程,并返回一个Process子类的实例(注意:Runtime.getRuntime().exec(cmd)返回的是 一个Process类的实例)该实例可用于控制进程或取得进程的相关信息...赋值 调用构造器 Bean对象引用 创建数组 三元操作符 变量 用户自定义函数 集合选择 4.SpEL基础表达式用法 用来计算String类型的字面值: #{'HELLO'} 为了在SpEL...+\\.com'} sdfd 0X03 SpEL表达式与命令执行组合 此处以SpEL表达式与getRuntime组合为例,T(java.lang.Runtime).getRuntime().exec('...= "T(java.lang.Runtime).getRuntime().exec('gnome-calculator')";//构造好的SpEL表达式 String result...0X04 小总结 此篇讲述Spring框架构造POC必备的知识,如java命令执行函数,SpEL表达式使用、两者的配合使用构造Spring框架的POC。

    1.1K20

    Linux--fork与wait

    fork与exec 在Linux中,都是通过fork与vfork系统调用来创建子进程,并且在fork完之后,通常会调用exec命令簇来替换代码段,执行不同的任务。...而调用wait等待的是任一子进程,如果父进程fork了很多个子进程的话,则任一子进程返回都会触发该函数,也就无法知道获取的是哪个子进程的任务返回了。于是,就需要waitpid函数了。...等待子进程都结束 如果需要等待子进程都结束,则需要在fork完子进程后,为每个创建的子进程调用waitpid来等待所有子进程都结束 Android中的fork与wait Android中Runtime.getRuntime...Process dumpDirectory = Runtime.getRuntime().exec("top -n 15");...// ping www.baidu.com Process dumpTop = Runtime.getRuntime().exec("ping -c 30 www.baidu.com

    3K30

    android 调用系统命令实现关机2017亲测有效

    最近我想做一个简单的手机重启,结果在网上搜了好多代码一个也不管用,正在郁闷时候,看到这个代码试了下居然成功了,测试工具是android studio2.2..2,具体如下 系统reboot命令有两个功能...(我暂时知道的),关机跟重启,一开始以为它就只会用来重启的,下面用Java代码调用这个命令来实现关机和重启 [java] view plain copy public static int shutdown...() { int r = 0; try { Process process = Runtime.getRuntime().exec(new String[]...(new String[]{"su" , "-c" , "reboot -p"}); 换成exec(“su -c reboot -p”);,感觉系统忽略了-p参数,-c 后面跟的“reboot -p...”应该算作一条命令,如果"su -c reboot -p"的话,"-p" 就当作是su的一个参数了 我测试过程是这样的,布局添加一个按钮就可以了,填写主类代码 public class MainActivity

    11910

    探秘Java Runtime类:深入了解JVM运行时环境,有两下子!

    优缺点分析  Java Runtime类是Java程序中一个非常重要的类,它提供了许多与Java虚拟机(JVM)相关的方法和接口,可以用于控制JVM的行为。...系统监控:Java Runtime类可以用于监视JVM的运行状态、内存使用情况、线程和进程信息等,可以帮助程序员更好地了解和调试应用程序的行为。...下面是对这段代码的分析和一些关键点的讨论:单例模式:这个Runtime类使用了一个私有构造函数和一个持有类实例的静态成员变量currentRuntime,来实现单例模式。...注意事项:Runtime.exec(String command)方法执行的命令依赖于系统环境,可能在非Windows系统上不可用或需要不同的命令。...exec():允许我们启动新进程,执行系统命令,为Java程序提供了与操作系统交互的能力。

    76641

    渗透测试笔记-4

    这个框架中有一个InvokerTransformer.java接口,实现该接口的类可以通过调用java的反射机制来调用任意函数,于是我们可以通过调用Runtime.getRuntime.exec() 函数来执行系统命令...Java应用在进行反序列化操作时,执行了readObject()函数,修改了Map的Value,则会触发TransformedMap的变换函数transform(),再通过反射链调用了Runtime.getRuntime.exec...5.反序列化漏洞Payload 1.反序列化时会执行对象的readObject()方法 2.Runtime.getRuntime.exec(“xx”)可以执行系统命令 3.InvokerTransformer...的transform()方法可以通过反射链调用Runtime.getRuntime.exec(“xx”)函数来执行系统命令 4.TransformedMap类的decorate方法用来实例化一个TransformedMap...的transform()方法,InvokerTransformer.transform()方法通过反射链调用Runtime.getRuntime.exec(“xx”)函数来执行系统命令 image.png

    49030

    一键清理应用数据或者清除应用缓存的方法

    导语:最近在做一个一键清理应用缓存的功能,做着做着发现挺有意思,总结了两种方法,供大家参考。 一种是退出应用时,清除应用里的缓存数据。这种方法跟在设置里的应用中去清除数据效果是一样的,非常好用。...就是直接执行命令: "pm clear" + packageName; 方法如下: /** * 清除应用缓存的用户数据,同时停止所有服务和Alarm定时task * String cmd = "pm...clear " + packageName; * String cmd = "pm clear " + packageName + " HERE"; * Runtime.getRuntime().exec...p = Runtime.getRuntime().exec(commond); } catch (IOException e) { LogTag.log("exec Runtime commond:"...而且只支持目录下的文件删除 * * @param filePath */ public static void cleanCustomCache(String filePath) {

    4K91
    领券