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
这些词常用于命令拼接源头,辅助上面关键词审查,不建议单独使用。
详细分析
👉