Skip to content
KitploitKITPLOIT
ToolsBlog
Einreichen
ToolsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
CVE-2018-18912 — SEH-basierter Buffer-Overflow im Easy File Sharing Web Server 7.2, der demonstriert, wie ein authentifizierter HTTP-POST-Parameter die Exception-Handler-Kette korrumpieren kann. | Kitploit
Tools/GitHubGitHub/themalwareguardian/cve-2018-18912
SchwachstellenanalyseExploitationReverse EngineeringShellcodeWebanwendungs-ExploitationDebuggerLernen & BildungPayload-EntwicklungBinary-Exploitation

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen
GitHubthemalwareguardian/cve-2018-18912

CVE-2018-18912

SEH-basierter Buffer-Overflow im Easy File Sharing Web Server 7.2, der demonstriert, wie ein authentifizierter HTTP-POST-Parameter die Exception-Handler-Kette korrumpieren kann.

Repository anzeigen
1vor 5 MonatenNoch nicht geprüft

🐞 CVE-2018-18912: Easy File Sharing Web Server 7.2 - Stack-basierter Pufferüberlauf (SEH)

SEH-basierter Pufferüberlauf in Easy File Sharing Web Server 7.2, der zeigt, wie ein authentifizierter HTTP-POST-Parameter die Ausnahmebehandlungs-Kette beschädigen kann.




📑 Inhaltsverzeichnis

  • Warum dieses Repository existiert
  • Warum diese Schwachstelle interessant ist
  • Kontext und betroffene Software
  • Über die Schwachstelle
  • Auslösen des Absturzes
  • Ausnutzung



🎓 Warum dieses Repository existiert

Dieses Repository ist Teil des Materials, das ich verwende, wenn ich die Ausnutzung von Speicherfehlern unterrichte (neben meiner regulären Arbeit unterrichte ich auch in verschiedenen Cybersicherheitskursen, wo ich helfe, die nächste Generation von Reverse Engineers auszubilden).

CVE-2018-18912 ist der Fall, den ich nutze, um den Sprung von einfachen EIP-Überschreibungen zur SEH-basierten Ausnutzung zu machen. Sobald die Studenten verstehen, wie eine direkte Rücksprungadressen-Überschreibung funktioniert, ist der nächste Schritt zu verstehen, was passiert, wenn der Stack so stark beschädigt ist, dass das Programm vor der Rückkehr eine Ausnahme auslöst, und wie diese Ausnahmehandler-Kette stattdessen zur Angriffsfläche wird. Diese CVE demonstriert diesen Übergang sauber: Der Überlauf ist tief genug, um die SEH-Kette zu erreichen, und der Ausnutzungspfad folgt der klassischen POP-POP-RETN-Technik, die jeder Exploit-Entwickler verstehen muss. Die optionale DEP-Umgehung mittels ROP bleibt als Erweiterung für Studenten, die weiter gehen möchten – derselbe Überlauf, eine andere Gadget-Strategie, ein viel schwierigeres Problem.




💡 Warum diese Schwachstelle interessant ist

Diese Schwachstelle betrifft Easy File Sharing Web Server 7.2, eine leichte Windows-Webserver-Anwendung, die weit verbreitet für einfaches Dateiteilen verwendet wurde. Die Software wurde ohne moderne Sicherheitsvorkehrungen entwickelt. Was diesen Fall aus didaktischer Sicht besonders interessant macht, ist die Kombination von Faktoren:

  • Eine Authentifizierung ist erforderlich, jedoch nur auf einfachem Niveau. Dies modelliert ein Szenario, in dem ein Angreifer Anmeldeinformationen erlangt hat, was in der realen Post-Exploitation üblich ist.
  • Der Überlauf ist SEH-basiert. Der Absturz überschreibt nicht direkt die Rücksprungadresse. Stattdessen beschädigt er die Structured Exception Handler-Kette auf dem Stack, was eine andere Ausnutzungstechnik erfordert.
  • Der anfällige Endpunkt ist eine POST-Anfrage. Einfach mit Standard-HTTP-Tools reproduzierbar und jedem bekannt, der mit Webanwendungen gearbeitet hat.
  • DEP-Umgehung ist optional. Der Exploit funktioniert mit einem direkten SEH + kurzen Sprung + Shellcode-Ansatz auf Systemen mit deaktiviertem DEP. Wenn DEP aktiviert ist, kann derselbe Überlauf mit einer ROP-Kette erweitert werden, die Gadgets aus ImageLoad.dll verwendet, um VirtualProtect aufzurufen, bevor die Kontrolle an den Shellcode übergeben wird.

Diese Kombination macht CVE-2018-18912 zu einem hervorragenden Fall, um Exploit-Entwicklungstechniken über die Grundlagen hinaus zu vermitteln.




🔍 Kontext und betroffene Software

Easy File Sharing Web Server 7.2 ist eine Windows-Anwendung, die es Benutzern ermöglicht, Dateien über HTTP zu teilen. Sie bietet Funktionen wie Dateibrowsing, Benutzerauthentifizierung und ein integriertes Forumsystem.

