struts2安全漏洞及解决办法
分类:struts2互联网安全2013-07-20 00:43 172人阅读 评论(0)收藏 举报struts2安全漏洞filter7月17日,世界知名开源软件struts2爆出了2个高危漏洞,这些漏洞可使黑客取得网站服务器的“最高权限”,从而使企业服务器变成黑客手中的“肉鸡”。
详细漏洞信息:http:// struts.apache.org/release/2.3.x/docs/s2-016.html
http://struts.apache.org/release/2.3.x/docs/s2-017.html
http://struts.apache.org/release/2.3.x/docs/version-notes-23151.html
目前,官方已经发布高危安全漏洞补丁升级(最新版本为:2.3.15.1,下载地址:http://struts.apache.org/download.cgi#struts23151),升级修补了多个安全漏洞,其中包括这个远程任意代码的高危安全漏洞。
关于此漏洞,最好的解决方法当然是将struts2的jar包更新到最新版本。不过对于不同struts2版本,升级会引起一些包冲突。
升级步骤:
1.下载到的更新包中主要用到以下几个替换掉旧版本的:
commons-lang3-3.1.jar(保留原有的commons-lang.jar,因为升级后,org.apache.commons.lang.StringUtils类被org.apache.commons.lang3.StringUtils替换了,所有要保留原有包)
javassist-3.4.GA.jar (新加包)
ognl-3.0.6.jar (替换旧版本)
struts2-core-2.3.15.1.jar (替换旧版本)
xwork-core-2.3.15.1.jar (替换旧版本)
struts2-spring-plugin-2.3.15.1.jar(替换旧版本)
2.如果原有spring包版本太低,如2.0,还需要升级spring包到2.5版本。
struts2.1以下版本,需要检查struts的xml配置文件,type="redirect" 改为type="redirectAction"。
3.修改 web.xml文件
将
struts-cleanup
org.apache.struts2.dispatcher.ActionContextCleanUp
struts-cleanup
public class SqlFilter implements Filter {
public static final Logger logger =Logger.getLogger(sun.reflect.Reflection.getCallerClass(1));
//需要过滤的post字符
private static String sqlStr="',<,>,and,exec,insert,select,,delete,update,count,*,%,chr,mid,master,truncate,char,like,declare,&,#,(,),,=,script,