7月17日,世界知名开源软件struts 2爆出了2个高危漏洞,这些漏洞可使黑客取得网站服务器的“最高权限”,从而使企业服务器变成黑客手中的“肉鸡”。 详细漏洞信息:: M- H [% H- v5 g2 j
http://struts.apache.org/release/2.3.x/docs/s2-016.html. G: o( g! N( A% Q
关于此漏洞,最好的解决方法当然是将struts2的jar包更新到最新版本。不过对于不同struts2版本,升级会引起一些包冲突。( C4 [ k0 v1 p( o/ ~
- y& u: A+ X2 g# z8 e) Y升级步骤:$ ~% m! j) [/ I3 n
1.下载到的更新包中主要用到以下几个替换掉旧版本的:/ L% e3 B" a3 G" }6 k) L: R: T: S
commons-lang3-3.1.jar (保留原有的commons-lang.jar,因为升级后,org.apache.commons.lang.StringUtils类被 org.apache.commons.lang3.StringUtils替换了,所有要保留原有包)( B; E ^/ M' _% S
javassist-3.4.GA.jar (新加包)' l1 B! i$ `- _& p$ o* v: q
ognl-3.0.6.jar (替换旧版本)+ O# _" }$ I. a) `! H7 @
struts2-core-2.3.15.1.jar (替换旧版本)
& l! Q4 F9 d8 S; b( b) w$ Cxwork-core-2.3.15.1.jar (替换旧版本)) X" F$ s: L" s; l
struts2-spring-plugin-2.3.15.1.jar(替换旧版本)
) t+ f. _: P' x4 a+ A2.如果原有spring包版本太低,如2.0,还需要升级spring包到2.5版本。
+ U; A! I8 Y! q( h* a4 N* i9 ?# Q, pstruts2.1以下版本,需要检查struts的xml配置文件,type="redirect" 改为 type="redirectAction"。
7 w) U0 ?" Z$ t3 i( f4 H3.修改 web.xml文件
6 b9 _" h0 g! b- @8 p2 h5 H将/ c6 D+ @, \7 M' L" M
2 C( w) M6 `2 L/ H% Q+ r
struts-cleanup q4 n! q( D- N3 Z8 L/ V$ i
org.apache.struts2.dispatcher.ActionContextCleanUp1 c7 }# o% e- n3 W* `) j
2 Y$ D) b2 x* y+ i# J: Q) H( ~
" d3 L l0 R' x/ c* X2 K1 X, w" j/ Q$ tstruts-cleanup0 X: l& `7 g% d0 h2 B8 C% G
# _; U5 l$ y# I2 w, m, m7 Lpublic class SqlFilter implements Filter {& ?6 L7 |( A) P6 C* z# ?. S( v( g
public static final Logger logger = Logger.getLogger(sun.reflect.Reflection.getCallerClass(1));
3 k9 Z8 Y$ S; }( j) O0 ?; g: U//需要过滤的post字符
- \7 r. O* c! v! ]private static String sqlStr="',<,>,and,exec,insert,select, ,delete,update,count,*,%,chr,mid,master,truncate,char,like,declare,&,#,(,),,=,script,
: d: c: a. A8 U/ j. G* d8 O0 [ |