Die Forum-Funktionalität akzeptiert POST-Anfragen zum Erstellen neuer Themen. Eines der von diesem Endpunkt verarbeiteten Formularfelder ist der author-Parameter. Intern kopiert die Anwendung diesen benutzergesteuerten Wert in einen Stack-Puffer fester Größe, ohne die Länge zu überprüfen.

Tool herunterladen

Die Schwachstelle wurde 2018 entdeckt und gemeldet. Der ursprüngliche PoC wurde kurz darauf veröffentlicht und zeigte sowohl den Absturz als auch eine funktionierende Exploit-Kette einschließlich ROP-Gadgets aus dem gebündelten ImageLoad.dll-Modul.

Wichtige technische Details:

  • Schwachstellentyp: Stack-basierter Pufferüberlauf (SEH)
  • Betroffene Version: Easy File Sharing Web Server 7.2
  • Betroffener Endpunkt: POST /forum.ghp
  • Anfälliger Parameter: author
  • Auswirkung: Remote-Codeausführung



⚠️ Über die Schwachstelle

Easy File Sharing Web Server verarbeitet HTTP-POST-Anfragen an /forum.ghp, wenn ein Benutzer ein neues Forum-Thema erstellt. Einer der akzeptierten Parameter ist author, der ohne Längenprüfung in einen lokalen Stack-Puffer kopiert wird.

Beim Reversen der Binärdatei kann beobachtet werden, dass der Handler für dieses Formularfeld einen Puffer fester Größe und eine unsichere Kopieroperation verwendet. Eine vereinfachte Version der anfälligen Logik sieht wie folgt aus:

root@kitploit:~
char author_buffer[64];

strcpy(author_buffer, user_input);

Da der Zielpuffer eine feste Größe hat und die Eingabelänge nicht validiert wird, führt das Senden einer ausreichend langen Zeichenfolge im author-Feld dazu, dass die Kopie über das Ende des Puffers hinausschreibt.

Wenn mehr Daten geschrieben werden, wird das Stack-Layout beschädigt. Im Gegensatz zu einer einfachen Rücksprungadressen-Überschreibung erreicht der Überlauf die auf dem Stack gespeicherte Structured Exception Handler (SEH)-Kette. Wenn infolge des beschädigten Stacks eine Ausnahme ausgelöst wird, durchläuft das Betriebssystem die SEH-Kette und übergibt die Kontrolle an die vom Angreifer kontrollierte Handler-Adresse.

Der Ausnutzungsablauf folgt daher der SEH-Überschreibungstechnik:

  1. Eine lange Eingabe überschreibt den Stack, einschließlich der nSEH- und SEH-Handler-Zeiger.
  2. Aufgrund der Speicherbeschädigung wird eine Ausnahme ausgelöst.
  3. Das Betriebssystem ruft die überschriebene Handler-Adresse auf.
  4. Ein POP-POP-RETN-Gadget wird verwendet, um die Ausführung zum nSEH-Bereich zu übertragen.
  5. Ein kurzer Sprung nach vorne überspringt den SEH-Eintrag und leitet die Ausführung zum Shellcode-Bereich um.
  6. Der Shellcode wird ausgeführt.

Dies macht die Schwachstelle komplexer auszunutzen als eine einfache EIP-Überschreibung, jedoch auch repräsentativer für reale Szenarien.




💥 Auslösen des Absturzes

Der Absturz kann reproduziert werden, indem nach der Authentifizierung mit gültigen Anmeldedaten eine lange Zeichenfolge im author-Parameter einer POST-Anfrage an /forum.ghp gesendet wird. Beispiel mit 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()

Bei Ausführung unter einem Debugger zeigt der Absturz eine beschädigte SEH-Kette und eine Zugriffsverletzung, was bestätigt, dass vom Benutzer kontrollierte Daten den Ausnahmehandler-Zeiger überschrieben haben.




💣 Ausnutzung

Das Ziel dieses Repositorys ist nicht nur den Absturz zu demonstrieren, sondern auch den vollständigen Ausnutzungsprozess Schritt für Schritt durchzugehen, der Methodik folgend, die bei der Entwicklung echter SEH-basierter Exploits verwendet wird.

Um die Haupt-README übersichtlich zu halten, befinden sich die detaillierten Ausnutzungsnotizen, Skripte und Debugger-Schritte im Vulnerability 📂-Ordner dieses Repositorys.

Dort finden Sie den vollständigen Workflow, der zur Ausnutzung dieser CVE verwendet wurde, einschließlich:

  • Fuzzing des author-Parameters zur Identifizierung des Absturzes.
  • Offset-Ermittlung zur genauen Position von nSEH und SEH auf dem Stack.
  • Bad-Character-Analyse zur Identifizierung von Bytes, die das Payload beschädigen.
  • Überschreiben der SEH-Kette mit einem POP-POP-RETN-Gadget aus einem geladenen Modul.
  • Platzierung und Ausführung des Shellcodes.