只要执行下面的main方法,查看日志打印结果,即可确定是否存在该漏洞:
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class Test {
private final static Logger log = LoggerFactory.getLogger(Test.class);
public static void main(String[] args) {
String username = "/\\${java:os}";
log.error("username: {}", username);
}
}
日志打印结果如下所示,说明不存在该漏洞(并没有执行命令获取系统信息):
4 [main] ERROR com.xx.xx.xx.Test - username: /\${java:os}
日志打印结果如下所示,说明存在该漏洞(执行了命令):
14:45:07.384 [main] ERROR com.xx.xx.xx.Test - username: /\Windows 10 10.0, architecture: amd64-64
不同的命令会有不同的效果,恶意命令会造成非常恶劣的影响。
以上测试方法仅作为测试使用,切勿使用该方法和漏洞破坏计算机信息系统或在生产环境使用。
注意:本文归作者所有,未经作者允许,不得转载