Pentesting von Web-Schwachstellen mit der Damn Vulnerable Web App

Inhaltsverzeichnis

Ziel ist es, dass sowohl Einsteiger als auch professionelle Anwender, die an der Analyse und Lösung von Sicherheitsproblemen interessiert sind, ihr Wissen, ihre Fähigkeiten und ihre Werkzeuge in einer simulierten Umgebung unter Beweis stellen können Tools sind für Webentwickler sehr nützlich Sie können die Probleme einer Anwendung oder Website verstehen und die Programmierung verbessern oder nach Schwachstellen suchen.

Obwohl die meisten Entwickler Vorkehrungen gegen potenzielle Schwachstellen getroffen haben, sind viele Schwachstellen wie z Cross-Site-Scripting (XSS) oder SQL-Injektionen, die die Sicherheit vieler Websites und damit der Benutzer beeinträchtigen.

In diesem Tutorial werden wir eine Website installieren und konfigurieren, um sie als Testlabor für Web-Sicherheitsaudits zu verwenden, wo wir verschiedene, noch häufigere Schwachstellen finden, die verschiedene Schwierigkeitsgrade der Schwachstellen vorschlagen, die dann analysiert werden können.

Wir werden die Damn Vulnerabilty Web Application (DVWA) verwenden, eine Website, die auf jedem unserer Server installiert werden kann, einschließlich eines lokalen, um Pentesting-Tests durchführen zu können. Wir können es von seiner offiziellen Website herunterladen.

Nach dem Download benötigen wir einen Webserver oder einen lokalen Server, wie in den Tutorials angegeben:

  • So installieren Sie Xampp, um Ihren Computer in einen Webserver zu verwandeln
  • Tragbarer Easyphp-Webserver

Nachdem wir nun die Zip-Datei der Damn Vulnerabilty Web Application (DVWA) heruntergeladen haben, entpacken wir sie und kopieren sie in den Ordner unseres Webservers, in diesem Fall verwenden wir Xampp unter Linux.

Als nächstes müssen wir die Datenbank dafür konfigurieren, wir gehen von phpmyadmin.

Wenn wir dies von einem Terminalfenster aus tun möchten, verwenden wir den folgenden Befehl, auf den wir über ssh zugreifen können:

 ssh-Benutzer @ miip
Zuerst melden wir uns über die Kommandozeile mit dem folgenden Befehl beim MySQL-Server an:
 mysql -u root -p
In diesem Fall wird der Root-Benutzer mit dem Flag -u angegeben, und dann wird das Flag -p verwendet, um anzugeben, dass MySQL ein Passwort anfordern soll. Wir geben den Zugangsschlüssel ein, um sich bei MYSQL anmelden zu können.

Dann können wir die Datenbank über die Befehlszeile erstellen:

 Datenbank-dvwa erstellen;
Als nächstes gehen wir in das config-Verzeichnis und bearbeiten dann die Datei config.inc.php, hier ändern wir die Daten, um den Namen der Datenbank, den Benutzer und das Zugangspasswort anzugeben:
 
Wir speichern die Konfiguration und müssen zu dem Browser gehen, in dem wir das Web haben, und auf klicken Datenbank erstellen / zurücksetzen um mit der Installation fortzufahren.

Als nächstes erstellen wir die Daten der von uns konfigurierten Datenbank und sehen einige Tools, die das Web bietet.

Wenn wir dann nach der Installation zum Web zurückkehren http: // localhost / dvwa, erhalten wir einen Anmeldebildschirm:

Für den Zugriff auf die Website verwenden wir folgende Daten:

Nutzer: Administrator
Taste: Passwort

In der linken Spalte des Webs haben wir ein Menü am Ende können wir die Option sehen DVWA-SICHERHEITVon hier aus können wir den Schwierigkeitsgrad für Schwachstellen konfigurieren, die Sicherheitsstufen sind niedrig, mittel, hoch oder unmöglich.

Die Sicherheitsstufe ändert die Schwachstellenstufe von DVWA:

Niedrige SicherheitsstufeDieses Sicherheitsniveau ist völlig angreifbar und verfügt über keine Sicherheitsmaßnahmen, sodass wir Hacking-Techniken einfacher testen können. Seine Verwendung soll als Beispiel dafür dienen, wie sich Schwachstellen in Webanwendungen durch schlechte Codierungspraktiken manifestieren, und als Plattform dienen, um grundlegende Ausnutzungs-, Crack- und Hacking-Techniken zu lehren oder zu erlernen.

Mittlere SicherheitsstufeDiese Stufe dient dazu, Schwachstellen aufzuzeigen, bei denen der Entwickler nicht sichergestellt hat, dass der Code und die Entwicklung keine Schwachstellen aufweisen.

