如何永久解决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文件上传漏洞

相关推荐
寻星探路9 小时前
【深度长文】万字攻克网络原理:从 HTTP 报文解构到 HTTPS 终极加密逻辑
java·开发语言·网络·python·http·ai·https
Binary-Jeff9 小时前
一文读懂 HTTPS 协议及其工作流程
网络协议·web安全·http·https
曹牧11 小时前
Spring Boot:如何测试Java Controller中的POST请求?
java·开发语言
爬山算法12 小时前
Hibernate(90)如何在故障注入测试中使用Hibernate?
java·后端·hibernate
七夜zippoe12 小时前
CANN Runtime任务描述序列化与持久化源码深度解码
大数据·运维·服务器·cann
盟接之桥12 小时前
盟接之桥说制造:引流品 × 利润品,全球电商平台高效产品组合策略(供讨论)
大数据·linux·服务器·网络·人工智能·制造
kfyty72512 小时前
集成 spring-ai 2.x 实践中遇到的一些问题及解决方案
java·人工智能·spring-ai
猫头虎12 小时前
如何排查并解决项目启动时报错Error encountered while processing: java.io.IOException: closed 的问题
java·开发语言·jvm·spring boot·python·开源·maven
李少兄12 小时前
在 IntelliJ IDEA 中修改 Git 远程仓库地址
java·git·intellij-idea
忆~遂愿13 小时前
ops-cv 算子库深度解析:面向视觉任务的硬件优化与数据布局(NCHW/NHWC)策略
java·大数据·linux·人工智能