7月17日,世界知名开源软件struts 2爆出了2个高危漏洞,这些漏洞可使黑客取得网站服务器的“最高权限”,从而使企业服务器变成黑客手中的“肉鸡”。 详细漏洞信息:4 R, r# \' C+ M6 L
http://struts.apache.org/release/2.3.x/docs/s2-016.html& v" _0 b# G; l3 g$ @
关于此漏洞,最好的解决方法当然是将struts2的jar包更新到最新版本。不过对于不同struts2版本,升级会引起一些包冲突。1 V/ I1 |4 E# s" s
7 t! c% ^. t! f+ d/ y+ {
升级步骤:! F$ g* I3 O/ [" Z9 x& u
1.下载到的更新包中主要用到以下几个替换掉旧版本的:, ^$ v: X% Q2 l u% G! @
commons-lang3-3.1.jar (保留原有的commons-lang.jar,因为升级后,org.apache.commons.lang.StringUtils类被 org.apache.commons.lang3.StringUtils替换了,所有要保留原有包)
: a! W' E6 U0 H7 a% l! }7 {' {' Ajavassist-3.4.GA.jar (新加包)
% V! T& W; O+ F. {9 lognl-3.0.6.jar (替换旧版本)
; Q0 T+ t( C- }; L! b$ ~& Zstruts2-core-2.3.15.1.jar (替换旧版本). r- A( S. u7 L2 r' Y4 q' x
xwork-core-2.3.15.1.jar (替换旧版本)/ g1 m9 s& n5 r
struts2-spring-plugin-2.3.15.1.jar(替换旧版本) ( _7 X! M$ m- J% j2 @' G
2.如果原有spring包版本太低,如2.0,还需要升级spring包到2.5版本。
: G" _* i' N, Y6 z" Gstruts2.1以下版本,需要检查struts的xml配置文件,type="redirect" 改为 type="redirectAction"。
( V9 R. Q9 B" Q1 c# M3.修改 web.xml文件
d9 h" s" h* f2 @将% |- o4 k2 t, A' ~( X3 ^2 X
9 D) A" u- U( N1 Z4 \+ Kstruts-cleanup
2 H. Q7 t, \! Q2 }$ G+ F) \org.apache.struts2.dispatcher.ActionContextCleanUp
$ D6 l7 Y" ^) }. I, G) o, r6 I8 ^) p! B
% v' z8 u$ M& ~# M& v, G7 nstruts-cleanup2 L8 J8 c2 e- ?+ l3 D
$ x; z( ~+ v, d* a7 B; ?public class SqlFilter implements Filter {8 ]7 ]7 b F5 Q% q
public static final Logger logger = Logger.getLogger(sun.reflect.Reflection.getCallerClass(1));
0 a/ f2 E, Y3 X* ~//需要过滤的post字符
. P# z( \- i1 U2 H/ ~7 Gprivate static String sqlStr="',<,>,and,exec,insert,select, ,delete,update,count,*,%,chr,mid,master,truncate,char,like,declare,&,#,(,),,=,script,
4 ?9 i; b' I+ I; z. D/ t9 T |