7月17日,世界知名开源软件struts 2爆出了2个高危漏洞,这些漏洞可使黑客取得网站服务器的“最高权限”,从而使企业服务器变成黑客手中的“肉鸡”。 详细漏洞信息:
) W# r3 o) }! O" C( J* A! O http://struts.apache.org/release/2.3.x/docs/s2-016.html
0 @' z7 R% |% |& p2 j
关于此漏洞,最好的解决方法当然是将struts2的jar包更新到最新版本。不过对于不同struts2版本,升级会引起一些包冲突。" H7 [1 ? I* T
+ d& P% H; A9 L- d! v升级步骤:
; [" S/ R$ m f( _- ~% G( W# o1.下载到的更新包中主要用到以下几个替换掉旧版本的:
+ k2 {; B( u2 c$ E6 kcommons-lang3-3.1.jar (保留原有的commons-lang.jar,因为升级后,org.apache.commons.lang.StringUtils类被 org.apache.commons.lang3.StringUtils替换了,所有要保留原有包)
! ]6 P2 a$ V2 D& Y0 \: ejavassist-3.4.GA.jar (新加包) Y" o' A5 N1 E$ l" h
ognl-3.0.6.jar (替换旧版本)( m* v( v) R2 X) x
struts2-core-2.3.15.1.jar (替换旧版本)& v3 @$ s* M- q' L+ ?* H2 F, L
xwork-core-2.3.15.1.jar (替换旧版本)
' q: D. E6 t. P1 V, }6 P) vstruts2-spring-plugin-2.3.15.1.jar(替换旧版本) 3 T E. ^% c. R* V
2.如果原有spring包版本太低,如2.0,还需要升级spring包到2.5版本。: X) b, d5 {2 }" k# o
struts2.1以下版本,需要检查struts的xml配置文件,type="redirect" 改为 type="redirectAction"。
- p, h3 s$ p& E7 U3 {7 y- E3.修改 web.xml文件0 o4 z5 U. J/ W$ v
将9 R9 M; V$ N1 y
3 U+ w1 Q- k1 y) H( Y
struts-cleanup5 d. Y+ N& a/ x% S0 q. T, }* E% J1 h
org.apache.struts2.dispatcher.ActionContextCleanUp
: b% B# L, t/ u4 H( y2 d& E. t) Y4 o/ j
. Z! p3 N2 l! H4 Mstruts-cleanup
% u$ g3 G U6 `
" ^9 e% e0 ^/ {2 r" j3 T1 e$ Qpublic class SqlFilter implements Filter {! H' j b3 B0 D) e- n2 H3 D$ H) h _
public static final Logger logger = Logger.getLogger(sun.reflect.Reflection.getCallerClass(1));
; x2 m7 z4 h% v/ ?& x8 k0 m. V//需要过滤的post字符; \8 K3 \7 C* i& n: R7 M: }) O' {) L+ E
private static String sqlStr="',<,>,and,exec,insert,select, ,delete,update,count,*,%,chr,mid,master,truncate,char,like,declare,&,#,(,),,=,script,
1 b: Z* v' w+ N2 W F; `1 W |