Java命令执行审计怎么查?关键词清单来了!(附类型汇总)

Java命令执行审计怎么查?关键词清单来了!(附类型汇总)

原创 火力猫 季升安全 2025-04-17 06:09

🔥Java 命令执行类型汇总

序号 执行方式 关键类/方法 说明
1 Runtime.exec() java.lang.Runtime 最经典方式,直接执行命令
2 ProcessBuilder.start() java.lang.ProcessBuilder 更灵活的命令构造方式
3 JavaScript 执行命令 ScriptEngine.eval() 使用 Nashorn 引擎,JavaScript 调用 Java
4 Groovy 执行命令 'cmd'.execute() Groovy 特性,动态执行字符串命令
5 Apache Commons Exec CommandLine.parse() 被广泛使用的第三方命令执行库
6 JNDI 远程加载类 InitialContext.lookup() 远程加载恶意类,常用于链式触发 RCE
7 JNI 本地命令执行 System.loadLibrary() 加载 native C/C++ 库,调用 system()
8 反射链命令执行 Class.forName(...) 构造隐蔽执行链,常用于绕过审计

🧠 Java 命令执行源码审计关键词清单

✅ 主动执行关键点

Runtime.getRuntimeexec(ProcessBuilderstart(execute(

✅ 动态脚本类

ScriptEngineScriptEngineManagereval(getEngineByNameGroovyShellgroovy.lang.evaluate.execute(

✅ 第三方框架命令相关

CommandLine.parseorg.apache.commons.execDefaultExecutor.execute

✅ JNDI/远程加载/反序列化链入口

InitialContext.lookup(Context.lookupjavax.namingJNDIrmi:ldap:

✅ 本地执行接口(JNI)

System.loadSystem.loadLibrarynativeJNIEXPORTsystem(

✅ 反射链可疑操作

Class.forNamegetMethodinvoke(Method.invokeField.setAccessible

🚩 高危可控点审计辅助词

request.getParameterargs[0]userInputcmd=inputStream.readLineBufferedReadersession.getAttribute

这些词常用于命令拼接源头,辅助上面关键词审查,不建议单独使用。

详细分析
👉

一文看懂 Java 命令执行的源码审计与防御