7月17日,世界知名开源软件struts 2爆出了2个高危漏洞,这些漏洞可使黑客取得网站服务器的“最高权限”,从而使企业服务器变成黑客手中的“肉鸡”。 详细漏洞信息:3 ~' x6 j) }0 r/ p- K+ c
http://struts.apache.org/release/2.3.x/docs/s2-016.html
# c( }3 w" @4 S& p: l; P
关于此漏洞,最好的解决方法当然是将struts2的jar包更新到最新版本。不过对于不同struts2版本,升级会引起一些包冲突。& L5 D& n. H; ^7 @% w2 \
( u. } E6 D" ~$ A. b8 V
升级步骤:$ H5 K. t) k# |% i* k1 i
1.下载到的更新包中主要用到以下几个替换掉旧版本的:. H) I, e, ^: \% ?! v# \
commons-lang3-3.1.jar (保留原有的commons-lang.jar,因为升级后,org.apache.commons.lang.StringUtils类被 org.apache.commons.lang3.StringUtils替换了,所有要保留原有包)1 o* g& R4 D# L! n
javassist-3.4.GA.jar (新加包)! x4 }* F# k7 B7 j4 f) h2 J r
ognl-3.0.6.jar (替换旧版本)
% N# p% h) Y$ N) bstruts2-core-2.3.15.1.jar (替换旧版本)3 O& z0 `9 D, l
xwork-core-2.3.15.1.jar (替换旧版本)4 k. q0 x. _: q& t6 i0 M' l
struts2-spring-plugin-2.3.15.1.jar(替换旧版本) 6 i0 X9 d/ o, L) V7 G* c
2.如果原有spring包版本太低,如2.0,还需要升级spring包到2.5版本。 a: l* A) s5 q) I: ?. ^) }
struts2.1以下版本,需要检查struts的xml配置文件,type="redirect" 改为 type="redirectAction"。 # s$ X3 t. I, R2 i
3.修改 web.xml文件
9 m I2 E& g% I0 {0 a7 I% [将4 T6 R# R( T, z5 ?/ K& q: A: m
3 f6 c5 T k: [! v) {struts-cleanup
* ?$ a! v& u* a! d8 o9 d2 aorg.apache.struts2.dispatcher.ActionContextCleanUp
9 r/ d: T# b, T r9 f, M
! Z, m# F9 ~) Z. a" Z" R) K" g6 g9 z! [, X. I& Z
struts-cleanup2 o/ t# _: U( d) s1 r' ^
% R9 M+ ^ p4 J; T" j, n/ X
public class SqlFilter implements Filter {- \3 B7 ?8 ^4 u% @) r2 k5 r
public static final Logger logger = Logger.getLogger(sun.reflect.Reflection.getCallerClass(1));- ]; n3 S% \- I6 J& V! n1 i/ W+ f
//需要过滤的post字符
- A; f6 L9 a S1 y& vprivate static String sqlStr="',<,>,and,exec,insert,select, ,delete,update,count,*,%,chr,mid,master,truncate,char,like,declare,&,#,(,),,=,script, 9 s L9 M# v% \. d6 R
|