
In diesem Artikel werden wir uns am Beispiel des
Natas- Kriegsspiels mit der Funktionsweise einiger WEB-Identitäten befassen. Jede Ebene hat Zugriff auf das Passwort der nächsten Ebene. Alle Passwörter werden auch in den Dateien / etc / natas_webpass / gespeichert. Beispielsweise wird das Kennwort für natas5 in der Datei / etc / natas_webpass / natas5 gespeichert und ist für die Benutzer natas4 und natas5 schreibgeschützt.
OrganisationsinformationenSpeziell für diejenigen, die etwas Neues lernen und sich in einem der Bereiche Informations- und Computersicherheit entwickeln möchten, werde ich über die folgenden Kategorien schreiben und sprechen:
- PWN;
- Kryptographie (Krypto);
- Netzwerktechnologien (Netzwerk);
- Reverse (Reverse Engineering);
- Steganographie (Stegano);
- Suche und Ausnutzung von WEB-Schwachstellen.
Darüber hinaus werde ich meine Erfahrungen in den Bereichen Computerforensik, Analyse von Malware und Firmware, Angriffe auf drahtlose Netzwerke und lokale Netzwerke, Durchführung von Pentests und Schreiben von Exploits teilen.
Damit Sie sich über neue Artikel, Software und andere Informationen informieren können, habe ich
in Telegram einen
Kanal und eine
Gruppe eingerichtet, um alle Probleme im Bereich ICD
zu diskutieren . Außerdem werde ich Ihre persönlichen Anfragen, Fragen, Vorschläge und Empfehlungen
persönlich prüfen
und alle beantworten .
Alle Informationen werden nur zu Bildungszwecken bereitgestellt. Der Autor dieses Dokuments übernimmt keine Verantwortung für Schäden, die jemandem durch die Verwendung von Kenntnissen und Methoden entstehen, die durch das Studium dieses Dokuments erworben wurden.
Stufe 0
Wir schauen uns den Quellcode der Seite an und überprüfen die Kommentare.

Wir finden das Passwort.
Sehr oft kommentieren Entwickler bei der Entwicklung von Websites verschiedene Zusatzinformationen für sich selbst, einschließlich Autorisierungsdaten.
Stufe 1
Wir sehen uns den Quellcode der Seite noch einmal an, aber einem Javascript-Ereignis wird ein Mausklick mit der rechten Maustaste zugewiesen, wodurch verhindert wird, dass das Kontextmenü angezeigt wird.

Zum Anzeigen der Seite können Sie die Browser-Hotkeys verwenden. Das Drücken der rechten Maustaste funktioniert dann nicht.

Wir finden das Passwort.
Optional (manchmal vorrangig) können Sie einfach die gesamte Seite herunterladen und den Code anzeigen.
wget --http-user=natas1 --http-password=gtVrDuiDfck831PqWsLEZy5gyDz1clto http://natas1.natas.labs.overthewire.org

Stufe 2
Wir sehen uns den Quellcode der Seite noch einmal an und stellen fest, dass das Bild auf die Seite geladen wird.

Gehen wir zu dem Verzeichnis, aus dem das Bild heruntergeladen wird. Wir stellen fest, dass dieses Verzeichnis nicht indiziert und für Benutzer verfügbar ist.

Wir nehmen das Passwort weg.

Um zu vermeiden, dass Dateien im Verzeichnis angezeigt werden, sollten die Servereinstellungen (in diesem Fall /etc/apche2/httpd.conf) die Dateiindizierung verbieten. Oder in diesem Verzeichnis sollte sich die Datei index.html befinden.
Stufe 3
Wir schauen uns noch einmal den Quellcode der Seite an, da gibt es nichts Interessantes. Das zweite Element nach dem Anzeigen des Quellcodes ist das Scannen von Dateien und Verzeichnissen. Geben Sie den Benutzer und das Kennwort für die http-Authentifizierung als Parameter des Dienstprogramms dirb an.

Die Datei robots.txt enthält eine Liste von Verzeichnissen und Dateien, die von Suchmaschinenrobotern (z. B. Google und Yandex) nicht angezeigt werden dürfen.

Gehen wir in das versteckte Verzeichnis auf der Site, suchen die Datei und holen das Passwort ab.


