天天看點

【學習筆記】ElasticSearch Groovy 腳本遠端代碼執行漏洞(CVE-2015-1427)

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