7月17日,世界知名开源软件struts 2爆出了2个高危漏洞,这些漏洞可使黑客取得网站服务器的“最高权限”,从而使企业服务器变成黑客手中的“肉鸡”。 详细漏洞信息:
: M* f7 k$ ^4 u9 w http://struts.apache.org/release/2.3.x/docs/s2-016.html U* ^$ ?+ L2 B w5 M
关于此漏洞,最好的解决方法当然是将struts2的jar包更新到最新版本。不过对于不同struts2版本,升级会引起一些包冲突。' t9 Q; K/ e/ y
- @0 r; b1 C7 P$ w4 `
升级步骤:" c2 H# c* Y% {; f' f$ J' K
1.下载到的更新包中主要用到以下几个替换掉旧版本的:
. `; p/ x0 b3 ecommons-lang3-3.1.jar (保留原有的commons-lang.jar,因为升级后,org.apache.commons.lang.StringUtils类被 org.apache.commons.lang3.StringUtils替换了,所有要保留原有包)
6 B6 B0 H. ]; M1 v4 Kjavassist-3.4.GA.jar (新加包)6 L& ]8 o2 o5 h' D5 |6 H
ognl-3.0.6.jar (替换旧版本)& M& Z0 }9 K% a9 g$ K K0 E
struts2-core-2.3.15.1.jar (替换旧版本)
, O5 b) b% i; s) m" B' e4 _9 z3 Zxwork-core-2.3.15.1.jar (替换旧版本) |7 w e& M8 Z* R+ e, V
struts2-spring-plugin-2.3.15.1.jar(替换旧版本) 4 e/ M9 }' D$ l" {
2.如果原有spring包版本太低,如2.0,还需要升级spring包到2.5版本。) ]; p( t+ Y2 }) t
struts2.1以下版本,需要检查struts的xml配置文件,type="redirect" 改为 type="redirectAction"。 ! R& }7 G' I- U# h8 ~( T9 `2 z
3.修改 web.xml文件
# C8 ~6 H q- O- a将8 S, B7 J/ ^/ a* U
( d+ {. ]( d D6 r% r: ~# I
struts-cleanup
; f% Q3 W+ R# e' y. o5 A: m7 xorg.apache.struts2.dispatcher.ActionContextCleanUp
" ~& |9 C( `' o9 }1 `6 y& ^( L
3 D. ]; |. [4 |- s9 c3 Z9 V( q/ } y# T) I% }* C
struts-cleanup
0 O6 E6 \ }9 H$ Q+ }. n3 @5 Z2 F. E6 V
public class SqlFilter implements Filter {4 m, S% p" L: [: b) {
public static final Logger logger = Logger.getLogger(sun.reflect.Reflection.getCallerClass(1));
% s& a: \0 X8 v3 n3 c//需要过滤的post字符
0 }' |" E* v4 c! o3 Mprivate static String sqlStr="',<,>,and,exec,insert,select, ,delete,update,count,*,%,chr,mid,master,truncate,char,like,declare,&,#,(,),,=,script,
* X& t, M' j) Q |