SQL-Injection ist eine der häufigsten Methoden, mit denen *** die Datenbank angreift. Ihre Kernidee besteht darin: *** Erstellen Sie einen Datenbankabfragecode nach der normalen URL, die zum Aufrufen der Datenbankdaten benötigt wird, und basieren Sie dann auf den zurückgegebenen Ergebnisse, also Holen Sie sich einige Daten, die Sie wollen. Als nächstes werden wir SQL-Injection-Schwachstellen nutzen, um die bereits erstellte ***-Plattform anzugreifen und das Konto und das Passwort des Website-Administrators abzurufen. IP-Adresse des Zielservers: 192.168.80.129, *** Host-IP-Adresse: 192.168.80.128.
(1) Finden Sie den Injektionspunkt
Öffnen Sie eine Webseite und achten Sie auf die URL.
Der Injektionspunkt muss eine Seite wie „http://192.168.80.129/shownews.asp?id=7“ sein, auf der ein Befehlsaufruf erfolgt. „shownews.asp?id=7“ ist der übergebene Wert von der Seite, d. h. Übergeben Sie „id=7“ zur Verarbeitung an die Seite „shownews.asp“.
Zu Testzwecken können wir nach dieser URL and 1=1 und and 1=2 hinzufügen.
http://192.168.80.129/shownews.asp?id=7 und 1=1 kann die Webseite weiterhin normal angezeigt werden.
http://192.168.80.129/shownews.asp?id=7 und 1=2, die Webseite kann nicht normal angezeigt werden.
Dies zeigt, dass „asp?“ auch das „and 1=1“ aufruft, das wir als Befehlsparameter hinzugefügt haben. Dann können wir einige SQL-Anweisungen erstellen, die aufgerufen und ausgeführt werden, um die erforderlichen Informationen zu erhalten. Eine solche Webseite, die Befehlsparameter aufrufen kann, wird als Injektionspunkt bezeichnet.
(2) Erraten Sie den Tabellennamen
***Der Hauptzweck der Website *** besteht darin, den Benutzernamen und das Passwort des Website-Administrators zu erhalten. Der Benutzername und das Passwort werden in einer Tabelle in der Hintergrunddatenbank gespeichert. Also müssen wir zuerst erraten, wie diese Datentabelle heißt.
Die am häufigsten verwendeten Tabellennamen sind admin und admin_user. Wir können eine solche Anweisung nach der Injektionspunkt-URL hinzufügen, um den Tabellennamen zu erraten:
http://192.168.80.129/shownews.asp?id=7 und (select count(*) from admin) > 0
"select count(*) from admin" bedeutet, dass gezählt wird, wie viele Datensätze in der Admin-Tabelle vorhanden sind. Wenn die Admin-Tabelle vorhanden ist, erhält diese Anweisung einen Wert. Solange dieser Wert mit 0 verglichen wird, ist das Ergebnis korrekt und die Webseite sollte normal angezeigt werden. Im Gegenteil, wenn die Admin-Tabelle nicht vorhanden ist, erhält „select count(*) from admin“ keinen Wert. Im Vergleich zu >0 wird das Ergebnis nicht erstellt und die Webseite wird nicht normal angezeigt.
Wenn die Webseite nicht normal angezeigt werden kann, können Sie einen anderen Tabellennamen ausprobieren, bis sie normal angezeigt wird:
http://192.168.80.129/shownews.asp?id=7 und (wählen Sie count(*) aus admin_user) > 0
http://192.168.80.129/shownews.asp?id=7 und (select count(*) from manage_user) > 0
Der Tabellenname dieser Website ist manage_user.
Zu den gebräuchlichen Tabellennamen gehören hauptsächlich: admin sysadmin manger admin123 webadmin member manage_user
Hinweis: Wenn Sie den Tabellennamen wirklich nicht erraten können, können Sie auch Tools wie Mingxiaozi zur Hilfe verwenden.
(3) Erraten Sie die Anzahl der Felder
Der nächste Schritt besteht darin, zu erraten, welches Feld in dieser Tabelle den Benutzernamen und das Passwort speichert. Zunächst müssen Sie wissen, wie viele Felder es in der Datentabelle gibt .
Die Anweisung „Ordnen nach“ wird hier verwendet. Die ursprüngliche Bedeutung von „Ordnen nach“ besteht darin, nach einem bestimmten Feld zu sortieren Die Seite wird normal angezeigt. Andernfalls bedeutet dies, dass das 10. Feld nicht vorhanden ist, wenn die Webseite nicht normal angezeigt werden kann.
http://192.168.80.129/shownews.asp?id=7 order by 11
Mit dieser Methode können wir erraten, dass diese Tabelle insgesamt 11 Felder enthält.
(4) Erraten Sie den Feldnamen
Der nächste Schritt besteht darin, herauszufinden, in welchem Feld der Benutzername und das Passwort gespeichert sind. Hier wird die gemeinsame Abfrageanweisung „Union Select“ verwendet.
http://192.168.80.129/shownews.asp?id=7 union select 1,2,3,4,5,6,7,8,9,10,11 from manage_user
Hier wird der Benutzername gespeichert und das Passwortfeld erscheint.
Das Feld, in dem der Benutzername gespeichert ist, heißt im Allgemeinen Benutzername, und das Feld, in dem das Passwort gespeichert ist, wird im Allgemeinen als Passwort bezeichnet. Ersetzen Sie das 2. und 3. Feld durch diese beiden Namen:
http://192.168.80.129/shownews .asp? id=7 Union Select 1,Benutzername,Passwort,4,5,6,7,8,9,10,11 von manage_user
Der Benutzername und das Passwort werden zu diesem Zeitpunkt angezeigt.
(5) Erraten Sie den Hintergrundverwaltungseingang
Diese Southern Data-Vorlage Version 2.0 enthält bereits einen Link namens „Administrator-Login“. Heutzutage ist dies auf den meisten Websites nicht der Fall, daher müssen wir im Allgemeinen aufgrund unserer Erfahrung raten, dass der Verwaltungszugang im Unterverzeichnis der Website mit dem Namen „admin“ gespeichert ist Es wird automatisch das Verwaltungsportal angezeigt.
Hier können Sie sich mit dem zuvor bekannt gegebenen Administratorkonto und Passwort anmelden, das Passwort „3acdbb255b45d296“ ist jedoch offensichtlich durch MD5 verschlüsselt.
Das obige ist der detaillierte Inhalt vonSo implementieren Sie die manuelle SQL-Injection. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!