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")