Parlons du simple processus d'injection SQL manuelle
Cet article vous aborde les problèmes liés à l'injection manuelle dans SQL, y compris les problèmes liés à la détermination du point d'injection et à la détermination du type d'injection. J'espère qu'il sera utile à tout le monde.
Déterminer le point d'injection
1. Méthode des guillemets simples : ajoutez un guillemet simple directement après l'URL. Si la page ne peut pas s'afficher normalement et que le navigateur renvoie des informations d'exception, cela signifie que le lien peut avoir un SQL. vulnérabilité d'injection
2.1 =1 et 1=2 : Ajoutez et 1=1 au paramètre get après l'URL, l'affichage est normal, remplacez 1=1 par 1=2, l'affichage est anormal, indiquant qu'il y a une injection SQL dans la page Web.
Déterminez le type d'injection
1. Injection numérique : la valeur de la variable injectée n'a pas besoin d'être mise entre guillemets, comme
select * from user where id=$id;
2 Injection de caractères : la variable injectée sera entourée de guillemets, comme `.
select * from user where username='$username';`
Faites attention lors de l'injection. Fermez les guillemets.
3. Injection de recherche :
select * from user where username like '%$pass%';
Construisez l'instruction SQL comme
select * from user where username like '%$pass%' union select语句 '%%';
C'est-à-dire que la variable transférée est pass%' union select instruction '% pour former une fermeture.
Déterminez la méthode de soumission du point d'injection
Déterminez si la méthode de soumission du point d'injection est get, post ou cookie en capturant les paquets.
Utilisez order by pour interroger les champs
Utilisez l'instruction order by pour interroger le nombre de champs qu'il y a dans la base de données. Vous pouvez déterminer le nombre de champs de la base de données grâce à des tentatives constantes. Par exemple, lorsque vous saisissez oeder by 9, la page signale un. erreur et lors de la saisie de l'ordre par 8, la page L'affichage est normal, c'est à dire qu'il y a 8 champs dans la base de données.
Par exemple, l'instruction de requête est : select * from user which id='$id';
select * from user where id='$id';
可以构造下面的输入:(id = ') ' order by 3 '+--+
即查询语句为:select * from user where id='' order by 3 '--'
使用联合查询来查询当前数据库、用户、版本信息
使用 union select 语句来查询当前使用用户 user() , 数据库database() ,数据库版本 version() ,服务器操作系统的@@version_compile_os等信息
version版本十分重要,如果版本在5.0以上,就可以使用information_schema库来轻易的查询想要的信息
构造语句:
select * from user where id='' union select user(),database(),version()+--+;
查询当前数据库中的表,列和值
5.0 版本以上的mysql数据库自带的information_schema库中存储着数据库中所有的表名和列明信息。
下面我们就应该根据第五步查询的当前数据库的结果(如数据库为database_1)名下所有的表名tables的信息。Information_schema.tables
:记录着数据库中所有表名信息的表。
构造的查询语句如下:
Select * from user where id='' union select 1,group_concat(table_name),3 from information_schema.tables where table_schema=database_1;--
查询的结果为:第五步查询的当前数据库中的表名信息。Information_schema.columns:
L'entrée suivante peut être construite : (id = ') ' order by 3 '+ --+<br> Autrement dit, l'instruction de requête est : <code>select * from user which id='' order by 3 '--'
Utilisez la requête union pour interroger la base de données actuelle, utilisateur et informations de version
Utiliser union L'instruction select est utilisée pour interroger l'utilisateur actuel user(), la base de données base de données(), la version de la base de données version(), @@version_compile_os et d'autres informations sur le système d'exploitation du serveur. très important. Si la version est supérieure à 5.0, vous pouvez utiliser la bibliothèque information_schema pour interroger facilement les informations souhaitées
Construisez l'instruction :Select * from user where id='' union selcet 1,group_concat(column_name),3 from information_schema.columns where table_name=table_1;--
Information_schema.tables
: une table qui enregistre toutes les informations sur le nom de la table dans la base de données. 🎜 L'instruction de requête construite est la suivante : 🎜Selcet * from user where id='' union select 1,column_1,column_2 from tables;--
Information_schema.columns :
enregistre les informations de nom de colonne de toutes les tables de la base de données ; 🎜 Ensuite, vous devez interroger les informations de nom de colonne en fonction des informations de nom de table obtenues à partir de la requête ci-dessus (par exemple, le table est table_1). L'instruction de construction est la suivante : 🎜rrreee🎜Après avoir interrogé le nom de la colonne, vous pouvez directement trouver les informations stockées dans la table via une requête conjointe (par exemple, les noms de colonnes trouvés sont column_1, column_2). Construisez l'instruction 🎜rrreee🎜 pour interroger la désignation de base de données spécifiée Données de stockage de table 🎜🎜Apprentissage recommandé : 🎜Tutoriel vidéo MySQL🎜🎜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!

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

