当前位置: 首页 > wzjs >正文

金坛区住房城乡建设局网站环球网

金坛区住房城乡建设局网站,环球网,wordpress 时间轴页面,浙江省建设厅信息港官网0x01:漏洞简介 Apache Struts 是美国 Apache 基金会的一个开源项目,是一套用于创建企业级 Java Web 应用的开源 MVC 框架(将软件分为模型(Model)、视图(View)和控制器(Controller&a…

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 应用的监控和日志记录,重点监测路径穿越和文件上传相关流量。

http://www.dtcms.com/wzjs/467037.html

相关文章:

  • 网页设计与网站建设完全教程seo和sem分别是什么
  • 做快递单网站关键词排名怎么做上首页
  • 安徽住房与城乡建设门户网站如何推广一个产品
  • 鹿泉手机网站建设深圳网站建设优化
  • 网站建设1選宙斯站长免费网站怎么申请
  • 中国建设大数据黑帽seo培训
  • 吴江建设局网站打不开了郑州疫情最新动态
  • 以前有个自助建设网站万能软文范例800字
  • 广州 网站建设网络推广网页设计哈尔滨最新消息
  • 绵阳公司商务网站制作广州seo怎么做
  • 网站建设与管理设计页面seo优化
  • 找专业做网站方象科技专注于什么领域
  • 做律师网站的公司一键优化大师
  • hbuilderseo人员培训
  • 近期国内新闻摘抄长沙网站seo优化
  • 宜宾网站优化新人跑业务怎么找客户
  • 新网站建设代理商站长工具怎么关闭
  • 观点网站自媒体135网站
  • 平面设计图效果图湖南长沙seo教育
  • 免费的网站推荐下载深圳网站制作设计
  • 中国住建厅网站官网哪里有学计算机培训班
  • 视频网站如何做营销策划免费模式营销案例
  • 网站怎么做交易百度搜索智能精选入口
  • 营销型网站的好处字节跳动广告代理商加盟
  • 贵港公司做网站免费制作网站app
  • 男男sm怎么做视频网站关键词数据分析工具有哪些
  • 贺州住房和城乡建设部网站软件外包公司是什么意思
  • 苏州区建设局网站首页刷关键词的平台
  • 陕西高端建设网站摘抄一小段新闻
  • 做网站用什么程序全网关键词云在哪里看