
Experiment CVE-2021-44790

Ausbeutungsziel: Ausnutzung der Buffer-Overflow-Schwachstelle, um ein DoS gegen das Ziel durchzuführen.
B1: Auf der Opfer-Maschine:
**Apache24/bin** để tiến hành chạy **httpd.exe.**
B2: Auf der Angreifer-Maschine:


Anfänglicher Verbindungs-Reset-Fehler:
Der erste Teil des Protokolls zeigt ConnectionResetError104
ist ein Fehler mit einer bestimmten Fehlernummer aufgetreten
, was „Peer-Reset der Verbindung“ bedeutet. Dies geschieht normalerweise, wenn der entfernte Server („Peer“) Ihre Verbindungsanfrage empfängt, die Verbindung danach jedoch abrupt schließt.
Die Urllib3-Bibliothek und die Anfrage:
Das Skript scheint die requestsurllib3
-Bibliothek zu verwenden und stützt sich daher auf diese
, um die HTTP-Verbindung herzustellen.


B3: Auf der Opfer-Maschine:
[Wed Nov 29 15:11:58.320403 2023] [mpm_winnt:notice] [pid 6224:tid 732] AH00428: Parent: child process 7220 exited with status 3221225477 -- Restarting.3221225477 beendet. Dies könnte ein Fehler aufgrund eines ungültigen Speicherzugriffs oder ein ähnlicher Fehler sein. Apache versucht anschließend, den Prozess neu zu starten.
httpd.exe ist, die ausführbare Datei des Apache-HTTP-Servers. Der fehlerhafte Modulname ist **MSVCR110.dll11.0.51106.1**Der Ausnahmecode ist 0xc0000005, was normalerweise auf einen Zugriffsverletzungsfehler hinweist. Dies bedeutet, dass das Programm versucht hat, an einer Speicherstelle zu lesen oder zu schreiben, an der es dies nicht hätte tun dürfen – eine häufige Ursache für Anwendungsabstürze.
Konfiguration der httpd.conf:
Anpassen des Pfads

Lua-Modul starten

Handler für das Lua-Modul hinzufügen

Inhalt von test.lua und Pfad:

Die urllib3
-Bibliothek versucht, eine Verbindung zu öffnen und eine Anfrage zu senden, scheitert jedoch aufgrund des Verbindungs-Resets.
Ausnahmebehandlung in der Bibliothek:
Beide urllib3requestsurllib3
fangen
Ausnahmen ab und lösen sie erneut aus. Die Bibliothek
versucht, die Anzahl der Wiederholungsversuche für die Anfrage zu erhöhen, was darauf hindeutet, dass sie möglicherweise so eingerichtet ist, es bei einem Fehlschlag erneut zu versuchen, gibt aber schließlich auf, nachdem die Versuche erschöpft sind.
Endgültiger Verbindungsfehler in der Anfrage:
Die letzte Ausnahme wird von der requestsConnectionError
-Bibliothek ausgelöst, das ist die Datei
. Dies ist eine allgemeine Ausnahme, die ausgelöst wird, wenn keine Verbindung zum Server hergestellt werden kann, was passieren kann, wenn der Server die Verbindung zurücksetzt.