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-2020-13768 — Stack-basierter Pufferüberlauf in MiniShare 1.4.1, erreichbar durch eine einzelne HTTP-PUT-Anfrage. | Kitploit
Tools/GitHubGitHub/themalwareguardian/cve-2020-13768
SchwachstellenanalyseExploitationShellcodeDebuggerWebsicherheitFuzzingPenetrationstestsLernen & BildungPayload-EntwicklungBinary-Exploitation
GitHubthemalwareguardian/cve-2020-13768

CVE-2020-13768

2vor 5 MonatenNoch nicht geprüft

Stack-basierter Pufferüberlauf in MiniShare 1.4.1, erreichbar durch eine einzelne HTTP-PUT-Anfrage.

Repository anzeigen

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

🐞 CVE-2020-13768: MiniShare 1.4.1 - Stack-basierter Pufferüberlauf

Stack-basierter Pufferüberlauf in MiniShare 1.4.1, der über eine einzige HTTP-PUT-Anfrage ausgelöst werden 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 beim Unterrichten von Speicherkorruptions-Ausnutzung verwende (neben meiner regulären Arbeit unterrichte ich auch in verschiedenen Cybersicherheitskursen, wo ich helfe, die nächste Generation von Reverse Engineers auszubilden).

CVE-2020-13768 ist ein Fall, den ich verwende, wenn ich zeigen möchte, wie einfache netzwerkorientierte Server klassische stack-basierte Pufferüberläufe über Standardprotokollmethoden offenlegen können. Der angreifbare Endpunkt erfordert keine Authentifizierung, der Überlauf ist eine direkte EIP-Überschreibung, und der Ausnutzungspfad ist sauber und klar definiert. Es ist ein idealer Fall, um die vollständige Ausnutzungsmethodik in einem realistischen, nicht authentifizierten Remote-Szenario zu erlernen.

Was diesen Fall als Übungsbeispiel ebenfalls interessant macht, ist, dass dieselbe Grundursache – unbereinigte Eingabe, die in einen Stack-Puffer fester Größe kopiert wird – in mehreren CVE-Einträgen für dieselbe Binärdatei auftritt. CVE-2018-19861, CVE-2018-19862 und CVE-2019-17601 beschreiben alle dieselbe Art von Schwachstelle, die nur von verschiedenen Forschern über unterschiedliche HTTP-Methoden oder Endpunkte gemeldet wurden. Dies lehrt die Studierenden, auf Grundursachen zu achten, nicht nur auf CVE-Nummern.




💡 Warum diese Schwachstelle interessant ist

Diese Schwachstelle betrifft MiniShare 1.4.1, einen eingestellten, leichten Windows-HTTP-Server, der für einfaches lokales Datei-Sharing entwickelt wurde. Die Software wurde ohne moderne Sicherheitspraktiken geschrieben. Was diesen Fall aus didaktischer Sicht besonders interessant macht, ist die Kombination der beteiligten Faktoren:

  • Keine Authentifizierung erforderlich. Die HTTP-PUT-Methode wird ohne jegliche Prüfung von Anmeldeinformationen verarbeitet. Jeder entfernte Angreifer im Netzwerk kann die Schwachstelle mit einer einzigen manipulierten Anfrage auslösen.
  • Standard-Protokollmethode als Angriffsvektor. Der Überlauf wird durch eine HTTP-PUT-Anfrage ausgelöst – kein benutzerdefiniertes Protokoll oder obskurer Befehl. Dies veranschaulicht, wie standardmäßige, bekannte Protokollmethoden genauso effektiv Exploit-Payloads transportieren können wie proprietäre Schnittstellen.
  • Direkte EIP-Überschreibung. Der Überlauf erreicht und überschreibt direkt die gespeicherte Rücksprungadresse, was dies zu einem textbuchartigen, einfachen Stack-Pufferüberlauf ohne SEH-Kette macht.
  • Mehrere CVEs, dieselbe Binärdatei. CVE-2018-19861, CVE-2018-19862 und CVE-2019-17601 beschreiben dieselbe Art von Schwachstelle in derselben Software. Unterschiedliche CVE-Einträge wurden vergeben, weil verschiedene Forscher unterschiedliche HTTP-Methoden oder Endpunkte meldeten, aber beim Reversing der Binärdatei wird klar, dass alle dieselbe Grundursache teilen: unbereinigte Eingabe, die ohne Längenprüfung in einen Stack-Puffer fester Größe kopiert wird.

