Pentesting-Angriffe und Abwehr von Webanwendungen mit bWAPP

bWAPP ist eine Website, die mit Schwachstellen entwickelt wurde, damit sowohl Anfänger als auch Experten Pentesting- und ethische Hacking-Praktiken durchführen 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 für VirtualBox funktioniert.

bWAPP ist kostenlos und offen und kann in zwei Versionen heruntergeladen werden, eine zur lokalen Verwendung und die andere zur Installation in einer virtuellen Maschine. Die Website wurde in PHP und MySQL entwickelt und ist somit plattformübergreifend. Wir laden install bWAPP lokal herunter, wenn wir in einer virtuellen Maschine installieren möchten, ist das Projekt Bee-Box.

Bee-box ist eine virtuelle Linux-Maschine, auf der alles vorinstalliert ist. Auf diese Weise müssen wir nur alle bWAPP-Schwachstellen untersuchen, ohne Gefahr zu laufen, die bWAPP-Website zu verunstalten. Auch mit der virtuellen Maschine können wir versuchen, Root-Zugriff zu bekommen.

bWAPP hat mehr als 100 Fehler Um zu untersuchen und zu entdecken, deckt es alle wichtigen bekannten Web-Schwachstellen ab, einschließlich aller Sicherheitsrisiken. Das Projekt ermöglicht nicht nur das Aufdecken von Schwachstellen, sondern auch das Finden der Lösung.

In diesem Tutorial wir werden die Bee-Box-Version von bWAPP installierenDazu 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 und weisen eine 32-Bit-Linux-Ubuntu-Version zu.

Als nächstes müssen wir die heruntergeladene Datei namens . auswählen bee-box.vdmk

Denken Sie vor dem Starten der virtuellen Maschine daran, dass wir das Netzwerk konfigurieren müssen, wir tun dies von Einstellung um eine IP-Adresse zu haben und von einem anderen Computer auf die virtuelle Maschine zugreifen zu können.

Wir klicken auf Erstellen und dann auf Start, damit die virtuelle Maschine zu arbeiten beginnt. Nach dem Laden sehen wir den Desktop.

Als nächstes öffnen wir das Terminal, um zu sehen, was die IP mit dem Befehl verwendet ifconfig.

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 folgendes sein:

Dann können wir mit der Login-Seite beginnen, standardmäßig ist der Benutzer bee und das Passwort ist ein Fehler, um auf das Control Panel zuzugreifen. Im Bugs-Menü werden wir mehrere Beispiele haben, um einige Schwachstellen zu verwenden und zu testen, von den einfachsten bis zu den komplexesten. Lass uns welche sehen Schwachstellen nach Art des Angriffs.

Das Schwachstellen sind in Kategorien oder Kapitel unterteilt das sind die folgenden:

A1 InjektionenHier sind die Schwachstellen von . gruppiert HTML-Injection, SQL, XSS, XPATH und all diejenigen, die mit dem Senden von Parametern über Browser zu tun haben.

A2 Authentifizierung und Sitzungen unterbrechenHier sieht es aus gegen Captchas und Anmeldeformulare verstoßen unter Verwendung von URL-Ersetzungstechniken, Parametererfassung und Verwendung von Sitzungs-IDs.

A3 Cross-Site-Scripting (XSS)Hier sind die XSS-bezogene Schwachstellen die sind nicht sehr gefährlich, aber eher ärgerlich.

A4 Unsichere Objekte und VerzeichnisseHier geht es um Parameter in Links aus Code ändern bevor Sie das Formular absenden.

A5 Sicherheit und KonfigurationHier werden wir sehen einige Angriffe wie DDOS und mittlerer Angriff, die sich auf Dienste wie E-Mail und funktionierende Dienste auswirken wird.

A6 Offenlegung sensibler DatenHier werden wir eine Reihe von Schwachstellen sehen, die es ermöglichen Serverdaten werden im Browser angezeigt.

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

1. HTML-Injection


Mit HTML Reflected Injection können Sie HTML-Code in ein Textfeld einfügen und dann im Web anzeigen. Wir wählen die erste Injection by GET-Methode aus, wir haben zwei Textfelder, wenn wir beispielsweise in jedem einen Link eingeben:
 Dringende Nachricht | Ihr Vertrieb
Beim Absenden des Formulars sehen wir unten, dass beide Links angezeigt werden und warten darauf, dass jemand darauf klickt. Wir können auch die POST-Methode ausprobieren.

VERGRÖSSERN

Ein weiteres Problem, die Eingabe von HTML-Daten nicht zu kontrollieren, besteht darin, dass wir ein Formular senden könnten, das den Benutzer glauben lässt, dass er sich anmelden oder einige Daten eingeben muss, und diese Daten an eine andere Seite senden.

 Deine Verbindung wurde getrennt. 
Geben Sie Ihren Benutzernamen und Ihr Passwort ein, um den Benutzer fortzusetzen:
Schlüssel:

VERGRÖSSERN

2. SQL-Injektion


Sehen wir uns einen anderen Angriff wie SQL Injection an. Wenn wir BUG nach der SQL Injection-Option (GET / Search) durchsuchen, können wir in diesem Abschnitt nach Filmen suchen, zum Beispiel Iron Man, was zu den Filmdaten führt.

VERGRÖSSERN

