Heim  >  Artikel  >  Datenbank  >  Ein kurzes Verständnis der blinden SQL-Injection

Ein kurzes Verständnis der blinden SQL-Injection

WBOY
WBOYnach vorne
2022-06-01 11:47:274903Durchsuche

Dieser Artikel vermittelt Ihnen relevantes Wissen über SQL, in dem hauptsächlich verwandte Probleme der Blindinjektion vorgestellt werden. Bei der Blindinjektion werden die in der Datenbank abgefragten Datenergebnisse in einzelne Zeichen gekürzt und dann wie folgt logische Anweisungen zusammengesetzt. Schauen wir uns das an Ich hoffe, es wird für alle hilfreich sein.

Ein kurzes Verständnis der blinden SQL-Injection

Empfohlene Studie: „SQL-Tutorial

SQL-Injektion – Blindinjektion

1. Überprüfung

Echo-Injection wird hauptsächlich für die direkte Anzeige von Daten in der Datenbank auf der Website-Seite verwendet.
Fehlerinjektion wird hauptsächlich verwendet, wenn die ursprünglichen Fehlerinformationen auf der Website-Seite vorhanden sind und die Daten in der Datenbank in den ursprünglichen Fehlerinformationen angezeigt werden. Wird auch als Fehlerecho bezeichnet.
Prinzip: Da der Benutzer unkontrollierbare Eingaben hat, kann der Angreifer willkürlich bösartige SQL-Anweisungen eingeben, wodurch sich die SQL-Semantik ändert und dadurch Risiken für die Datenbank und das Betriebssystem entstehen.

Risiken: Datenmanipulation, Anmeldeumgehung, Dateimanipulation, Befehlsausführung, Registrierungsmanipulation.

Verteidigung: Filterung, Vorkompilierung.

2. Blind-Injection-Schwachstellenszenario

1 Die Daten in der Datenbank werden nicht direkt auf der Seite angezeigt. Die Ergebnisse werden nach der Beurteilung auf der Seite ausgegeben. Zum Beispiel das Anmeldefeld
2. Die Syntax zum Einfügen, Aktualisieren und Löschen verfügt nicht über die Datenabfragefunktion und die Daten in der Datenbank sind auf der Seite nicht vorhanden. Wie Registrierung, Informationsänderung, Datenergänzung

3. Blindinjektionsprinzip

Kern
Kürzen Sie die in der Datenbank abgefragten Datenergebnisse in einzelne Zeichen und erstellen Sie dann zusammen logische Anweisungen. Das Ergebnis der Abfrage in der Datenbank wird beurteilt, indem beurteilt wird, ob die Seitenanzeige abnormal ist oder ob die Seite demonstriert wird.

4. Klassifizierung

1. Wenn die entsprechenden Daten in der Datenbank gefunden werden können, wird die Seite normal angezeigt, andernfalls ist sie abnormal.

2. Zeitblinde Injektion

Unabhängig davon, welche Daten eingegeben werden, ist der Effekt der Seite genau derselbe. Die Ergebnisse der Abfrage in der Datenbank können anhand der Verzögerung der Seite beurteilt werden.

5. Prozess

1. Finden Sie den vermuteten Injektionspunkt, suchen Sie den Eingabepunkt und finden Sie den Ort, der mit der Datenbank interagiert. 2. Stellen Sie fest, ob eine bösartige SQL-Anweisung vorliegt Die Antwortinformationen der Seite entsprechen den Erwartungen. Dies weist darauf hin, dass eine Injektion vorliegt.

3. Holen Sie sich den Datenbanknamen

1.获取当前数据库名
	and ascii(substr((select database()),1,1))=115
2.获取所有数据库名
	and (select ascii(substr(group_concat(schema_name),1,1)) from information_schema.schemata)>0

3. Berechnen Sie die Länge der zu erhaltenden Daten
and (select length(group_concat(schema_name)) from information_schema.schemata)>10 --+

4. Holen Sie sich die Tabelle

5. Holen Sie sich die Spalten

6. Holen Sie sich die Daten

6. Zeitblinde Injektion

and if(((select database())='a'),sleep(5),0)--+

7. Zusammenfassung

OK Zeitblinde Injektion kann überall dort erfolgen, wo Echo, Fehlerberichterstattung oder Bool-Injektion auftritt. Wenn das Gegenteil nicht möglich ist, kann Bool-Blindinjektion dort auftreten, wo Echoberichterstattung und Fehlerberichterstattung erfolgen, aber nicht umgekehrt.

8.sqlmap

SQL-Injection-Automatisierungstool, entwickelt in Python2, kompatibel mit Python3. Die Verwendung von SQLMAP simuliert tatsächlich den Anforderungsprozess von Personen auf der Website und kann die erhaltenen Daten sammeln, analysieren und anzeigen.

python sqlmap.py -h	查看sqlmap可使用的参数
                 -u 网站的url	向sqlmnap提供注入点

–dbs Alle Datenbanknamen abrufenEin kurzes Verständnis der blinden SQL-Injection

Ein kurzes Verständnis der blinden SQL-Injection-D Bibliothekstabellen angeben Informationen zu allen Tabellen in der angegebenen Datenbank abrufen


Ein kurzes Verständnis der blinden SQL-Injection-D Bibliothek angeben-T Tabellenspalten angeben


Ein kurzes Verständnis der blinden SQL-Injection -D gibt die Bibliothek an. -T gibt die Tabelle an. -C Spalte 1, Spalte 2 --dump


Ein kurzes Verständnis der blinden SQL-Injection-r 'Dateiname'


Ein kurzes Verständnis der blinden SQL-InjectionEmpfohlenes Lernen: „

SQL-Tutorial

Das obige ist der detaillierte Inhalt vonEin kurzes Verständnis der blinden SQL-Injection. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:csdn.net. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen