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

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

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

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

工具目录

分类

查看所有分类
Loading categories
CVE-2025-34096 — Easy File Sharing Web Server 7.2 中基于 SEH 的缓冲区溢出漏洞,可通过密码恢复端点触发。 | Kitploit
工具/GitHubGitHub/themalwareguardian/cve-2025-34096
漏洞分析漏洞利用逆向工程ShellcodeWeb应用程序漏洞利用渗透测试学习与教育Payload 开发二进制利用
GitHubthemalwareguardian/cve-2025-34096

CVE-2025-34096

Easy File Sharing Web Server 7.2 中基于 SEH 的缓冲区溢出漏洞,可通过密码恢复端点触发。

35个月前尚未审核

最受欢迎

查看全部 →

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

探索所有工具

浏览我们的工具集合

查看所有工具 →
查看仓库
分享

🐞 CVE-2025-34096:Easy File Sharing Web Server 7.2 - 基于栈的缓冲区溢出(SEH)

Easy File Sharing Web Server 7.2 中存在基于 SEH 的缓冲区溢出,可通过密码恢复端点触发。




📑 目录

  • 为什么存在此仓库
  • 为什么此漏洞值得关注
  • 背景与受影响软件
  • 关于此漏洞
  • 触发崩溃
  • 漏洞利用



🎓 为什么存在此仓库

本仓库是我在教授漏洞研究与漏洞利用开发时所用教学材料的一部分,特别是用于介绍 SEH(结构化异常处理器)溢出和 ROP(返回导向编程)链概念时的材料。

它与我的演讲 "通往你第一个 CVE 的道路" 相关。在那次演讲中,我解释了漏洞研究有不同的切入点,而研究遗留软件中已公开记录的 CVE 是初学者最容易上手的路径之一。

之所以选择这个 CVE,是因为它展示了一个完整且真实的漏洞利用场景:

  • 攻击目标是一款公开可用的 Windows 应用程序。
  • 崩溃并非简单的 EIP 覆写,而是涉及 SEH 覆写和栈迁移。
  • 易受攻击的端点无需身份验证,使其成为真正的未认证远程代码执行原语。
  • 该利用代码还可选择性地扩展 ROP 链以绕过 DEP/NX,展示同一个 SEH 溢出如何适应加固程度更高的环境。

本仓库的目标是将此案例作为一块垫脚石,连接入门级缓冲区溢出练习与更高级的漏洞利用开发概念。




💡 为什么此漏洞值得关注

该漏洞影响 Easy File Sharing Web Server 7.2,这是一款广泛用于简单文件共享的轻量级 Windows Web 服务器应用程序。该软件在编写时并未考虑现代安全缓解措施。从教学角度来看,这一案例之所以特别有趣,在于其中多种因素的结合:

  • 易受攻击的端点是 POST 请求,使用标准 HTTP 工具即可轻松复现。
  • /sendemail.ghp 端点属于该应用邮件通知功能的一部分,任何远程攻击者都无需凭据即可访问。与需要事先获得访问权限的漏洞相比,这代表了影响更大的攻击场景。
  • 该溢出基于 SEH,意味着崩溃不会直接覆写返回地址,而是破坏栈上存储的结构化异常处理器(SEH)链,因此需要采用不同的利用技术。
  • DEP 绕过是可选的,也就是说,在禁用 DEP 的系统上,利用代码可以通过直接的 SEH + 短跳转 + shellcode 方式生效;但在启用 DEP 的系统上,则可以利用已加载模块中的 gadget 扩展出 ROP 链,通过调用 VirtualProtect 将 shellcode 所在区域标记为可执行,然后再转移控制权。

这种组合使 CVE-2025-34096 成为在真实未认证攻击场景中教授漏洞利用开发技术的绝佳案例。




🔍 背景与受影响软件

Easy File Sharing Web Server 7.2 是一款轻量级 Windows 应用程序,专为通过 HTTP 共享文件而设计。除基本的文件浏览和用户账户功能外,它还包含一个密码恢复功能,即允许用户输入邮箱地址以接收遗忘凭据的表单。

该表单通过 POST 请求将数据提交到 /sendemail.ghp。处理 Email 字段的处理器会将该值直接复制到固定大小的栈缓冲区中,且不进行任何长度检查。该端点无需身份验证,因此远程攻击者与易受攻击的代码路径之间毫无阻隔。

关键技术细节:

  • 漏洞类型:基于栈的缓冲区溢出(SEH 覆写)
  • 受影响版本:Easy File Sharing Web Server 7.2
  • 受影响端点:POST /sendemail.ghp
  • 易受攻击的参数:Email
  • 是否需要身份验证:否
  • 影响:未认证远程代码执行



⚠️ 关于此漏洞

作为其邮件通知功能的一部分,Easy File Sharing Web Server 会处理发往 /sendemail.ghp 的 HTTP POST 请求。该端点接受的 Email 参数会被复制到本地栈缓冲区中,且不进行任何长度检查。

易受攻击逻辑的简化版本如下:

root@kitploit:~
char email_buffer[256];

strcpy(email_buffer, user_input);

由于目标缓冲区大小固定,且未对输入长度进行验证,在 Email 字段中发送足够长的字符串会导致复制操作越过缓冲区末尾继续写入。

随着写入的数据越来越多,栈布局遭到破坏。与简单的返回地址覆写不同,该溢出会触及存储在栈上的结构化异常处理器(SEH)链。当栈损坏触发异常时,操作系统会遍历 SEH 链,并将控制权转移到攻击者可控的处理器地址。

因此,利用流程遵循 SEH 覆写技术:

  1. 长输入覆写栈,包括 nSEH 和 SEH 处理器指针。
  2. 内存损坏触发异常。
  3. 操作系统调用被覆写的处理器地址。
  4. 使用 POP POP RETN gadget 将执行转移到 nSEH 区域。
  5. 向前短跳转跳过 SEH 记录,并将执行重定向到 shellcode 区域。
  6. shellcode 被执行。

这使得该漏洞的利用比基本的 EIP 覆写更为复杂,但也更贴近真实世界的场景。




💥 触发崩溃

可以通过向 /sendemail.ghp 发送 POST 请求,并在 Email 参数中包含一个长字符串来复现崩溃。无需任何身份验证。以下是使用 Python 的示例:

root@kitploit:~
import socket

HOST = '127.0.0.1'
PORT = 80

request = (
	'POST /sendemail.ghp HTTP/1.1\r\n'
	'Email=' + 'A' * 5000 + '&getPassword=Get+Password'
).encode('utf-8')

s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect((HOST, PORT))
s.send(request)
s.close()

在调试器下执行时,崩溃会显示被破坏的 SEH 链和访问冲突,从而确认用户可控数据已覆写异常处理器指针。




💣 漏洞利用

本仓库的目标不仅在于演示崩溃,更在于按照开发真实 SEH 漏洞利用时采用的方法论,一步一步走完整个漏洞利用过程。

为了使主 README 保持简洁,详细的利用说明、脚本和调试器步骤都放在本仓库的 Vulnerability 📂 文件夹中。

在那里,你将找到利用该 CVE 的完整工作流程,包括:

  • 对 Email 参数进行模糊测试,以定位崩溃。
  • 发现偏移量,以确定 nSEH 和 SEH 在栈上的确切位置。
  • 进行坏字符分析,以识别会破坏 payload 的字节。
  • 利用已加载模块中的 POP POP RETN gadget 进行 SEH 链覆写。
  • Shellcode 的放置与执行。
  • 可选:构建 ROP 链,通过已加载模块中的 gadget 调用 VirtualProtect 以绕过 DEP。
下载工具