Dann können wir versuchen, SQL-Code zu injizieren, 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 where table_schema = database () -'
Das Ergebnis ist die Liste der Tabellen, daher ist die Datenbank anfällig:

VERGRÖSSERN

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 gesehen haben, wo wir die Root-Ebene erreichen und nach den Administratorschlüsseln suchen.

Aus dem Terminalfenster schreiben wir den folgenden Befehl, wir verwenden die Seite, auf der wir nach dem Film suchen, da sie einen Parameter hat, der angreifbar sein kann.

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

Es zeigt uns die Datenbanken, eine davon ist bWAPP, daher werden wir versuchen, die Liste der Tabellen zu erhalten, da wir wissen, dass die Datenbank-Engine MySQL 5 ist. Um die Liste der Tabellen zu erhalten, verwenden wir den folgenden Befehl.

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

Wir können sehen, dass es alle Tabellen nicht nur aus dem Web, sondern auch aus dem System auflistet, 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 sehen, da beim Erstellen eines Benutzers oder Anmelden oder Generieren dynamischer Inhalte wie einer Suche die Antwort des Servers eine PHP-Sitzung erstellt.

VERGRÖSSERN

Befehl verwenden --users und der Sitzung oder mit dem Befehl ohne Sitzung 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

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

 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, in denen es ein Passwort gibt, eine davon sind Benutzer mit Administratordaten und eine andere sind die Tabellenhelden und Benutzer (Benutzer), mit denen wir uns als Benutzer anmelden.

Die Benutzertabelle enthält die Daten des Website-Administrators:

Als nächstes erhalten wir das Root-Passwort der Benutzer, die wir oben finden, dazu verwenden wir den folgenden Befehl:

 sqlmap -u "http://192.168.0.14/bWAPP/sqli_1.php?title=iron&action=search" -f -b --current-user --is-dba --is-dba --privileges --dbs - entsorgen
Am Ende der Befehle durch einen Brute-Force-Angriff stellen wir fest, dass das Passwort des Systemadministrators ein Bug ist und der Benutzer root ist.

Wir werden versuchen, vom Terminal aus eine Verbindung über ssh mit der virtuellen Maschine herzustellen, um die Fernsteuerung des Computers mit dem folgenden Befehl zu übernehmen:

 [email protected]
Das Ergebnis unter Verwendung des Root-Benutzers und des Bug-Passworts ist die Verbindung mit Administratorrechten zur virtuellen Maschine.

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

Der Zugriff mit diesen Benutzerdaten ist uns problemlos gelungen. Wenn wir die Benutzertabelle verwenden, können wir uns auch einloggen.

3. HTML / XPATH-Injektion


Eine der am wenigsten angedachten Angriffe sind Browser, die die Codebearbeitung ermöglichen. Wenn wir einen Link zu einer bösartigen Website ändern, wird der Benutzer es nicht bemerken und die Änderung geht verloren, wenn das Web aktualisiert wird.

Zum Beispiel werden wir das Passwort ändern und mit der rechten Maustaste einen Inspector oder Code-Editor öffnen und die URL change_password.php in http://google.com ändern und den Editor schließen

VERGRÖSSERN

Wenn der Benutzer also auf diesen Link klickt, wird er auf eine andere Seite umgeleitet. Dies ist sehr ineffektiv, da beim Aktualisieren oder Ändern der Seite der Link zum Original zurückkehrt. Dies ist für uns zu prüfen, bevor wir auf einen Link klicken, der uns zu einer sicheren Website oder innerhalb derselben Domain führt.

4. Serverseitige Injektion


Eine serverseitige Injektion liegt vor, wenn eine Website anfällig ist und die Eingabe von Befehlen aus einer Sprache oder dem Betriebssystem ermöglicht, um Aktionen auf dem Server auszuführen.

Ein Angreifer sendet Schadcode oder einen Befehl über ein Textfeld einer Webanwendung, die vom Webserver ausgeführt wird. Sehen wir uns ein Beispiel an, mit dem Sie Verzeichnisse mit dem Linux-Befehl ls auflisten können, den wir wie folgt schreiben:

 

VERGRÖSSERN

Das Ergebnis ist die Liste aller Verzeichnisse auf dem Server, daher müssen wir überprüfen, dass keine Befehle eingegeben werden können.

VERGRÖSSERN

Eines der Tools, das uns das bWAPP-Projekt vorschlägt, ist ZAP (Zed Attack Proxy). Dieses Tool haben wir im Tutorial Eine Website-Schwachstelle mit ZAP scannen gesehen. Es wird häufig verwendet, um Schwachstellen zu scannen und Penetrationstests auf Websites durchzuführen . Die aktuellste Version können wir unter folgendem Link herunterladen:

ZAP HERUNTERLADEN

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

VERGRÖSSERN

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

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

VERGRÖSSERN

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

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 kennen und zu testen und dieses Wissen dann auf unserer Website anzuwenden und dient auch dazu, dass Spezialisten, Entwickler und Studenten Web-Schwachstellen entdecken und verhindern können.

bWAPP wird häufig für Penetrationstests von Webanwendungen und ethische Hacking-Projekte verwendet. bWAPP deckt alle wichtigen bekannten Web-Schwachstellen ab, einschließlich aller Risiken des OWASP Top 10-Projekts, das von Jahr zu Jahr Schwachstellen in 10 Kategorien sammelt.

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

wave wave wave wave wave