Heim > Artikel > Backend-Entwicklung > Manuelle DVWA-Injektion von PHP+MySQL
Der Inhalt dieses Artikels handelt von der manuellen Injektion von PHP+MySQL in DVWA. Jetzt kann ich ihn mit allen teilen, die ihn benötigen
Die DVWA-Sicherheitsstufe ist niedrig. Beim Aufrufen der SQL-Injection-Seite werden Sie aufgefordert, die Benutzer-ID einzugeben. Wenn Sie die richtige ID eingeben, werden die Informationen zum Vor- und Nachnamen der ID angezeigt.
Versuchen Sie, „'“ einzugeben, und es wird ein Fehler zurückgegeben. Einspritzpunkte sind vorhanden.
Versuchen Sie, die Datenbanktabelle zu durchlaufen, und der Eingabewert ist ID. Zunächst wird festgestellt, dass es sich um eine numerische Injektion handelt. Geben Sie Folgendes ein: 1 oder 1 = 1 und versuchen Sie, die Datenbanktabelle zu durchlaufen. Das Ergebnis ist fehlgeschlagen.
1 oder 1=1 konnte die Datenbanktabelle nicht durchlaufen. Das Rateprogramm betrachtete dies als einen Zeichentyp. Sie können versuchen, 1' oder '1'='1 einzugeben und dann den gesamten Inhalt in der Datenbank zu durchlaufen. Versuchen wir, verschiedene Aussagen zu kombinieren, um unterschiedliche Ergebnisse zu erzielen.
Verwenden Sie zur Abfrage die Order-by-Anweisung und geben Sie 1' ein. Reihenfolge nach 1 - - Die Seite wird normal angezeigt, 1'Reihenfolge nach 2 - - wird normal angezeigt, 1'Reihenfolge nach 3 - - Es wird ein Fehler gemeldet und der Abfrageergebniswert wird als 2 Spalten beurteilt. (Beachten Sie, dass in der Anweisung nach - - ein Leerzeichen steht und zwischen - - kein Leerzeichen steht)
Verwenden Sie die drei integrierten Funktionen user(), Database() und Version(), um den Datenbankkontonamen, den Datenbanknamen und die Datenbankversionsinformationen abzurufen. Zuerst Parameterinjektion 1' und 1=2 Union Select 1,2 - -(Es gibt kein Leerzeichen zwischen - - und es gibt ein Leerzeichen nach - -). Es wird erreicht, dass der Vorname als Wert der ersten Spalte des Abfrageergebnisses und der Nachname als Wert der zweiten Spalte des Abfrageergebnisses angezeigt wird.
Nachdem Sie die Anzeige kennen, verwenden Sie user(), Datenbank (),version(),Anweisung 1' und 1=2 Union select user(),database() - - Den Datenbankbenutzer und den Datenbanknamen abrufen. Der Benutzer, der eine Verbindung zur Datenbank herstellt, ist root@localhost und der Datenbankname ist dvwa.
Durch Injektion von 1' und 1=2 Union Select-Version (),database() - - Holen Sie sich die Datenbankversion: 5.0.90-community-nt.
Durch Injektion: 1'und 1=2 Union wählen Sie 1,@@global.version_compile_os aus mysql.user aus – Operation abrufen Die Systeminformationen sind win32.
durch Einfügen von: 1' und 1=2 Union select 1,schema_name from information_schema.schemata - - Fragen Sie die MySQL-Datenbank ab, alle Datenbanknamen. Hier wird die MySQL-Standarddatenbank information_scehma verwendet, die Informationen zu allen MySQL-Datenbanken und -Tabellen speichert.
Durch Einfügen von 1' und exist(wählen Sie * aus Benutzern) - - Erraten Sie den Tabellennamen in der dvwa-Datenbank (der Tabellenname in dieser Anweisung lautet „Benutzer“, die Tabelle ist nicht tatsächlich gespeichert (Benutzername und Passwort)
Erraten Sie den Feldnamen : 1' und existiert (Feldnamen aus Tabellennamen auswählen) - -, hier werden tatsächlich die Feldnamen Vorname und Nachname getestet. Die eigentlichen Anweisungen 1' und exist(wählen Sie den Vornamen der Benutzer aus) - - und 1' und existiert (wählen Sie den Nachnamen der Benutzer aus) - - erraten Sie den Feldnamen.
Machen Sie den Inhalt der Felder in der Datenbank verfügbar. 1' und 1=2 Union wählen Vornamen und Nachnamen von Benutzern aus. - - Wenn es sich tatsächlich um eine Tabelle handelt, in der Administratorkonten gespeichert sind, können Benutzername und Passwort angezeigt werden.
Quellcode
Verwandte Empfehlungen:
Lesen Sie den DVWA-Systemcode config.inc.php
Das obige ist der detaillierte Inhalt vonManuelle DVWA-Injektion von PHP+MySQL. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!