如何永久解决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防护

(图一:添加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文件上传漏洞

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/943058.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

回归预测 | MATLAB实现CNN-LSTM卷积长短期记忆神经网络多输入单输出回归预测

回归预测 | MATLAB实现CNN-LSTM卷积长短期记忆神经网络多输入单输出回归预测 目录 回归预测 | MATLAB实现CNN-LSTM卷积长短期记忆神经网络多输入单输出回归预测预测效果基本介绍程序设计参考资料 预测效果 基本介绍 MATLAB实现CNN-LSTM卷积长短期记忆神经网络多输入单输出回归…

LeetCode - Google 校招100题 第5天 双指针(Two Pointers) (11题)

欢迎关注我的CSDN:https://spike.blog.csdn.net/ 本文地址:https://spike.blog.csdn.net/article/details/144742777 LeetCode 合计最常见的 112 题: 校招100题 第1天 链表(List) (19题)校招100题 第2天 树(Tree) (21题)校招100题 第3天 动态规划(DP) (20题)

【无人机】无人机测绘路径优化策略与实践:探索高效、精准的测绘技术路径

🍑个人主页:Jupiter. 🚀 所属专栏:传知代码 欢迎大家点赞收藏评论😊 目录 一、背景介绍二、算法原理(一)算法模型构建(二)算法求解流程 三、代码实现(一&…

Anaconda搭建Python虚拟环境并在Pycharm中配置(小白也能懂)

为什么要搭建虚拟环境? 搭建虚拟环境的主要目的是为了解决多个Python项目之间可能存在的库冲突问题。当你在同一台计算机上运行多个Python项目时,不同的项目可能会依赖于不同版本的库或者相同版本的库的不同补丁。如果所有项目都共享相同的Python环境&am…

mac_录屏

参考: mac m1上系统内录方法BlackHole代替soundflower录音(附安装包) https://blog.csdn.net/boildoctor/article/details/122765119录屏后没声音?这应该是 Mac(苹果电脑) 内录声音最优雅的解决方案了 https://www.bilibili.com/…

upload-labs关卡记录13

这里和关卡12非常类似,唯一不同就是12关用到get方法,这里用到post方法。因此对应的截断方式也不一样,依旧是使用我们的bp进行抓包, 然后依旧是在upload后加上shell.php,这里用是为了hex时好区别我们要在哪里更改&#…

网络管理-期末项目(附源码)

环境:网络管理 主机资源监控系统项目搭建 (保姆级教程 建议点赞 收藏)_搭建网络版信息管理系统-CSDN博客 效果图 下面3个文件的项目目录(python3.8.8的虚拟环境) D:\py_siqintu\myproject5\Scripts\mytest.py D:\py_siqintu\myproject5\Sc…

通过GRE协议组建VPN网络

GRE(Generic Routing Encapsulation,通用路由封装协议)协议是一种简单而有效的封装协议,它在网络中的广泛应用,比如在构建VPN网络。   GRE是一种封装协议,它允许网络层协议(如IP)的…

kafka的备份策略:从备份到恢复

文章目录 一、全量备份二、增量备份三、全量恢复四、增量恢复 前言:Kafka的备份的单元是partition,也就是每个partition都都会有leader partiton和follow partiton。其中leader partition是用来进行和producer进行写交互,follow从leader副本进…

CHM助手 >> 如何安装CHM助手

1 如何安装CHM助手 下载CHM助手.ezip,下载地址打开EverEdit,选择主菜单“扩展 -> 扩展管理 -> 从本地文件安装扩展”,在弹出的文件浏览窗口中选择插件安装包,如下图所示: 🕮说明:   …

vulnhub靶场【shuriken】之node

前言 靶机:shuriken-node,ip地址192.168.1.127 攻击:kali,ip地址192.168.1.16 主机发现 使用arp-scan -l或者netdiscover -r 192.168.1.1/24扫描 信息收集 使用nmap扫描端口 网站信息探测 访问8080端口网站,可以…

数据仓库工具箱—读书笔记02(Kimball维度建模技术概述04、使用一致性维度集成)

Kimball维度建模技术概述 记录一下读《数据仓库工具箱》时的思考,摘录一些书中关于维度建模比较重要的思想与大家分享🤣🤣🤣 第二章前言部分作者提到:技术的介绍应该通过涵盖各种行业的熟悉的用例展开(赞同…

[实战]推流服务SRS安装

业务场景 在Web浏览器端展示摄像头的视频数据。 协议 物联代理推流协议:rtmp 浏览器器拉流协议:http-flv 推流方案 1、Nginx加nginx-http-flv-modules模块 2、采用SRS服务器 推流服务SRS网站:https://ossrs.io/lts/zh-cn/ 推流服务…

PH热榜 | 2024-12-25

1. Assistive24 标语:为残障人士提供的免费辅助技术 介绍:Assistive24 是一款免费的 Chrome 浏览器扩展程序,可以帮助患有注意力缺陷多动障碍 (ADHD)、阅读障碍 (dyslexia) 和低视力等障碍的用户更方便地浏览网页。它提供语音导航、自定义…

Java中三大构建工具的发展历程(Ant、Maven和Gradle)

🐸 背景 我们要写一个Java程序,一般的步骤是编译,测试,打包。 这个构建的过程,如果文件比较少,我们可以手动使用java, javac,jar命令去做这些事情。但当工程越来越大,文件越来越多&#xff0c…

自学记录HarmonyOS Next DRM API 13:构建安全的数字内容保护系统

在完成了HarmonyOS Camera API的开发之后,我开始关注更复杂的系统级功能。在浏览HarmonyOS Next文档时,我发现了一个非常有趣的领域:数字版权管理(DRM)。最新的DRM API 13提供了强大的工具,用于保护数字内容…

Unity中如何修改Sprite的渲染网格

首先打开SpriteEditor 选择Custom OutLine,点击Genrate 则在图片边缘会出现边缘线,调整白色小方块可以调整边缘 调整后,Sprite就会按照调整后的网格渲染了。 如何在UI中使用? 只要在UI的Image组件中选择Use Sprite Mesh 即可 结果&#xff1…

跟着 8.6k Star 的开源数据库,搞 RAG!

过去 9 年里,HelloGitHub 月刊累计收录了 3000 多个开源项目。然而,随着项目数量的增加,不少用户反馈:“搜索功能不好用,找不到想要的项目!” 这让我意识到,仅仅收录项目是不够的,还…

Sashulin升级啦,开箱即用!

经过多年的不断投入,升级为了Sashulin基础软件系列,本系列包含: 1、Sashulin IDE 2025全域通用开发工具 通用型Java开发工具,并可以进行业务流可视化开发。 2、发布Sashulin Webserver 2025 将Html等网页文件发布成网站&#xf…

linux下搭建lamp环境(dvwa)

lamp简介 LAMP是指一组通常一起使用来运行动态网站或者服务器的自由软件名称首字母缩写: Linux,操作系统 Apache,网页服务器 MariaDB或MySQL,数据库管理系统或数据库服务器 PHP、Perl或Python,脚本语言 # ubuntu安装…