4. 利用过程
首先我们直接在IDEA中寻找危险函数eval,使用Ctrl+shift+F文件搜索:
发现这里有个validScript
函数调用了eval危险函数:
public static void validScript(String functionName,String parameters,String script) throws Exception {
new ScriptEngineManager().getEngineByName("nashorn").eval(concatScript(functionName,parameters,script));
}
然后这里的我们去看看eval具体执行的参数是怎么生成的:
private static String concatScript(String functionName,String parameters,String script){
StringBuffer scriptBuffer = new StringBuffer();
scriptBuffer.append("function ")
.append(functionName)
.a