ES旧版本中使用MVEL作为脚本执行引擎 没有安全限制 因此可以构造任意java代码
CVE -2014 -3120
出了这个CVE后 又用groovy引擎了
防止恶意脚本执行 还用了沙盒的机制(因为沙盒限制不严格导致漏洞)
CVE-2015-1427
沙盒通过黑白名单检测可以说它是浅沙盒
如果黑名单禁用a() 白名单有b() 就用b()调用a()
通过一个类获取另一个类
通过getclass方法获取class对象反射调用类 替代品forname 利用它来调用java.lang.runtime执行外部命令然后.getruntime().exec("cat /etc/passwd")