如何永久解决Apache Struts文件上传漏洞

Apache Struts又双叒叕爆文件上传漏洞了。

自Apache Struts框架发布以来,就存在多个版本的漏洞,其中一些漏洞涉及到文件上传功能。这些漏洞可能允许攻击者通过构造特定的请求来绕过安全限制,从而上传恶意文件。虽然每次官方都发布补丁进行修复,但是问题一直没有根除过,时不时的又爆出新的漏洞。

那么有没有办法杜绝Apache Struts文件上传漏洞呢?

依靠Apache Struts自身肯定是不行的,毕竟官方也不知道什么时候爆出新的漏洞。

所谓文件上传漏洞,是指绕过系统安全限制,非法上传恶意文件。哪如果让黑客不能上传恶意文件,或是让上传的恶意文件不能被执行,不就解决问题了吗?

思路有了,接下来就是如何实现拦截功能。要阻止黑客上传恶意文件,可以使用杀毒软件和防篡改功能来解决。杀毒软件不说了,没有一家杀毒公司敢保证100%的拦截效果,只能作为辅助手段。那就只剩下防篡改功能了。

但新的问题又来了,恶意文件有两种,一种是破坏操作系统的可执行文件,一种是破坏网站的网页木马。对于破坏操作系统的可执行文件,总不至于对全操作系统做防篡改保护吧,这样操作系统将立刻蓝屏。幸运的是,可以使用《护卫神.防入侵系统》的"进程防护"来解决这个问题。"进程防护"模块用于对软件做防护,可以限制软件的网络通信范围和文件访问范围。设置以后,软件只能按照预定规则访问文件和网络,没有任何办法越权,轻松搞定非法提权。

Apache Struts一般和Tomcat集成使用,接下来我们以Tomcat为防护对象,通过《护卫神.防入侵系统》,手把手演示如何一劳永逸的解决Apache Struts文件上传漏洞。

防护思路如下:

1、 设置Tomcat对jsp文件和可执行文件只有读取权限(阻止上传非法文件)

2、 设置Tomcat只对网站目录和日志目录有写权限(保障网站正常访问)

3、 设置Tomcat不能执行任何文件(禁止执行高危命令,例如cmd.exe、net.exe)

注意:虽然本文以Windows为例,但对Linux系统也适用,只是设置方法大同小异,详情请咨询护卫神客服!

第一步:添加Tomcat防护对象

(图一:添加Tomcat防护)

第二步:在"文件访问"选项卡,添加如下文件访问规则

复制代码
温馨提示:护卫神.防入侵系统按优化级顺序逐条匹配访问路径规则,匹配到禁止操作就跳出。优先级数字越小,越优先执行!

|---------|--------------------------------------------------|--------------------------|
| 优先级 | 访问路径 | 操作限制 |
| 1 | *\conhost.exe | 禁止新建、禁止改名、禁止修改、禁止删除 |
| 1 | *\werfault.exe | 禁止新建、禁止改名、禁止修改、禁止删除 |
| 10 | *.jsp | 禁止执行、禁止新建、禁止改名、禁止修改、禁止删除 |
| 10 | *.exe | 禁止执行、禁止新建、禁止改名、禁止修改、禁止删除 |
| 20 | d:\wwwroot\* | 禁止执行 |
| 20 | c:\hws.com\hwsjspmaster\tomcat9\* | 禁止执行 |
| 20 | c:\windows\temp\* | 禁止执行 |
| 20 | c:\windows\syswow64\config\systemprofile\* | 禁止执行 |
| 20 | c:\programdata\microsoft\* | 禁止执行 |
| 99 | * | 禁止执行、禁止新建、禁止改名、禁止修改、禁止删除 |

添加结果如下图:

(图二:Tomcat进程防护规则)

文件访问规则解释:

优先级为"1"的规则:

最先执行的规则,这2个是Windows启动Tomcat产生的配套进程。

只允许读取和执行,防止黑客创建同名文件绕过防护。

优先级为"10"的规则:

设置禁止写操作的文件类型。.jsp是网页木马,.exe是可执行文件。同样还可以添加其他类型,例如:.do、.dll、.vbs等等。

只允许读取,防止黑客上传此类恶意文件。

优先级为"20"的规则:

设置允许写操作的目录。一般填写网站目录、Tomcat安装目录、系统临时目录。

允许读取和写操作,禁止执行。

优先级为"99"的规则:

设置其他文件的访问规则。填写"*",表示所有文件。

只允许读取,禁止黑客写操作任何文件,或执行高危命令(cmd.exe、net.exe)。

第三步:检查拦截效果

设置好防护规则后,黑客再想通过Apache Struts上传网页木马、恶意病毒,或执行高危命令(cmd.exe、net.exe)就成为不可能了,都会被护卫神拦截,轻松搞定Apache Struts文件上传漏洞。即使后期再次爆出此种漏洞,也不用担心,护卫神会一如既往的守护服务器安全!拦截效果如下图:

(图七:拦截非法执行cmd.exe提权)

(图八:拦截上传可执行文件)

(图八:拦截上传JSP文件)

原文: 如何一劳永逸解决Apache Struts文件上传漏洞

相关推荐
橘猫云计算机设计1 小时前
基于Springboot的自习室预约系统的设计与实现(源码+lw+部署文档+讲解),源码可白嫖!
java·spring boot·后端·毕业设计
秋书一叶2 小时前
SpringBoot项目打包为window安装包
java·spring boot·后端
碎梦归途2 小时前
23种设计模式-结构型模式之外观模式(Java版本)
java·开发语言·jvm·设计模式·intellij-idea·外观模式
极客先躯2 小时前
高级java每日一道面试题-2025年4月13日-微服务篇[Nacos篇]-Nacos如何处理网络分区情况下的服务可用性问题?
java·服务器·网络·微服务·nacos·高级面试
pwzs2 小时前
Spring MVC 执行流程全解析:从请求到响应的七步走
java·后端·spring·spring mvc
我该如何取个名字3 小时前
Mac配置Java的环境变量
java·开发语言·macos
kkkkatoq3 小时前
Java中的锁
java·开发语言
界面开发小八哥4 小时前
「Java EE开发指南」用MyEclipse开发EJB 3无状态会话Bean(二)
java·ide·java-ee·eclipse·myeclipse
LCY1334 小时前
spring security +kotlin 实现oauth2.0 认证
java·spring·kotlin
soulermax4 小时前
数字ic后端设计从入门到精通2(含fusion compiler, tcl教学)
java·linux·服务器