Table des matières
Déterminer le point d'injection
Déterminez le type d'injection
Déterminez la méthode de soumission du point d'injection
Utilisez order by pour interroger les champs
使用联合查询来查询当前数据库、用户、版本信息
查询当前数据库中的表,列和值
Maison base de données SQL Parlons du simple processus d'injection SQL manuelle

Parlons du simple processus d'injection SQL manuelle

Jan 28, 2022 pm 05:02 PM
sql

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.

Parlons du simple processus d'injection SQL manuelle

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

2 Injection de caractères : la variable injectée sera entourée de guillemets, comme `.

select * from user where username='$username';`
Copier après la connexion

Faites attention lors de l'injection. Fermez les guillemets.
3. Injection de recherche :

select * from user where username like '%$pass%';
Copier après la connexion

Construisez l'instruction SQL comme

select * from user where username like '%$pass%' union select语句 '%%';
Copier après la connexion

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

查询当前数据库中的表,列和值

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

查询的结果为:第五步查询的当前数据库中的表名信息。
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;--
Copier après la connexion
Interrogez les tables, colonnes et valeurs​​dans la base de données actuelle La bibliothèque information_schema fourni avec la base de données MySQL version 5.0 ou supérieure stocke tous les noms de tables et les informations répertoriées dans la base de données. 🎜 Ensuite, nous devons vérifier les informations de toutes les tables nommées tables en fonction du résultat de la requête de base de données actuelle à l'étape 5 (par exemple, la base de données est database_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;--
Copier après la connexion
🎜Le résultat de la requête est : les informations sur le nom de la table dans la base de données actuelle interrogées à la cinquième étape. 🎜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!

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

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

Video Face Swap

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

<🎜>: Dead Rails - Comment apprivoiser les loups
4 Il y a quelques semaines By DDD
Niveaux de force pour chaque ennemi et monstre de R.E.P.O.
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
<🎜>: Grow A Garden - Guide de mutation complet
2 Il y a quelques semaines By DDD

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

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

Sujets chauds

Tutoriel Java
1656
14
Tutoriel PHP
1257
29
Tutoriel C#
1229
24
Quelle est la différence entre HQL et SQL dans le framework Hibernate ? Quelle est la différence entre HQL et SQL dans le framework Hibernate ? Apr 17, 2024 pm 02:57 PM

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).

Comparaison et différences de syntaxe SQL entre Oracle et DB2 Comparaison et différences de syntaxe SQL entre Oracle et DB2 Mar 11, 2024 pm 12:09 PM

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 Oracle SQL Utilisation de l'opération de division dans Oracle SQL Mar 10, 2024 pm 03:06 PM

"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.

Explication détaillée de la fonction Définir la balise dans les balises SQL dynamiques MyBatis Explication détaillée de la fonction Définir la balise dans les balises SQL dynamiques MyBatis Feb 26, 2024 pm 07:48 PM

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

Que signifie l'attribut d'identité dans SQL ? Que signifie l'attribut d'identité dans SQL ? Feb 19, 2024 am 11:24 AM

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.

Comment résoudre l'erreur 5120 dans SQL Comment résoudre l'erreur 5120 dans SQL Mar 06, 2024 pm 04:33 PM

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 ? Concurrence en technologie de base de données : quelles sont les différences entre Oracle et SQL ? Mar 09, 2024 am 08:30 AM

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 ? Comment utiliser les instructions SQL pour l'agrégation de données et les statistiques dans MySQL ? Dec 17, 2023 am 08:41 AM

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.

See all articles