7月17日,世界知名开源软件struts 2爆出了2个高危漏洞,这些漏洞可使黑客取得网站服务器的“最高权限”,从而使企业服务器变成黑客手中的“肉鸡”。 详细漏洞信息:
+ i2 x; X4 V1 ]: H: [5 \ http://struts.apache.org/release/2.3.x/docs/s2-016.html
- V; Z9 k: [& N
关于此漏洞,最好的解决方法当然是将struts2的jar包更新到最新版本。不过对于不同struts2版本,升级会引起一些包冲突。9 j, V) [4 R1 k( Z2 W
/ @5 r4 z! a/ Z- @升级步骤:
6 I& J( t7 R7 H: O1.下载到的更新包中主要用到以下几个替换掉旧版本的:
# Q" [0 I, R4 Bcommons-lang3-3.1.jar (保留原有的commons-lang.jar,因为升级后,org.apache.commons.lang.StringUtils类被 org.apache.commons.lang3.StringUtils替换了,所有要保留原有包)
/ `$ |) c3 _* p2 t* b& Q9 Jjavassist-3.4.GA.jar (新加包)% G- }9 _7 p% G( y1 T7 y+ C
ognl-3.0.6.jar (替换旧版本)
5 c7 W# Y( s$ \struts2-core-2.3.15.1.jar (替换旧版本)
$ A1 z% K8 B* M& ^) ^( e& D0 jxwork-core-2.3.15.1.jar (替换旧版本)3 A5 J; F8 M% q L5 `9 Z% P
struts2-spring-plugin-2.3.15.1.jar(替换旧版本) + h0 I2 r C' B6 @
2.如果原有spring包版本太低,如2.0,还需要升级spring包到2.5版本。
# x9 p9 j& A- ]struts2.1以下版本,需要检查struts的xml配置文件,type="redirect" 改为 type="redirectAction"。
/ L1 j5 i, n: E6 ` H Q3.修改 web.xml文件
7 u2 S9 T6 l' q! N9 I将4 i; L, P8 n' @: J1 i
0 g& l9 b v2 G5 |/ w- `struts-cleanup2 c' J) k$ a, ~; \( `- C- N
org.apache.struts2.dispatcher.ActionContextCleanUp
5 U, A3 u+ W; t! c0 c6 q9 X' X7 V X1 T
# a+ w1 ]) x9 O: K% P# j# ?' c
struts-cleanup: Z3 \7 U7 Z* P' W! Q. @
. i, Y9 U1 z) a
public class SqlFilter implements Filter {$ I9 n: u. `0 Z, m2 |
public static final Logger logger = Logger.getLogger(sun.reflect.Reflection.getCallerClass(1));, a4 s" J" v4 [; J
//需要过滤的post字符1 ~5 E$ a- {4 V+ c) K% z* `
private static String sqlStr="',<,>,and,exec,insert,select, ,delete,update,count,*,%,chr,mid,master,truncate,char,like,declare,&,#,(,),,=,script,
7 R5 q6 N1 S: i' b' ]; X6 i4 ^ |