一、确定Struts版本
1、定位根路径:先找到Struts应用的根路径,D:apache-tomcat-7.0.103webappsstruts2-showcase
。
2、查找版本信息:在root_dirWEB-INFlibstruts2-core-x.x.x.jar
中查找版本号,Struts版本为2.3.37
。
二、下载新版Struts库并校验SHA256
1、下载新版库文件:根据当前版本选择合适的更新包,2.3以下版本的用户请下载2.3.37
或以上的包,2.5以上版本的用户请下载2.5.22
或以上的包,下载链接如下:
2.3.37版本:[https://archive.apache.org/dist/struts/2.3.37/struts-2.3.37-min-lib.zip](https://archive.apache.org/dist/struts/2.3.37/struts-2.3.37-min-lib.zip)
2.5.22版本:[https://archive.apache.org/dist/struts/2.5.22/struts-2.5.22-min-lib.zip](https://archive.apache.org/dist/struts/2.5.22/struts-2.5.22-min-lib.zip)
2、校验文件完整性:使用命令行工具校验下载文件的SHA256值,确保文件未被篡改,Windows系统下可以使用以下命令:
certutil -hashfile D:sainstruts-2.3.37.min-lib.zip SHA256
如果得到的SHA256值与官方提供的一致,则说明文件正确。
三、备份旧版Struts库
1、备份目录:将root_dirWEB-INFlib
目录下的所有文件进行备份,以防升级过程中出现问题可以恢复。
四、删除旧版Struts库
1、删除旧文件:删除root_dirWEB-INFlib
目录下的旧版struts2-core-x.x.x.jar
文件。
五、替换新版Struts库
1、添加新文件:将下载并校验过的新版Struts库文件放入root_dirWEB-INFlib
目录中。
六、验证修复结果
1、重新启动服务器:完成替换后,重新启动Tomcat服务器。
2、验证修复:通过扫描工具如Struts2-Scan再次扫描,确认漏洞已经修复。
其他修复方法
除了上述常规方法外,还有一些临时解决方案和修改源码的方法,但通常不推荐:
1、临时处理方法:修改struts2组件中的default.properties
文件,将struts.multipart.parser
的值由jakarta
更改为pell
。
2、过滤Content-Type:通过WAF等过滤方式对Content-Type
中的关键字进行过滤,防止非法注入。
通过上述步骤可以有效地修复Apache Struts的远程代码执行漏洞,提高系统的安全性。
到此,以上就是小编对于struts 漏洞修复的问题就介绍到这了,希望介绍的几点解答对大家有用,有任何问题和不懂的,欢迎各位朋友在评论区讨论,给我留言。
本文来源于互联网,如若侵权,请联系管理员删除,本文链接:https://www.9969.net/88698.html