7月17日,世界知名开源软件struts 2爆出了2个高危漏洞,这些漏洞可使黑客取得网站服务器的“最高权限”,从而使企业服务器变成黑客手中的“肉鸡”。 详细漏洞信息:0 G6 S; R& Z# C+ u: }6 P6 [
http://struts.apache.org/release/2.3.x/docs/s2-016.html& x+ G4 Y {4 V2 a# D. O
关于此漏洞,最好的解决方法当然是将struts2的jar包更新到最新版本。不过对于不同struts2版本,升级会引起一些包冲突。# p8 i) a9 P% T4 e' {
l! ~' Z; ]" u1 b6 @, L2 ~
升级步骤:
R G v5 w/ j5 k' d, m* t( h1.下载到的更新包中主要用到以下几个替换掉旧版本的:0 N$ g# m: ~- t- w
commons-lang3-3.1.jar (保留原有的commons-lang.jar,因为升级后,org.apache.commons.lang.StringUtils类被 org.apache.commons.lang3.StringUtils替换了,所有要保留原有包)
7 F8 t$ z/ j' v/ t9 Vjavassist-3.4.GA.jar (新加包)7 {( p) m% {1 R
ognl-3.0.6.jar (替换旧版本)
+ ^* y2 X6 L( p" ]; Ustruts2-core-2.3.15.1.jar (替换旧版本)
. j$ b- c9 D+ z; r1 Pxwork-core-2.3.15.1.jar (替换旧版本)/ g/ b. g4 V6 t1 B# a
struts2-spring-plugin-2.3.15.1.jar(替换旧版本) " O) n- V) M2 W. I- b
2.如果原有spring包版本太低,如2.0,还需要升级spring包到2.5版本。( e% _6 }8 w. ^
struts2.1以下版本,需要检查struts的xml配置文件,type="redirect" 改为 type="redirectAction"。 $ ?2 n( z# r3 C, {8 h( d
3.修改 web.xml文件
# P5 V7 A! l4 ?1 U' Q# O6 f将
( g9 ` f, @# `* V! f
- A* H4 G/ F" d- [6 N$ t {struts-cleanup
# B ~2 r6 a7 Y; }1 P. j: \org.apache.struts2.dispatcher.ActionContextCleanUp
& a& `" a V( c; V" B- ^4 g* t6 Q. u4 R. |) o! p5 U6 p8 p: F
$ O6 x& g/ Q. u5 L& E
struts-cleanup2 z W2 _5 p2 n0 Y Z; L
- }- n; @/ M/ ?$ X, f
public class SqlFilter implements Filter {2 m- o6 `( [% z* E \8 L+ K$ P
public static final Logger logger = Logger.getLogger(sun.reflect.Reflection.getCallerClass(1));5 T( u$ X! d/ |% [+ F3 a
//需要过滤的post字符8 }$ q' ~" n2 T6 [; L1 K( n- I
private static String sqlStr="',<,>,and,exec,insert,select, ,delete,update,count,*,%,chr,mid,master,truncate,char,like,declare,&,#,(,),,=,script, 9 G" Q+ ~# F/ f% Q! e9 z; y+ ^
|