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

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

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

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

工具目录

分类

查看所有分类
Loading categories
struts2-rce — Exploitable target to CVE-2017-5638 | Kitploit
工具/GitHubGitHub/sonatype-workshops/struts2-rce
Container SecurityVulnerability AnalysisExploitationWeb Application ExploitationLearning & EducationLabs & Practice
GitHubsonatype-workshops/struts2-rce

struts2-rce

Exploitable target to CVE-2017-5638

查看仓库
4年前尚未审核

最受欢迎

查看全部 →

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

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

CVE-2017-5638 漏洞利用演示

完全基于 https://github.com/piesecurity/apache-struts2-CVE-2017-5638

一个真实场景:将某个框架的参考项目部署到容器中,却引发了严重后果。请查看代码并编译以熟悉它。同时检查 Dockerfile——是否有任何特定内容引起了我们的注意?

展示了日常决策和多个漏洞如何轻易地被串联利用。

使用方法:

前提条件:

  1. 已安装 JDK,
  2. 已安装 Docker,Docker Desktop for Mac 或 Win
  3. 最好已安装 Python(可用 Jython 替代)

准备步骤:

  1. 克隆此仓库
  2. 在项目根目录下运行 ./mvnw clean package
  3. 运行 docker build -t hackme \.
  4. 运行 docker run -d -p 9080:8080 hackme
  5. 容器启动后,在浏览器中访问 http://localhost:9080 验证

注意:如果未安装 Docker,可以运行 ./mvnw jetty:run

开始测试 RCE —— 运行 exploit.py 文件:

  • 运行 python exploit.py http://localhost:9080/orders/3 "CMD"
  • 如果没有 Python,请使用 Jython Standalone 并
    运行 java -jar jython*.jar exploit.py http://localhost:9080/orders/3 "CMD"

尝试不同的 CMD,例如:

  • pwd —— 我们在哪里?
  • whoami —— 我们以什么用户身份运行?
  • ls -la —— 我的目录里有什么?
  • ls / —— 我的机器上有什么
  • ls /etc —— 还能找到什么?

如何修复!

使用 Nexus Lifecycle 组件信息面板 找出 struts2-core 的无漏洞版本。将 POM 更新到该版本并重新构建。你也可以重新构建 Docker 镜像并运行,再次尝试攻击。

另外,查看此仓库的 Issues 中的 DepShield 发现

原始自述文件

https://github.com/apache/struts/tree/master/apps/rest-showcase

root@kitploit:~
README.txt - Rest Showcase Webapp

Rest Showcase is a simple example of REST app build with the REST plugin.

For more on getting started with Struts, see 

* http://cwiki.apache.org/WW/home.html

I18N:
=====
Please note that this project was created with the assumption that it will be run
in an environment where the default locale is set to English. This means that
the default messages defined in package.properties are in English. If the default
locale for your server is different, then rename package.properties to package_en.properties
and create a new package.properties with proper values for your default locale.
下载工具