Hohe SicherheitsstufeDieses Level richtet sich an die fortgeschrittensten Benutzer, um einen mittleren Schwierigkeitsgrad mit einer Mischung aus schlechten Programmierpraktiken im Webcode zu bewältigen. Hier können wir fortgeschrittene Techniken ausprobieren.

Sicherheitsstufe unmöglichDiese Stufe ist die sicherste gegen alle Schwachstellen. Es wird verwendet, um anfälligen Quellcode mit sicherem Quellcode zu vergleichen. Dieses Level soll zeigen, wie eine Website richtig entwickelt werden muss und wie sie vor möglichen Angriffen reagieren muss.

Wir legen die niedrigste Stufe fest, um verschiedene Hacking-Techniken und die Erkennung von Schwachstellen testen zu können.

Brute Force testen um ein Login mit eigenem Skript zu knacken
Wir greifen auf den Brute-Force-Link zu und sehen, dass es ein Anmeldeformular gibt. Wir geben alle Daten in den Benutzernamen und das Passwort ein, damit es fehlschlägt und ob ein Fehler auftritt.

Wenn die Anmeldung fehlschlägt, sehen wir eine URL mit den eingegebenen Daten, wobei die URL verwendet wird, die uns zeigt:
http: // localhost / dvw… siehe & Login = Login #,

Daher können wir ein Skript erstellen, das verschiedene Kombinationen für Benutzer und Passwort testet, oder ein Programm wie xHydra verwenden, das eine grafische Oberfläche für Hydra ist, oder direkt von der Befehlszeile aus, wenn dies der einzige Zugriff ist, den wir über SSH auf den Server haben.

Um Hydra zu installieren, verwenden wir die folgenden Befehle:

 sudo add-apt-repository ppa: pi-rho / securitysudo apt-get updatesudo apt-get install hydra hydra-gtk
Nach der Installation müssen wir die Benutzerlisten und möglichen Schlüssel im txt-Format suchen oder erstellen oder nach einem Wörterbuch suchen, das wir wie im Tutorial verwenden können.

Auch eine Textdatei mit Namen möglicher Benutzer, wir können auch einige bereits funktionierende Datenbanken verwenden, wie diese Skullsecurity.org-Wörterbücher, die in vielen Tools, Antivirenprogrammen usw. Alle Datenquellen können kostenlos genutzt werden.

Als nächstes verwenden wir Hydra mit den Listen, die wir mit den folgenden Befehlen haben:

 hydra -L /home/innove/usuarios.txt -P /home/innove/claves.txt 192.168.0.11 http-post-form "/dvwa/login.php:username=^USER^&password=^PASS^&Login=Login : Anmeldung fehlgeschlagen "-w 10 -V 

Wir können sehen, dass einige Ergebnisse positiv waren und die Benutzer und das Passwort, die die akzeptierte Anmeldung erreicht haben, in Grün angezeigt werden. Wenn wir es mit dem Admin-Benutzer und dem Passwort versuchen, werden wir das Benutzerfeld anzeigen

SQL-Injection-Schwachstelle
Auf der niedrigsten Sicherheitsstufe ist das Web anfällig für SQL-Injection. Bevor wir Code in das Textfeld einschleusen, können wir den Code beobachten, der die Tabelle in PHP abfragt, die anfällig ist.

 
Der Fehler ist, dass die Daten nicht per GET, sondern per POST gesendet werden sollen und zweitens muss geprüft werden, dass die ankommenden Daten keinen Schadcode enthalten.

Die SQL-Anweisung führt direkt aus, was ankommt, ohne Kontrollen oder Überprüfung. Dies macht den Code also anfällig für SQL-Injections, zum Beispiel können wir die vollständige Liste der Benutzer erhalten, wenn wir auf der SQL-Injection-Seite anstelle einer ID den folgenden Code hinzufügen:

 1 'OR 1 = 1 UNION SELECT null, Version () #
Das Ergebnis ist die Liste der Benutzer.

Wir können auch die gesamte Liste der Tabellen erhalten, wenn wir den folgenden Code im Textfeld anwenden.

 1 'ODER 1 = 1 UNION SELECT null, Tabellenname FROM INFORMATION_SCHEMA.tables

Wir können andere Kombinationen anwenden, um die Liste der Benutzer zu erhalten und die Daten jeder Tabelle anzuzeigen.

Hat dir dieses Tutorial gefallen und geholfen?Sie können den Autor belohnen, indem Sie diesen Knopf drücken, um ihm einen positiven Punkt zu geben

Sie werden die Entwicklung der Website helfen, die Seite mit Ihren Freunden teilen

wave wave wave wave wave