Wir haben das OverTheWire Natas-Level 19-20 abgedeckt. Dieses Level war dem vorherigen Level ähnlich, aber die Sitzungs-ID wird nicht mehr sequenziell generiert. In der neuen Herausforderung wird die Sitzungs-ID mithilfe eines Zahlenbereichs von 1 bis 640 generiert und dann mit dem Benutzernamen kombiniert, der zum Anmelden verwendet wird. Abschließend wird die endgültige Zeichenfolge hexadezimal codiert. Mithilfe von Python-Skripten konnten wir das Muster identifizieren, das zum Erstellen der Sitzungs-ID verwendet wurde, und das Muster finden, das dem Administratorkonto zugeordnet ist. Dies war Teil von OverTheWire Kriegsspiele Natas Level 19-20

Holen Sie sich Hinweise zum OSCP-Zertifikat

Video-Transkript

Was geht, Leute, willkommen zurück zu diesem Video. Heute machen wir Over-the-Wire-CTF-Spiele und wir werden Love and Lightning machen, also gehen wir weiter zu weiteren 19 bis auf Level 20.
Okay, wir besuchen also die URL und sehen ein Anmeldeformular. Der Titel besagt, dass diese Seite größtenteils denselben Code wie die vorherige Ebene verwendet, aber die Sitzungs-IDs sind nicht mehr sequenziell
Wenn Sie also im Wesentlichen zur vorherigen Ebene gehen – wenn Sie sich an die vorherige Ebene erinnern – haben wir Sitzungs-IDs mit roher Gewalt erzwungen, sodass Sitzungs-IDs vorhersehbar waren und ihnen im Code ein numerischer Wert zugewiesen wurde, was aus Sicherheitsperspektive nicht gut ist.

Weil Sie Brute Force verwenden können
die Sicherheits-ID oder die Sitzungs-ID. Und finden Sie grundsätzlich heraus, welche Sitzungs-ID mit dem Administratorkonto verknüpft ist. Das haben wir im vorigen Video gemacht. Jetzt ist das aber nicht mehr der Fall, weil es heißt, dass Sitzungs-IDs nicht mehr sequenziell sind. Darüber hinaus geben wir den Quellcode nicht heraus, das heißt, das ist ein Blackbox-Test.

Bitte melden Sie sich mit Ihrem Administratorkonto an, um die Anmeldeinformationen für Natives 20 abzurufen. Wenn wir uns jetzt mit irgendetwas anmelden, können wir die Reaktion der Webanwendung testen.
Da wir Session-IDs testen, wollen wir uns jetzt die Session-ID des Benutzers ansehen, mit dem wir uns anmelden, also Test2. Wir klicken also mit der rechten Maustaste und gehen auf „Inspect“ (Untersuchen). Von hier aus gehen wir zu „Application“ (Anwendung).
und wir markieren die Cookies. Ich werde mir die Sitzungs-ID notieren. Dies ist die Sitzung. Wenn wir diese kopieren und zu Cyberchef gehen, gehen wir zu Cyberchef.

Von Hex konvertieren wir jetzt den Hexadezimalwert in den entsprechenden ASCII-Text. Wie Sie sehen, ist das Ergebnis 380-Test 2, sodass der von uns verwendete Benutzer Teil dieser Sitzungs-ID ist.

Um dies besser zu verstehen, müssen wir zurückgehen und uns mit einem anderen Benutzer anmelden und sehen, wie sich die Entscheidungs-ID unterscheidet, also löschen wir dieses Cookie von hier
wir gehen zurück zur Hauptseite und geben dieses Mal erneut „test5 login“ ein, wir gehen auf „Überprüfen“, wir erwarten die Cookies, wir klicken auf die Sitzungs-ID, wir gehen zu Cyberchef und fügen die Sitzungs-ID ein
und tatsächlich ist dies die neue Sitzungs-ID, also seht mal, Leute, der Benutzername, den wir verwenden, wird immer als Teil des Cookies vor der Hex-Kodierung hinzugefügt
dieses Mal und dieses Mal Test2 und Test5 und vor dem Benutzernamen steht eine Zahl dazwischen.

Dieses Mal werden wir versuchen, uns mit einem Administratorkonto anzumelden, also lautet das Kennwort für admin1 admin 1. Nun wollen wir uns das Cookie ansehen.
Kopiert das Cookie, das ist also das neue Cookie, Leute. Es enthält also wieder den Benutzernamen admin1 und vor dem Benutzernamen steht eine Nummer. Versuchen wir es jetzt mit einem anderen Administratorbenutzer.
also löschen wir den letzten Cookie admin6 dieses Mal schauen wir uns die Cookies noch einmal an und wieder, wie Sie sehen können, ist admin6 Teil des Cookies und vor dem Benutzernamen steht die Nummer
Sie sehen jetzt, dass es ein Muster gibt. Wenn wir uns also zum ersten Mal als normale Benutzer anmelden, scheinen die Cookies, wie Sie sehen können, gemeinsame Teile zu haben, beginnend mit 2D 2d74657375. Dies ist der gemeinsame Teil für die Benutzer oder normalen Benutzer.