Diese Kombination macht CVE-2020-13768 zu einem hervorragenden Fall, um die Grundlagen der netzwerkbasierten Pufferüberlauf-Ausnutzung in einem realistischen, nicht authentifizierten Szenario zu lehren.




🔍 Kontext und betroffene Software

MiniShare ist ein minimaler Windows-HTTP-Server, der ursprünglich für schnelles lokales Datei-Sharing über ein LAN entwickelt wurde. Er lauscht auf TCP-Port 80 und verarbeitet eine kleine Teilmenge von HTTP-Methoden, einschließlich GET und PUT. Der PUT-Handler verarbeitet eingehende Anfragen und kopiert den URI-Pfad in einen Stack-Puffer fester Größe, ohne dessen Länge zu validieren.

Wichtige technische Details:

  • Schwachstellentyp: Stack-basierter Pufferüberlauf
  • Betroffene Version: MiniShare 1.4.1 und früher
  • Betroffener Endpunkt: HTTP-PUT-Anfrage
  • Angreifbare Komponente: URI-Pfadverarbeitung im PUT-Handler
  • Authentifizierung erforderlich: Nein
  • Auswirkung: Remote-Codeausführung



⚠️ Über die Schwachstelle

MiniShare verarbeitet eingehende HTTP-Anfragen und leitet sie basierend auf der Methode an den entsprechenden Handler weiter. Der PUT-Handler extrahiert den URI-Pfad aus der Anfrage und kopiert ihn ohne Längenprüfung in einen Stack-Puffer fester Größe.

Eine vereinfachte Version der anfälligen Logik sieht folgendermaßen aus:

root@kitploit:~
char path_buffer[256];

strcpy(path_buffer, uri_path);

Da der Zielpuffer eine feste Größe hat und die Eingabelänge nicht validiert wird, führt das Senden eines ausreichend langen URI in der PUT-Anfrage dazu, dass die Kopie über das Ende des Puffers hinaus schreibt und schließlich die gespeicherte Rücksprungadresse (EIP) auf dem Stack erreicht und überschreibt.

Wenn die anfällige Funktion zurückkehrt, lädt die CPU den vom Angreifer kontrollierten Wert vom Stack in das EIP-Register und springt dorthin. Wenn diese Adresse auf vom Angreifer kontrollierte Daten mit Shellcode zeigt, wird eine beliebige Codeausführung erreicht.




💥 Auslösen des Absturzes

Der Absturz kann durch Senden eines übermäßig langen URI in einer HTTP-PUT-Anfrage reproduziert werden. Es ist keine Authentifizierung erforderlich. Beispiel mit Python:

root@kitploit:~
import socket

HOST = '127.0.0.1'
PORT = 80

payload = b"A" * 3000

request = (
	b"PUT /" + payload + b" HTTP/1.1\r\n"
	b"Host: 127.0.0.1\r\n"
	b"Connection: close\r\n"
	b"\r\n"
)

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

Wenn er unter einem Debugger ausgeführt wird, zeigt der Absturz EIP mit benutzergesteuerten Daten überschrieben:

root@kitploit:~
EIP = 41414141

Dies bestätigt, dass die gespeicherte Rücksprungadresse durch den Überlauf beschädigt wurde.




💣 Ausnutzung

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

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

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

  • Fuzzing des PUT-URI zur Identifizierung des Absturzes.
  • Offset-Ermittlung zur Lokalisierung der genauen Position von EIP auf dem Stack.
  • Analyse ungültiger Zeichen zur Identifizierung von Bytes, die die Payload beschädigen.
  • Auffinden eines JMP-ESP-Gadgets aus einem geladenen Modul ohne ASLR.
  • Platzierung und Ausführung des Shellcodes.