7月17日,世界知名开源软件struts 2爆出了2个高危漏洞,这些漏洞可使黑客取得网站服务器的“最高权限”,从而使企业服务器变成黑客手中的“肉鸡”。 详细漏洞信息:, b2 @+ e, P* g4 f u. W
http://struts.apache.org/release/2.3.x/docs/s2-016.html0 u8 |# N' Q5 i' R
关于此漏洞,最好的解决方法当然是将struts2的jar包更新到最新版本。不过对于不同struts2版本,升级会引起一些包冲突。
! g" I' r' A' f) T# p7 G U' X% h+ R: H, I7 [* r
升级步骤:
~9 T$ |8 W/ x7 C9 }0 C1.下载到的更新包中主要用到以下几个替换掉旧版本的:
/ G5 y6 R& Q& x& ?. Ucommons-lang3-3.1.jar (保留原有的commons-lang.jar,因为升级后,org.apache.commons.lang.StringUtils类被 org.apache.commons.lang3.StringUtils替换了,所有要保留原有包)2 d- E3 q: P; p% J
javassist-3.4.GA.jar (新加包)
5 p, I Q( A3 ]; l4 |ognl-3.0.6.jar (替换旧版本)
5 V; T3 t H9 a& [3 d4 Dstruts2-core-2.3.15.1.jar (替换旧版本)! ]3 z8 H/ S$ d- d
xwork-core-2.3.15.1.jar (替换旧版本)( `$ A7 ]5 s" ~! k( ?6 N
struts2-spring-plugin-2.3.15.1.jar(替换旧版本) r5 r$ e9 O! m1 X! B* O9 O. b
2.如果原有spring包版本太低,如2.0,还需要升级spring包到2.5版本。
4 ^0 e( [" O" i" {0 Q. Kstruts2.1以下版本,需要检查struts的xml配置文件,type="redirect" 改为 type="redirectAction"。
. L- A6 B0 [, b7 |# d' Z9 A3.修改 web.xml文件
! R/ { _9 D3 V将
, _- O. b; T. @* `0 W
) Y; \' h4 x+ Y; j* J: ~struts-cleanup9 Q& c! P% }( O* T5 I
org.apache.struts2.dispatcher.ActionContextCleanUp
6 I; Q/ G1 V& \' Y" a8 K1 @6 O- a
+ @ }1 m# I, E( astruts-cleanup
2 E! D5 d) N A: s; J. |5 m8 x) q: {- M# Y5 F
public class SqlFilter implements Filter {6 c7 w/ y" i7 x$ T) X& d
public static final Logger logger = Logger.getLogger(sun.reflect.Reflection.getCallerClass(1));3 L9 i( `8 n9 I6 e& K- \6 l: D% Y
//需要过滤的post字符' [7 T3 ]. E+ ~
private static String sqlStr="',<,>,and,exec,insert,select, ,delete,update,count,*,%,chr,mid,master,truncate,char,like,declare,&,#,(,),,=,script, ' P: k7 u1 W4 ?4 Q7 w! H$ y
|