Wenn wir zu den Administratorbenutzern gehen und die gemeinsamen Teile in ihren Sitzungs-IDs markieren, können wir von hier aus beginnen. Was müssen wir also tun?
Wir müssen davon ausgehen, dass wir nur auf den Benutzer admin zugreifen möchten. Um dies tun zu können, müssen wir herausfinden, wo sich der Admin-Teil in hexadezimaler Form befindet
also scheint es mir, dass dies der Admin-Teil im Hexadezimalformat ist, um den Verdacht zu bestätigen, wie Sie den Admin-Teil sehen können. Daher müssen wir diesen Admin-Teil bei unserem Fuzzing konstant halten und die richtige Zahl herausfinden.

Im Grunde werden wir also Zahlen von 0 bis 640 durchgehen, okay, denn 640 war die maximale Zahl, die zum Generieren der Sitzungs-IDs verwendet wurde, wenn Sie sich an die letzte Herausforderung erinnern, also von 0 bis 640 werden diese Zahlen entsprechend diesem Bereich von 0 bis 640 generiert, also wollen wir diese Zahlen von 0 bis 640 durchgehen und sie mit dem Administrator ausprobieren, und sie würde entscheiden, welcher uns Zugriff gewährt, also im Grunde wenden wir Brute Force und Fuzzing gleichzeitig an
Sehen wir uns an, wie das in einem Python-Skript aussieht.

Okay, also als erstes definieren wir das Ziel. Dies ist die URL, zu der wir navigieren werden. Dies sind die Anmeldeinformationen. Wir werden simulieren
Basisauthentifizierung mit dem HTTP-Protokoll mit den Anmeldeinformationen aus der vorherigen Ebene. Als nächstes definieren wir die Parameter, die die PHP-Sitzungs-ID steuern. Dies sind die maximalen und
die niedrigste und höchste Zahl die niedrigste Zahl ist eins und die höchste Zahl ist 640 wieder entsprechend der vorherigen Aufgabe also werden wir zwischen diesen beiden Zahlen die Sitzungs-IDs generieren also durchlaufen wir hier eine while-Schleife also in der while-Schleife wollen wir jede mögliche Sitzungs-ID ausprobieren okay die Sitzungs-ID besteht aus zwei Bits das erste Bit ist die Zahl im Bereich zwischen 0 und 640 und der Benutzername selbst wir wollen diese Zahlen testen aber wir wollen den Benutzernamen konstant halten der zufällig admin ist um das zu tun also ist dies der Admin-Teil
in HEX und so konvertieren wir die Zahl zwischen 1 und 640 in Hex, also wie Sie sehen können, nehmen wir es von
die While-Schleife von hier aus, also ist die erste Zahl zuerst eins und dann erhöhen wir sie jedes Mal um eins, wenn wir die Schleife durchlaufen
und wir konvertieren das in Hex, am Ende kommt die Entscheidungs-ID als Hex.

Das Hex-Format plus die Admin-Teile, das ist das Hex-Format und dieser Album-Teil, wir addieren sie, um diese Formel zu erhalten, die Nummer und den Benutzernamen, und dann testen wir dies in einer einfachen Anfrage durch die Header und Antwortvariablen. Als nächstes führen wir das Skript aus, jetzt wird dies oder das Spread-Skript jede mögliche Sitzungs-ID drucken, die während des Prozesses generiert wird, okay?
Jetzt werden alle dieser Sitzungs-IDs live mit ihrer Anwendung verglichen.

Das war also die Sitzungs-ID, die die gewünschte korrekte Antwort generiert hat. Schauen wir uns das also an, kopieren es und gehen zum Browser. Wie Sie hier alles lesen können, lautet es 281-admin. Das ist die korrekte Nummer, die das Cookie generiert hat, das diese Ausgabe erzeugt hat.
Wenn Sie nach unten gehen, können wir diese Antwort sehen. Sie sind ein Administrator. Die Anmeldeinformationen für die nächste Ebene sind nicht 20 und dies ist das Kennwort. Damit ist die aktuelle Ebene effektiv abgeschlossen.
und wir können jetzt versuchen, uns auf der nächsten Ebene anzumelden, indem wir die 19 in der URL in 20 ändern. Okay, versuchen wir es also mit dem Passwort. Jetzt sind wir auf Ebene 20. Das werden wir in den nächsten Videos machen, Leute, fürs Erste schließe ich dieses Video ab und möchte euch fürs Anschauen danken, wir sehen uns später.

Video-Komplettlösung

 

Über den Autor

Ich erstelle Notizen zur Cybersicherheit, Notizen zum digitalen Marketing und Online-Kurse. Ich biete auch Beratung zum digitalen Marketing an, einschließlich, aber nicht beschränkt auf SEO, Google- und Meta-Anzeigen und CRM-Verwaltung.

Artikel anzeigen