Skip to content
KitploitKITPLOIT
ToolsBlog
Submit
ToolsBlog
Submit

Hacking, PenTest, and Cybersecurity Tools for Your Security Arsenal!

Kitploit is a directory of hacking, cybersecurity, and pentesting tools. Discover the latest project updates to find vulnerabilities, analyze systems, automate testing, and strengthen your security.

··Feeds·Contact·Privacy·© 2026 Kitploit

Tool Directory

Categories

View all categories
Loading categories
CVE-2018-18912 — SEH-based buffer overflow in Easy File Sharing Web Server 7.2 demonstrating how an authenticated HTTP POST parameter can corrupt the exception handler chain. | Kitploit
Tools/GitHubGitHub/themalwareguardian/cve-2018-18912
Vulnerability AnalysisExploitationReverse EngineeringShellcodeWeb Application ExploitationDebuggersLearning & EducationPayload DevelopmentBinary Exploitation
GitHubthemalwareguardian/cve-2018-18912

CVE-2018-18912

SEH-based buffer overflow in Easy File Sharing Web Server 7.2 demonstrating how an authenticated HTTP POST parameter can corrupt the exception handler chain.

View Repository
125 months agoNot yet reviewed

Most Popular

View all →

Discover the most used tools by our community.

Explore all tools

Browse our collection of tools

View all tools →
Share

🐞 CVE-2018-18912: Easy File Sharing Web Server 7.2 - Stack-Based Buffer Overflow (SEH)

SEH-based buffer overflow in Easy File Sharing Web Server 7.2 demonstrating how an authenticated HTTP POST parameter can corrupt the exception handler chain.




📑 Table of Contents

  • Why this repository exists
  • Why this vulnerability is interesting
  • Context and affected software
  • About the vulnerability
  • Triggering the crash
  • Exploitation



🎓 Why this repository exists

This repository is part of the material I use when teaching memory corruption exploitation (in addition to my regular work, I also teach in different cybersecurity courses where I help train the next generation of reverse engineers).

CVE-2018-18912 is the case I use to make the jump from vanilla EIP overwrites to SEH-based exploitation. Once students understand how a direct return address overwrite works, the next step is understanding what happens when the stack is so corrupted that the program triggers an exception before returning, and how that exception handler chain becomes the attack surface instead. This CVE demonstrates that transition cleanly: the overflow is deep enough to reach the SEH chain, and the exploitation path follows the classic POP POP RETN technique that every exploit developer needs to understand. The optional DEP bypass via ROP is left as an extension for students who want to go further, the same overflow, a different gadget strategy, a much harder problem.




💡 Why this vulnerability is interesting

This vulnerability affects Easy File Sharing Web Server 7.2, a lightweight Windows web server application that was widely used for simple file sharing. The software was written without modern security mitigations in mind. What makes this case particularly interesting from a teaching perspective is the combination of factors involved:

  • Authentication is required, but only at a basic level. This models a scenario where an attacker has obtained credentials, which is common in real-world post-exploitation.
  • The overflow is SEH-based. The crash does not overwrite the return address directly. Instead, it corrupts the Structured Exception Handler chain on the stack, requiring a different exploitation technique.
  • The vulnerable endpoint is a POST request. Easy to reproduce with standard HTTP tools and familiar to anyone who has worked with web applications.
  • DEP bypassing is optional. The exploit works with a direct SEH + short jump + shellcode approach on systems where DEP is disabled. If DEP is enabled, the same overflow can be extended with a ROP chain using gadgets from ImageLoad.dll to call VirtualProtect before transferring control to the shellcode.

This combination makes CVE-2018-18912 an excellent case for teaching exploit development techniques beyond the basics.




🔍 Context and affected software

Easy File Sharing Web Server 7.2 is a Windows application that allows users to share files over HTTP. It includes functionality such as file browsing, user authentication, and a built-in forum system.

The forum functionality accepts POST requests to create new topics. One of the form fields handled by this endpoint is the author parameter. Internally, the application copies this user-controlled value into a fixed-size stack buffer without validating the length.

The vulnerability was discovered and reported in 2018. The original PoC was published shortly after, demonstrating both the crash and a working exploit chain including ROP gadgets from the bundled ImageLoad.dll module.

Key technical details:

  • Vulnerability type: Stack-based buffer overflow (SEH)
  • Affected version: Easy File Sharing Web Server 7.2
  • Affected endpoint: POST /forum.ghp
  • Vulnerable parameter: author
  • Impact: Remote code execution



⚠️ About the vulnerability

Easy File Sharing Web Server processes HTTP POST requests directed to /forum.ghp when a user creates a new forum topic. One of the accepted parameters is author, which is copied into a local stack buffer without any length check.

When reversing the binary, it can be observed that the handler for this form field uses a fixed-size buffer and an unsafe copy operation. A simplified version of the vulnerable logic looks like this:

root@kitploit:~
char author_buffer[64];

strcpy(author_buffer, user_input);

Since the destination buffer has a fixed size and the input length is not validated, sending a sufficiently long string in the author field causes the copy to write past the end of the buffer.

As more data is written, the stack layout becomes corrupted. Unlike a simple return address overwrite, the overflow reaches the Structured Exception Handler (SEH) chain stored on the stack. When an exception is triggered as a result of the corrupted stack, the OS walks the SEH chain and transfers control to the attacker-controlled handler address.

The exploitation flow therefore follows the SEH overwrite technique:

  1. A long input overwrites the stack, including the nSEH and SEH handler pointers.
  2. An exception is triggered due to the memory corruption.
  3. The OS invokes the overwritten handler address.
  4. A POP POP RETN gadget is used to transfer execution to the nSEH area.
  5. A short jump forward skips over the SEH record and redirects execution to the shellcode area.
  6. The shellcode runs.

This makes the vulnerability more complex to exploit than a basic EIP overwrite, but also more representative of real-world scenarios.




Download Tool
💥 Triggering the crash

The crash can be reproduced by sending a long string in the author parameter of a POST request to /forum.ghp after authenticating with valid credentials. Example using Python:

root@kitploit:~
import socket

HOST = '127.0.0.1'
PORT = 80

payload = b"A" * 500

request = (
	b"POST /forum.ghp?forumid=1 HTTP/1.1\r\n"
	b"Host: 127.0.0.1\r\n"
	b"Content-Type: application/x-www-form-urlencoded\r\n"
	b"Cookie: UserID=test; PassWD=test; SESSIONID=1234\r\n"
	b"Connection: close\r\n"
	b"\r\n"
	b"author=" + payload + b"&passwd=test&title=test&content=test&Submit=Submit\r\n"
)

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

When executed under a debugger, the crash shows a corrupted SEH chain and an access violation, confirming that user-controlled data has overwritten the exception handler pointer.




💣 Exploitation

The goal of this repository is not only to demonstrate the crash, but also to walk through the complete exploitation process step by step, following the methodology used when developing real SEH-based exploits.

To keep the main README clean, the detailed exploitation notes, scripts, and debugger steps are placed inside the Vulnerability 📂 folder of this repository.

There you will find the complete workflow used to exploit this CVE, including:

  • Fuzzing the author parameter to identify the crash.
  • Offset discovery to locate the exact position of nSEH and SEH on the stack.
  • Bad character analysis to identify bytes that corrupt the payload.
  • SEH chain overwrite using a POP POP RETN gadget from a loaded module.
  • Shellcode placement and execution.