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

news/2024/12/25 9:11:00/

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防护

(图一:添加Tomcat防护)

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

温馨提示:护卫神.防入侵系统按优化级顺序逐条匹配访问路径规则,匹配到禁止操作就跳出。优先级数字越小,越优先执行!
优先级访问路径操作限制
1*\conhost.exe禁止新建、禁止改名、禁止修改、禁止删除
1*\werfault.exe禁止新建、禁止改名、禁止修改、禁止删除
10*.jsp禁止执行、禁止新建、禁止改名、禁止修改、禁止删除
10*.exe禁止执行、禁止新建、禁止改名、禁止修改、禁止删除
20d:\wwwroot\*禁止执行
20c:\hws.com\hwsjspmaster\tomcat9\*禁止执行
20c:\windows\temp\*禁止执行
20c:\windows\syswow64\config\systemprofile\*禁止执行
20c:\programdata\microsoft\*禁止执行
99*禁止执行、禁止新建、禁止改名、禁止修改、禁止删除

添加结果如下图:

Tomcat进程防护规则

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

文件访问规则解释:

优先级为“1”的规则:

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

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

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提权

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

拦截上传可执行文件

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

拦截上传JSP文件

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

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


http://www.ppmy.cn/news/1557954.html

相关文章

广州大学计算机组成原理课程设计

一.课设性质,目的,任务 《计算机组成与系统结构课程设计》是计算机学院各专业集中实践性环节之一,是学习完《计算机组成与系统结构》课程后进行的一次全面的综合练习。其目的是综合运用所学计算机原理知识,设计并实现一台模型计算…

Vue.js前端框架教程14:Vue组件el-popover

文章目录 el-popover 组件基础用法嵌套信息手动控制显示状态自定义挂载节点触发事件el-popover 组件 el-popover 是 Element UI 库中的一个弹出框组件,它用于在用户交互时显示额外的信息或操作。以下是 el-popover 组件的一些基本用法: 基础用法 el-popover 可以通过不同的…

ensp 关于acl的运用和讲解

ACL(Access Control List,访问控制列表)是一种常用于网络设备(如路由器、交换机)上的安全机制,用于控制数据包的流动与访问权限。ACL 可以指定哪些数据包允许进入或离开某个网络接口,基于不同的…

Java项目--仿RabbitMQ的消息队列--基于MQ的生产者消费者模型

目录 一、引言 二、生产者 三、消费者 四、扩展 五、总结 一、引言 本篇文章就是本次Java项目的最后一篇文章了,本篇文章主要介绍基于MQ的生产者消费者模型的代码编写 二、生产者 public class DemoConsumer {public static void main(String[] args) throws…

物联网网络中的设备认证方法

论文标题:DEVICE AUTHENTICATION METHOD IN INTERNET OF THINGS NETWORKS(物联网网络中的设备认证方法) 作者信息: A.Ya. Davletova,West Ukrainian National University, 11, Lvivska Str. Ternopil, 46009, Ukraine…

C# WPF开发

WPF基础 WPF开发主要学习使用控件来布局,利用各种样式包装丰富控件,然后通过使用模板来达到预期的布局显示效果,还可以使用常见的MVVM框架来实现前后端互联。 布局: 主要掌握常用的布局方式,Grid,StackPanel、WrapPanel.根据内容分割行列、…

UDP基本了解

UDP基本了解 TCP、UDP区别 TCP(Transfer Control Protocol) UDP(User Datagram Protocol ) 连接:TCP是面向连接的传输协议,传输数据前需要先建立连接。而UDP不需要连接,即刻传输数据 服务对象…

第20天:JS信息收集-Web应用JS架构URL提取数据匹配Fuzz接口WebPack分析自动化

#知识点 1、信息收集-Web应用-JS提取分析-人工&插件*项目 2、信息收集-Web应用-JS提取分析-URL&配置&逻辑 标签 名称 地址 FUZZ测试 ffuf GitHub - ffuf/ffuf: Fast web fuzzer written in Go 匹配插件(bp) Hae GitHub - gh0stkey/HaE: HaE - H…