科帮网

登录/注册
您现在的位置:论坛 盖世程序员(我猜到了开头 却没有猜到结局) 盖世程序员 > struts2安全漏洞及解决办法
总共48087条微博

动态微博

查看: 1951|回复: 0

struts2安全漏洞及解决办法

[复制链接]
admin    

1244

主题

544

听众

1万

金钱

管理员

  • TA的每日心情

    2021-2-2 11:21
  • 签到天数: 36 天

    [LV.5]常住居民I

    管理员

    跳转到指定楼层
    楼主
    发表于 2014-05-10 22:42:08 |只看该作者 |倒序浏览
    7月17日,世界知名开源软件struts 2爆出了2个高危漏洞,这些漏洞可使黑客取得网站服务器的“最高权限”,从而使企业服务器变成黑客手中的“肉鸡”。

    详细漏洞信息:
      ?+ B* Z- u' ?% V& Z3 ^' b  http://struts.apache.org/release/2.3.x/docs/s2-016.html
      http://struts.apache.org/release/2.3.x/docs/s2-017.html2 H4 \6 t1 D+ E" {+ A0 g
      http://struts.apache.org/release ... on-notes-23151.html
    / s0 Y$ S7 I, }8 t0 q" L+ j8 r) V# U
    目前,官方已经发布高危安全漏洞补丁升级(最新版本为:2.3.15.1,下载地址:http://struts.apache.org/download.cgi#struts23151),升级修补了多个安全漏洞,其中包括这个远程任意代码的高危安全漏洞。

    : W5 e: r4 j) k. ~4 r
    关于此漏洞,最好的解决方法当然是将struts2的jar包更新到最新版本。不过对于不同struts2版本,升级会引起一些包冲突。" {  ?2 _3 d2 U, v6 q9 g; c! A6 f! S
    2 o/ ?. i3 ?( f( E& X  _
    升级步骤:6 ^4 f. k( a( L3 V4 u
    1.下载到的更新包中主要用到以下几个替换掉旧版本的:) P+ }& M7 d; P7 b7 n
    commons-lang3-3.1.jar (保留原有的commons-lang.jar,因为升级后,org.apache.commons.lang.StringUtils类被 org.apache.commons.lang3.StringUtils替换了,所有要保留原有包)
    7 Y# K- h2 M% x5 p; [javassist-3.4.GA.jar (新加包)2 A' t2 M0 x0 W6 J% ?* n# e. X
    ognl-3.0.6.jar (替换旧版本)
    5 f1 h  K0 V  Z  l. kstruts2-core-2.3.15.1.jar (替换旧版本)
    5 {/ T$ W5 H7 l: _1 H- b6 a9 a$ oxwork-core-2.3.15.1.jar (替换旧版本)
    7 T: N, x! @7 H5 N" A: W1 g4 w- dstruts2-spring-plugin-2.3.15.1.jar(替换旧版本)

    2 B7 z/ U  W: S3 B2.如果原有spring包版本太低,如2.0,还需要升级spring包到2.5版本。
    & m( {* N: y% M$ Tstruts2.1以下版本,需要检查struts的xml配置文件,type="redirect" 改为 type="redirectAction"。
    . D1 i$ y) O4 v+ C
    3.修改 web.xml文件
      ]. [& |% Q: V2 J8 N( S4 d  v# S! t& U: w. z) M
    + E1 ]+ r; t" Y2 y  Q
    struts-cleanup$ i; [0 y  Y3 v! r
    org.apache.struts2.dispatcher.ActionContextCleanUp
    ! K5 y; J0 u" }, E: l$ ^$ B* h
    3 [$ F5 i/ ]% @/ g  \. F/ o; x( L5 Z* t& Q, h
    struts-cleanup2 U- s  z% y) I9 m  h( Q% S: `) T* k
    1 k9 G8 [2 E4 y/ }1 ~0 ^4 ^
    public class SqlFilter implements Filter {, P+ _$ p% }& l0 C
    public static final Logger logger = Logger.getLogger(sun.reflect.Reflection.getCallerClass(1));
    ) f: |' o2 k5 c# u) I; n//需要过滤的post字符
    - y+ ^3 y! y$ E  K+ n( ^private static String sqlStr="',<,>,and,exec,insert,select, ,delete,update,count,*,%,chr,mid,master,truncate,char,like,declare,&,#,(,),,=,script,
    % d  r: P$ i7 y* t8 R" @7 C/ X8 U

    科帮网 1、本主题所有言论和图片纯属会员个人意见,与本社区立场无关
    2、本站所有主题由该帖子作者发表,该帖子作者与科帮网享有帖子相关版权
    3、其他单位或个人使用、转载或引用本文时必须同时征得该帖子作者和科帮网的同意
    4、帖子作者须承担一切因本文发表而直接或间接导致的民事或刑事法律责任
    5、本帖部分内容转载自其它媒体,但并不代表本站赞同其观点和对其真实性负责
    6、如本帖侵犯到任何版权问题,请立即告知本站,本站将及时予与删除并致以最深的歉意
    7、科帮网管理员和版主有权不事先通知发贴者而删除本文


    JAVA爱好者①群:JAVA爱好者① JAVA爱好者②群:JAVA爱好者② JAVA爱好者③ : JAVA爱好者③

    快速回复
    您需要登录后才可以回帖 登录 | 立即注册

       

    关闭

    站长推荐上一条 /1 下一条

    发布主题 快速回复 返回列表 联系我们 官方QQ群 科帮网手机客户端
    快速回复 返回顶部 返回列表