博客
关于我
更新struts2到2.3.32
阅读量:553 次
发布时间:2019-03-09

本文共 1070 字,大约阅读时间需要 3 分钟。

_struts2远程代码执行漏洞严重,影响广泛,需及时修复

近日,Struts2框架曝出重大远程代码执行漏洞,官方确认多个版本均存在该问题。本文详细分析影响范围及应对措施,帮助开发者快速解决问题。

1.漏洞基本情况

  • 漏洞编号: S2-045
  • CVE编号: CVE-2017-5638
  • 漏洞级别: 高危
  • 影响范围:
    • Struts2.3.5至2.3.31
    • Struts2.5至2.5.10

2.漏洞影响

该漏洞允许攻击者通过特定请求执行远程代码,直接获取服务器控制权。因此,当前使用上述版本的项目必须立即更新。

3.解决方案

  • 升级框架版本:

    • Struts2.3.32
    • Struts2.5.11
  • 更新相关jar包:

    • 核心组件:
      • xwork-core-2.3.32.jar
      • struts2-core-2.3.32.jar
    • 依赖插件:
      • struts2-json-plugin-2.3.32.jar
      • struts2-spring-plugin-2.3.32.jar
      • ognl-3.0.19.jar
      • javassist-3.11.0.GA.jar
    • 模板引擎:
      • freemarker-2.3.22.jar
  • 清理旧配置:

    • 移除不必要的Tiles配置文件:
      • 检查项目是否需要 tiles-common.xml、tiles-auth.xml 等文件
      • 如无需,建议从web.xml中删除相应DEFINIITIONS_CONFIG参数
  • 验证依赖:

    • 检查错误日志:
      -如在转换为struts2-tiles-plugin-2.3.32.jar时出现异常,部署至容器前需确保所有必要文件已正确部署

4.注意事项

  • 防用建议:
    -避免在生产环境中使用普通用户权限,防止被利用漏洞入侵
    -定期备份关键数据,应对突发情况

5.预防措施

  • 设置Web应用 Firewall:

    -利用工具如ModSecurity防护异常请求,防止恶意攻击

  • 启用 CSRF防护:

    -确保Struts配置中启用CSRF防护,减少跨站脚本攻击风险

6.代替方案

  • 切换框架:
    如果无法修复,可以考虑采用其他支持 Injection的框架,以规避潜在风险。

7.资源参考

  • 修复文档:

    https://struts.apache.org/
    /wiki/Struts2%20Documentation

  • 社区支持:

    https://www.apache discussion forums

通过以上步骤,开发者可以有效应对Struts2漏洞,保障项目安全运行。定期检查系统更新,及时修复类似问题,是维护安全的基础措施。

转载地址:http://urhiz.baihongyu.com/

你可能感兴趣的文章
Oracle闪回技术(Flashback)
查看>>
oracle零碎要点---ip地址问题,服务问题,系统默认密码问题
查看>>
oracle零碎要点---oracle em的web访问地址忘了
查看>>
Oracle零碎要点---多表联合查询,收集数据库基本资料
查看>>
Oracle静默安装
查看>>
Oracle面试题:Oracle中truncate和delete的区别
查看>>
ThreadLocal线程内部存储类
查看>>
thinkphp 常用SQL执行语句总结
查看>>
Oracle:ORA-00911: 无效字符
查看>>
Text-to-Image with Diffusion models的巅峰之作:深入解读 DALL·E 2
查看>>
TCP基本入门-简单认识一下什么是TCP
查看>>
tableviewcell 中使用autolayout自适应高度
查看>>
Orcale表被锁
查看>>
org.apache.ibatis.exceptions.TooManyResultsException: Expected one result (or null) to be returned
查看>>
org.apache.poi.hssf.util.Region
查看>>
org.apache.zookeeper.KeeperException$ConnectionLossException: KeeperErrorCode = ConnectionLoss for /
查看>>
org.hibernate.HibernateException: Unable to get the default Bean Validation factory
查看>>
org.hibernate.ObjectNotFoundException: No row with the given identifier exists:
查看>>
org.springframework.orm.hibernate3.support.OpenSessionInViewFilter
查看>>
org.springframework.orm.hibernate3.support.OpenSessionInViewFilter
查看>>