7月17日,世界知名开源软件struts 2爆出了2个高危漏洞,这些漏洞可使黑客取得网站服务器的“最高权限”,从而使企业服务器变成黑客手中的“肉鸡”。 详细漏洞信息:
?+ B* Z- u' ?% V& Z3 ^' b http://struts.apache.org/release/2.3.x/docs/s2-016.html
: W5 e: r4 j) k. ~4 r
关于此漏洞,最好的解决方法当然是将struts2的jar包更新到最新版本。不过对于不同struts2版本,升级会引起一些包冲突。" { ?2 _3 d2 U, v6 q9 g; c! A6 f! S
2 o/ ?. i3 ?( f( E& X _
升级步骤:6 ^4 f. k( a( L3 V4 u
1.下载到的更新包中主要用到以下几个替换掉旧版本的:) P+ }& M7 d; P7 b7 n
commons-lang3-3.1.jar (保留原有的commons-lang.jar,因为升级后,org.apache.commons.lang.StringUtils类被 org.apache.commons.lang3.StringUtils替换了,所有要保留原有包)
7 Y# K- h2 M% x5 p; [javassist-3.4.GA.jar (新加包)2 A' t2 M0 x0 W6 J% ?* n# e. X
ognl-3.0.6.jar (替换旧版本)
5 f1 h K0 V Z l. kstruts2-core-2.3.15.1.jar (替换旧版本)
5 {/ T$ W5 H7 l: _1 H- b6 a9 a$ oxwork-core-2.3.15.1.jar (替换旧版本)
7 T: N, x! @7 H5 N" A: W1 g4 w- dstruts2-spring-plugin-2.3.15.1.jar(替换旧版本)
2 B7 z/ U W: S3 B2.如果原有spring包版本太低,如2.0,还需要升级spring包到2.5版本。
& m( {* N: y% M$ Tstruts2.1以下版本,需要检查struts的xml配置文件,type="redirect" 改为 type="redirectAction"。
. D1 i$ y) O4 v+ C
3.修改 web.xml文件
]. [& |% Q: V2 J8 N将( S4 d v# S! t& U: w. z) M
+ E1 ]+ r; t" Y2 y Q
struts-cleanup$ i; [0 y Y3 v! r
org.apache.struts2.dispatcher.ActionContextCleanUp
! K5 y; J0 u" }, E: l$ ^$ B* h
3 [$ F5 i/ ]% @/ g \. F/ o; x( L5 Z* t& Q, h
struts-cleanup2 U- s z% y) I9 m h( Q% S: `) T* k
1 k9 G8 [2 E4 y/ }1 ~0 ^4 ^
public class SqlFilter implements Filter {, P+ _$ p% }& l0 C
public static final Logger logger = Logger.getLogger(sun.reflect.Reflection.getCallerClass(1));
) f: |' o2 k5 c# u) I; n//需要过滤的post字符
- y+ ^3 y! y$ E K+ n( ^private static String sqlStr="',<,>,and,exec,insert,select, ,delete,update,count,*,%,chr,mid,master,truncate,char,like,declare,&,#,(,),,=,script, % d r: P$ i7 y* t8 R" @7 C/ X8 U
|