Als Analog können Sie das Dienstprogramm dirsearch oder burpsuite verwenden.
Stufe 4
Der Server informiert, von welcher Seite sie gegangen sind, und sagt, zu welcher Seite sie gehen sollen. Er kann diese Daten nur im HTTP-Protokoll-Header überprüfen.

Wählen Sie im Browser die Symbolleiste → Netzwerk → Letzte Anfrage und „Ändern und Senden“. Sie sollten das Feld Referer ändern - es zeigt genau, woher wir kommen.

Es bleibt das Passwort abzuholen.

Diese Aktion ist Burpsuite.
Es muss ständig überprüft werden, welche HTTP-Felder der Webserver anzeigt. Dies sind die am seltensten gefilterten Benutzerdaten.
Stufe 5
Der Service meldet, dass wir nicht angemeldet sind. Das heißt, es speichert die Daten unserer Autorisierung. Der einzige Ort, an dem dies übertragen werden kann, ist die Cookiesitzung.

Sehen wir uns die Cookies an (der Einfachheit halber ist es besser, Erweiterungen im Browser zu installieren) und ändern Sie den Wert des angemeldeten Parameters in 1.

Laden Sie die Seite neu und sammeln Sie das Passwort.

Diese Sicherheitsanfälligkeit wird als fehlerhafte Authentifizierung und Sitzungsverwaltung klassifiziert.
Stufe 6
Dieser Service stellt uns den Quellcode zur Analyse zur Verfügung.

Das Geheimnis, das wir eingeben müssen, ist enthalten (verbunden mit der Datei).

Gehen Sie zur Adresse dieser Datei auf dem Server und holen Sie
ein Geheimnis. Da diese Dateien PHP-Code enthalten, sind sie
wird nur angezeigt, wenn Sie sie herunterladen.

Senden Sie ein Geheimnis, erhalten Sie ein Passwort.
Stufe 7
Wenn Sie auf beide Links klicken, stellen wir fest, wie sie geladen werden. Der Dateiname auf dem Server wird auf den GET-Parameterseiten übergeben.

Versuchen wir, den Pfad zur Datei / etc / passwd als Parameter anzugeben.

Und sie sagen uns, wo wir das Passwort bekommen können.

Die Sicherheitsanfälligkeit wird als LFI klassifiziert.
Stufe 8
Der Quellcode des Dienstes wird bereitgestellt. Die codierte Zeichenfolge und die Codierungsmethode werden gespeichert.

Es ist notwendig, in umgekehrter Reihenfolge zu dekodieren:
- Konvertieren von Hex-Ansicht in Binärdarstellung;
- drehe die Linie um;
- decodiere base64.
<?php $secret = "3d3d516343746d4d6d6c315669563362"; echo base64_decode(strrev(hex2bin($secret)))."\n"; ?>

Senden Sie ein Geheimnis und erhalten Sie ein Passwort.

Stufe 9
Aus der Analyse des Quellcodes wird deutlich, dass Benutzerdaten an die Befehlszeile übertragen werden, um nach Daten in der Datei zu suchen.

Da die Daten nicht gefiltert werden, können Sie die Pipeline erfassen und andere Betriebssystembefehle ausführen. Wenn Sie der Anforderung eine Zeichenfolge übergeben, zum Beispiel: "|| ls # ", dann wird die vollständige Anfrage" grep -i || ls # dictionary.txt. " Alles nach || - wird mit einem Fehler ausgeführt und nach # - wird es auskommentiert, dh wir erhalten nur die Ausgabe des Befehls ls.

Daher lesen wir die Datei: „|| cat / etc / natas_webpass / natas10 # ".

Die Sicherheitsanfälligkeit wird als OS Command Injection klassifiziert.
Stufe 10
Aus der Analyse des Quellcodes wird deutlich, dass Benutzerdaten an die Befehlszeile übertragen werden, um nach Daten in der Datei zu suchen.

Die Aufgabe ist die gleiche wie auf Stufe 9, nur dass es jetzt einen Filter gibt. T.O. Zeichen verschwinden aus der Anfrage: ";", "|", "&". Sie können die Datei legitim lesen! Angenommen, unser Passwort hat das Symbol "z": "z / etc / natas_webpass / natas11 #".

Fortsetzung folgt. Sie können sich uns
per Telegramm anschließen .