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.
Empfohlene Studie: „SQL-Tutorial“
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.
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
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.
1. Wenn die entsprechenden Daten in der Datenbank gefunden werden können, wird die Seite normal angezeigt, andernfalls ist sie abnormal.
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.
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
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)--+
8.sqlmap
python sqlmap.py -h 查看sqlmap可使用的参数 -u 网站的url 向sqlmnap提供注入点
–dbs Alle Datenbanknamen abrufen
-D Bibliothekstabellen angeben Informationen zu allen Tabellen in der angegebenen Datenbank abrufen
-D Bibliothek angeben-T Tabellenspalten angeben
-D gibt die Bibliothek an. -T gibt die Tabelle an. -C Spalte 1, Spalte 2 --dump
-r 'Dateiname'
Empfohlenes Lernen: „
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!