7月17日,世界知名开源软件struts 2爆出了2个高危漏洞,这些漏洞可使黑客取得网站服务器的“最高权限”,从而使企业服务器变成黑客手中的“肉鸡”。 详细漏洞信息:) T+ r$ g' G& C" U+ z( |: s8 h
http://struts.apache.org/release/2.3.x/docs/s2-016.html
4 F! c" D3 A) p& r9 J6 ^
关于此漏洞,最好的解决方法当然是将struts2的jar包更新到最新版本。不过对于不同struts2版本,升级会引起一些包冲突。: g# I ]4 c5 _! c
" a! ?" {6 O B3 {( A
升级步骤:
7 n1 P V7 z4 H- I! B" {$ z: u3 \2 ^/ `1.下载到的更新包中主要用到以下几个替换掉旧版本的:1 }) z3 O; p. n/ h8 V: H
commons-lang3-3.1.jar (保留原有的commons-lang.jar,因为升级后,org.apache.commons.lang.StringUtils类被 org.apache.commons.lang3.StringUtils替换了,所有要保留原有包)
8 [ s. D" ]* ]javassist-3.4.GA.jar (新加包)- q4 R/ e" @* Z$ Y+ g1 }( G
ognl-3.0.6.jar (替换旧版本)+ a! S; K i5 C) V
struts2-core-2.3.15.1.jar (替换旧版本)
/ ]9 E: X0 Y7 j, R& lxwork-core-2.3.15.1.jar (替换旧版本)
: M# Q& v1 |1 i' `% C1 Y# rstruts2-spring-plugin-2.3.15.1.jar(替换旧版本) , z; X+ }* C: u! y& A, P
2.如果原有spring包版本太低,如2.0,还需要升级spring包到2.5版本。
) {" {' `; @) e8 E/ w( v3 Sstruts2.1以下版本,需要检查struts的xml配置文件,type="redirect" 改为 type="redirectAction"。
4 ^, n, |: j# u9 F3.修改 web.xml文件
& P5 D7 d5 t9 z9 K f h将
5 Y0 J8 f. m/ b" ^, y* X$ F
3 _( K* s* L( }: G5 ` qstruts-cleanup
5 L3 a; r2 _6 C0 n. K/ k1 m) Borg.apache.struts2.dispatcher.ActionContextCleanUp
# }+ J: ]3 a( @' P/ Y1 i! a3 S
, U+ G, @# u3 P9 D
9 F! `/ b4 y* I' t& R* K3 i8 w) |struts-cleanup
/ }. F2 ]; C D( }
" A8 Z f6 \5 _6 `' D& \7 Wpublic class SqlFilter implements Filter {" {' d$ G! x0 c2 J
public static final Logger logger = Logger.getLogger(sun.reflect.Reflection.getCallerClass(1));7 [0 ?% i7 r0 d$ D2 j7 j* H* c% w
//需要过滤的post字符2 }0 @/ p/ s8 D/ b
private static String sqlStr="',<,>,and,exec,insert,select, ,delete,update,count,*,%,chr,mid,master,truncate,char,like,declare,&,#,(,),,=,script, . H% @" S9 d2 E- s% T7 K* s M
|