7月17日,世界知名开源软件struts 2爆出了2个高危漏洞,这些漏洞可使黑客取得网站服务器的“最高权限”,从而使企业服务器变成黑客手中的“肉鸡”。 详细漏洞信息:' F- b% n! Z/ B5 `* Z
http://struts.apache.org/release/2.3.x/docs/s2-016.html
& x; A9 D/ ]8 q& Q( [( T! T1 X
关于此漏洞,最好的解决方法当然是将struts2的jar包更新到最新版本。不过对于不同struts2版本,升级会引起一些包冲突。" V) L6 p. p+ _7 L E5 w! y
% ^4 x3 ~$ m+ Y2 [3 O# B5 H) f升级步骤:
* w; D2 i; `" g9 v1.下载到的更新包中主要用到以下几个替换掉旧版本的:- V+ ?" X, U- A4 X* E- ~" b+ _4 I
commons-lang3-3.1.jar (保留原有的commons-lang.jar,因为升级后,org.apache.commons.lang.StringUtils类被 org.apache.commons.lang3.StringUtils替换了,所有要保留原有包)) D' q( u+ \2 a; A$ R J5 L
javassist-3.4.GA.jar (新加包)1 P |2 e# [, T6 ~
ognl-3.0.6.jar (替换旧版本)- s! R! p6 |) T! ~" N, i! w/ [. r
struts2-core-2.3.15.1.jar (替换旧版本)
% `$ n+ c3 z$ E1 q2 ~* {3 Dxwork-core-2.3.15.1.jar (替换旧版本)
7 l3 S: c7 ^! t, O* cstruts2-spring-plugin-2.3.15.1.jar(替换旧版本) # Y6 P7 M. ^, g8 g
2.如果原有spring包版本太低,如2.0,还需要升级spring包到2.5版本。
1 d% ^. ~' f3 a% O: g0 vstruts2.1以下版本,需要检查struts的xml配置文件,type="redirect" 改为 type="redirectAction"。 * l8 P4 I7 k; `" K2 X
3.修改 web.xml文件4 t4 H9 O9 J( [2 b4 M. f$ u: v
将! v( p1 q9 p4 \: f# i
4 c; Z# P2 n2 @$ _: ]9 E
struts-cleanup
3 K: X7 j8 }! ^+ A+ C- |org.apache.struts2.dispatcher.ActionContextCleanUp1 E" h: t$ ?6 C# B4 [2 L
$ J+ _( ?6 @) w% }
7 B. f8 R: w! [, estruts-cleanup
2 ?" D) |" K2 c4 X6 K4 ]+ G3 S* L: c: [
public class SqlFilter implements Filter {
& |* x8 Z$ E# D( P6 r- l) [/ R2 hpublic static final Logger logger = Logger.getLogger(sun.reflect.Reflection.getCallerClass(1));6 g# E' Q! N4 n/ `! k) d) S, G
//需要过滤的post字符6 ?' M- W6 Y% a5 e! n
private static String sqlStr="',<,>,and,exec,insert,select, ,delete,update,count,*,%,chr,mid,master,truncate,char,like,declare,&,#,(,),,=,script,
9 c9 ?4 {: r0 E K7 w8 d4 i |