我服了struts2的官方人员,他们升级新的版本,我从源码上做文件对比,代码没有做任何变化。
看来我让大家等补丁,是坑了大家。
疑似struts2的开发人员粗心,没把新版本更新,只是发布了版本号。
发个临时补丁给大家顶一下吧。
替换package org.apache.struts2.views.util.DefaultUrlHelper这个类的代码 // /** // * 老的这部分代码注释掉 // */ // private String translateVariable(String input) { // ValueStack valueStack = ServletActionContext.getContext().getValueStack(); // return TextParseUtil.translateVariables(input, valueStack); // } /** * struts漏洞临时补丁 */ private String translateVariable(String input) { return input; } |
大家可以直接把官方这个文件的源码拷贝一份,并按照以上步骤修补,然后把源码放在java项目中,就会覆盖官方源码。
原理是用户的源码优于JAR执行,执行后,就不再执行官方源码,相当于hook。
修补后的状态是对${你懂得}内容作一次URL编码,之后输出,不执行任何ognl语句。
0 条评论。