7月17日,世界知名开源软件struts 2爆出了2个高危漏洞,这些漏洞可使黑客取得网站服务器的“最高权限”,从而使企业服务器变成黑客手中的“肉鸡”。 详细漏洞信息:
& } e, b6 h$ i$ p; T" a http://struts.apache.org/release/2.3.x/docs/s2-016.html
& D! f% h* k. n0 V
关于此漏洞,最好的解决方法当然是将struts2的jar包更新到最新版本。不过对于不同struts2版本,升级会引起一些包冲突。6 Z9 H* n: z: d% I& ~1 _( D
~6 q3 m# R0 R: x升级步骤:# U0 T3 d; u2 J* Q% n( i& j
1.下载到的更新包中主要用到以下几个替换掉旧版本的:
0 L; o9 n d, @commons-lang3-3.1.jar (保留原有的commons-lang.jar,因为升级后,org.apache.commons.lang.StringUtils类被 org.apache.commons.lang3.StringUtils替换了,所有要保留原有包); j. t- j& O8 U3 `# \; j
javassist-3.4.GA.jar (新加包)( f: M, f- `; X- ]! `' f7 u- W
ognl-3.0.6.jar (替换旧版本)
8 c8 a% `, o* h! P3 mstruts2-core-2.3.15.1.jar (替换旧版本)0 o/ @: C/ d/ a
xwork-core-2.3.15.1.jar (替换旧版本)
- c' T: h/ R3 x6 t7 u% estruts2-spring-plugin-2.3.15.1.jar(替换旧版本) ^1 y$ w% ^1 m# x) ?' ?
2.如果原有spring包版本太低,如2.0,还需要升级spring包到2.5版本。
% \0 c# G) G. Nstruts2.1以下版本,需要检查struts的xml配置文件,type="redirect" 改为 type="redirectAction"。 4 l/ C$ c: \1 L s1 b
3.修改 web.xml文件
( e. H9 v K( A3 C: J2 _! z将
L/ e, R/ Y- f: Y! ^& a/ q9 M& q4 D
0 {) a! w$ R$ }+ S$ O Qstruts-cleanup# a! {' b4 h7 j7 r, V0 a4 d
org.apache.struts2.dispatcher.ActionContextCleanUp+ i3 m) ~! |" u& F" g0 g3 C% f
. ?( i% w+ i" Z+ E
: f% [! C: Z6 w. G5 kstruts-cleanup% L; j# W; G. M4 u$ r; ^9 B. K
' g/ k1 p+ H% k: f) tpublic class SqlFilter implements Filter {( D" O' [% F1 L+ |+ Z" D* e. y+ \
public static final Logger logger = Logger.getLogger(sun.reflect.Reflection.getCallerClass(1));
6 ]- O, ~7 Z0 r/ ?//需要过滤的post字符
' H3 |: e: \$ I4 o# m# f( _( Mprivate static String sqlStr="',<,>,and,exec,insert,select, ,delete,update,count,*,%,chr,mid,master,truncate,char,like,declare,&,#,(,),,=,script,
% z8 g2 u( o4 h( ~- m8 U1 I, X |