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

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

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

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

工具目录

分类

查看所有分类
Loading categories
CVE-2017-5638 — 此脚本旨在验证Apache Struts 2漏洞(CVE-2017-5638),又名Struts-Shock。 | Kitploit
工具/GitHubGitHub/readloud/cve-2017-5638
漏洞扫描器Payload生成漏洞利用Web应用程序漏洞利用渗透测试学习与教育
GitHubreadloud/cve-2017-5638

CVE-2017-5638

此脚本旨在验证Apache Struts 2漏洞(CVE-2017-5638),又名Struts-Shock。

查看仓库
14年前尚未审核

最受欢迎

查看全部 →

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

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

CVE-2017-5638

该脚本用于验证 Apache Struts 2 漏洞(CVE-2017-5638),又名 Struts-Shock。它完全无害,因为它不会注入任何恶意负载,仅注入一个名为 'STRUTS2-VALIDATION' 的 HTTP 请求头,以便能够验证目标是否易受攻击。

由于其多线程能力,它能够在不到 10 分钟内运行遍布全球的 2500 多个应用程序。因此,它在验证大型企业应用程序时非常方便。

cve-2017-5638

cve-2017-5638 易受攻击站点示例

该项目旨在展示 CVE-2017-5638 的利用方式,仅供教育目的。 更多信息,请参见 https://cwiki.apache.org/confluence/display/WW/S2-045

法律免责声明

本项目仅供教育和道德测试目的。未经双方事先同意攻击目标是违法的。最终用户有责任遵守所有适用的地方、州和联邦法律。开发者不承担任何责任,也不对因使用本程序而造成的任何滥用或损害负责。

开始使用

  1. 启动 Docker 容器:

docker run -d -p 8080:8080 jrrdev/cve-2017-5638:latest

  1. 在攻击者机器上下载利用脚本 点击这里

  2. 在攻击者机器上运行 Python 利用脚本:

python exploit.py http://<DOCKER_HOST>:8080/hello "ls -l"

使用说明

运行此脚本有两种方式:使用线程和不使用线程,唯一的区别是执行时间。要启用线程功能,只需传递 thread 参数。 第一个参数必须是一个 TXT 文件,包含所有目标 URL,每行一个。请注意,这些 URL 应该是完整的,例如 https://target.com/admin/myStrutsPage.action

以下是不使用线程的用法示例:

root@kitploit:~
struts-shock-validation.py target_urls.txt

现在使用线程功能:

root@kitploit:~
struts-shock-validation.py target_urls.txt thread

CVE-2017-5638

http://struts.apache.org/docs/s2-016.html https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017

Metasploit 框架利用模块,用于 Apache Struts Content-Type 利用 尚未在 Windows 服务器上测试,但在 Linux 服务器上使用 generic/shell_bind_tcp 负载进行了测试

CVE-2017-5638 PoC 代码(Python) | DORK: ext:action

CVE-2017-5638 的 PoC 代码示例 | Apache Struts 利用 | DORK: ext:action

用法:python struts.py https://victim.site dir

最初发布的 Python 脚本没有正确格式化 Content-Type 请求头。 我重新编写了 Content-Type 请求头,使其正确格式化为 Content-Type:%20{Exploit}。 我还添加了日志记录和 Requests 模块,然后将对象属性转储到标准输出。

示例输出

由 XSS.Cx 检查 CVE-2017-5638

D 盘中的卷没有标签。 卷序列号为 2A7B-A245 d:\Program Files\Apache Software Foundation\Tomcat 9.0 的目录

CVE-2017-5638

目录

  1. 概述
  2. 依赖项
  3. 使用方法

概述

本项目是 Apache Struts 漏洞的概念验证。 目标是创建一个软件,能够生成并测试随机 IP 地址是否存在上述漏洞。

请自行承担使用风险,且仅供教育目的。

依赖项

  • cURL

    • cURL 用于将精心构造的请求头发送到特定 IP 地址的特定端口。
  • Nmap

    • Nmap 用于生成包含开放端口 80 或 443 的随机 IP 地址。

使用方法

生成随机 IP 并将其保存到文本文件。

root@kitploit:~
./get_ip.sh [要扫描的主机数] [要扫描的端口] [输出文件名]
root@kitploit:~
./get_ip.sh 10000 80 output.txt

检查特定 IP 地址是否存在漏洞。

root@kitploit:~
./struts_check.sh [IP 地址] [端口]
root@kitploit:~
./struts_check.sh 127.0.0.1 80

检查 IP 地址列表是否存在漏洞。

root@kitploit:~
./main.sh [包含 IP 地址的文本文件] [端口]
root@kitploit:~
./main.sh output.txt 443

在没有 Apache Struts 漏洞补丁的服务器上执行命令

root@kitploit:~
./struts_attack.sh [IP 地址] [命令]
root@kitploit:~
./struts_attack.sh https://127.0.0.1 whoami

# CVE-2017-5638 PoC 代码(Python) | DORK: ext:action
CVE-2017-5638 的 PoC 代码示例 | Apache Struts 利用 | DORK: ext:action

用法:python struts.py https://victim.site dir

最初发布的 Python 脚本没有正确格式化 Content-Type 请求头。
我重新编写了 Content-Type 请求头,使其正确格式化为 Content-Type:%20{Exploit}。
我还添加了日志记录和 Requests 模块,然后将对象属性转储到标准输出。

示例输出

由 XSS.Cx 检查 CVE-2017-5638

D 盘中的卷没有标签。
卷序列号为 2A7B-A245
d:\Program Files\Apache Software Foundation\Tomcat 9.0 的目录

## 结果
它会自动创建一个名为 results 的文件夹,每次执行时会创建一个带日期的文件夹,其中包含执行结果。如果启用了线程,则会为每个线程创建一个名为 thread_<number> 的文件,这些文件可以忽略,因为完成时它会将所有线程的结果合并到一个与执行文件夹同名的 TXT 文件(日期/时间戳)中。
下载工具