Video Face Swap
Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds











HQL et SQL sont comparés dans le framework Hibernate : HQL (1. Syntaxe orientée objet, 2. Requêtes indépendantes de la base de données, 3. Sécurité des types), tandis que SQL exploite directement la base de données (1. Normes indépendantes de la base de données, 2. Exécutable complexe requêtes et manipulation de données).

Oracle et DB2 sont deux systèmes de gestion de bases de données relationnelles couramment utilisés, chacun possédant sa propre syntaxe et ses propres caractéristiques SQL. Cet article comparera et différera la syntaxe SQL d'Oracle et de DB2, et fournira des exemples de code spécifiques. Connexion à la base de données Dans Oracle, utilisez l'instruction suivante pour vous connecter à la base de données : CONNECTusername/password@database Dans DB2, l'instruction pour vous connecter à la base de données est la suivante : CONNECTTOdataba.

"Utilisation de l'opération de division dans OracleSQL" Dans OracleSQL, l'opération de division est l'une des opérations mathématiques courantes. Lors de l'interrogation et du traitement des données, les opérations de division peuvent nous aider à calculer le rapport entre les champs ou à dériver la relation logique entre des valeurs spécifiques. Cet article présentera l'utilisation de l'opération de division dans OracleSQL et fournira des exemples de code spécifiques. 1. Deux méthodes d'opérations de division dans OracleSQL Dans OracleSQL, les opérations de division peuvent être effectuées de deux manières différentes.

Interprétation des balises SQL dynamiques MyBatis : explication détaillée de l'utilisation des balises Set MyBatis est un excellent cadre de couche de persistance. Il fournit une multitude de balises SQL dynamiques et peut construire de manière flexible des instructions d'opération de base de données. Parmi elles, la balise Set est utilisée pour générer la clause SET dans l'instruction UPDATE, qui est très couramment utilisée dans les opérations de mise à jour. Cet article expliquera en détail l'utilisation de la balise Set dans MyBatis et démontrera ses fonctionnalités à travers des exemples de code spécifiques. Qu'est-ce que Set tag Set tag est utilisé dans MyBati

Qu'est-ce que l'identité en SQL ? Des exemples de code spécifiques sont nécessaires. En SQL, l'identité est un type de données spécial utilisé pour générer des nombres à incrémentation automatique. Il est souvent utilisé pour identifier de manière unique chaque ligne de données dans une table. La colonne Identité est souvent utilisée conjointement avec la colonne clé primaire pour garantir que chaque enregistrement possède un identifiant unique. Cet article détaillera comment utiliser Identity et quelques exemples de code pratiques. La manière de base d'utiliser Identity consiste à utiliser Identit lors de la création d'une table.

Solution : 1. Vérifiez si l'utilisateur connecté dispose des autorisations suffisantes pour accéder ou utiliser la base de données, et assurez-vous que l'utilisateur dispose des autorisations appropriées ; 2. Vérifiez si le compte du service SQL Server est autorisé à accéder au fichier spécifié ou ; dossier et assurez-vous que le compte dispose des autorisations suffisantes pour lire et écrire le fichier ou le dossier ; 3. Vérifiez si le fichier de base de données spécifié a été ouvert ou verrouillé par d'autres processus, essayez de fermer ou de libérer le fichier et réexécutez la requête ; . Essayez en tant qu'administrateur, exécutez Management Studio en tant que etc.

Concurrence en technologie de base de données : quelles sont les différences entre Oracle et SQL ? Dans le domaine des bases de données, Oracle et SQL Server sont deux systèmes de gestion de bases de données relationnelles très respectés. Bien qu’elles appartiennent toutes deux à la catégorie des bases de données relationnelles, il existe de nombreuses différences entre elles. Dans cet article, nous examinerons les différences entre Oracle et SQL Server, ainsi que leurs fonctionnalités et avantages dans les applications pratiques. Tout d'abord, il existe des différences de syntaxe entre Oracle et SQL Server.

Comment utiliser les instructions SQL pour l'agrégation de données et les statistiques dans MySQL ? L'agrégation des données et les statistiques sont des étapes très importantes lors de l'analyse des données et des statistiques. En tant que puissant système de gestion de bases de données relationnelles, MySQL fournit une multitude de fonctions d'agrégation et de statistiques, qui peuvent facilement effectuer des opérations d'agrégation de données et de statistiques. Cet article présentera la méthode d'utilisation des instructions SQL pour effectuer l'agrégation de données et les statistiques dans MySQL, et fournira des exemples de code spécifiques. 1. Utilisez la fonction COUNT pour compter. La fonction COUNT est la plus couramment utilisée.
