Remarque: Si elle est basée sur zéro, alors il doit être un haut ou vers le bas certainement le point d'apprendre un point ont beaucoup d'obstacles, a voulu commencer une surface finale de la baisse réelle est peu probable.
injection SQL ne suffit pas de savoir que je peux regarder un autre blog:
https://blog.csdn.net/weixin_45254208/article/details/105033276
Ne pas construire la plate - forme d'injection SQL peut également regarder mon autre blog: https://blog.csdn.net/weixin_45254208/article/details/104698495
Avant le besoin réel de maîtriser les bases:
Le contenu de ce qui précède deux pour blog juste faire comprendre aux gens simple injection SQL et l'environnement bâti, ces seuls deux points voulaient combattre gouttes certainement pas assez, vous avez aussi besoin de la base suivante:
1. L' apprentissage à base MYSQL
que vous pouvez apprendre est pas très profond, mais il faut comprendre la déclaration de base MYSQL (CRUD, et limite souvent utilisé) signifie. Internet partout peut apprendre déclaration MYSQL, beaucoup de gens ont écrit un blog, il y a des vidéos pédagogiques sur la station B, je ne pense pas, je pense, tant que l'Internet, vous pouvez jeter les bases de MYSQL
2. Rappelez - vous les trois nom de la table (Key)
Si vous avez une base MYSQL, alors vous savez des bases de données montrent sûr, cette commande, vous pouvez afficher toutes la base de données, qui contiendra information_schema, par défaut MYSQL stockées pour une base de données « information_schema » dans la base de données, vous devez vous rappeler 3 nom de la table dans la bibliothèque, sont schèmes, et les colonnades tAblEAUx .
Table schèmes:
tous les noms de base de données créé par l' utilisateur est enregistré, le nom du champ d'enregistrement de base de données nommée SCHEMA_NAME .
Tout d' abord, ouvrir phpMyAdmin, construire la plate - forme d'injection SQL en face du blog ont écrit comment aller
après l' entrée dans la gauche est la base de données de tous
cliquez dans la base de données de information_schema, trouver la table schèmes, vous pouvez voir le tableau SCHEMA_NAME champ est que toute la base de données suivante
TABLEAUX Tableau:
stockage nom de la bibliothèque créée par l' utilisateur et tous les noms de la table de base de données, comme le montre, les noms et les noms du référentiel enregistrement des champs de la table sont TABLE_SCHEMA et TABLE_NAME . (Cliquez sur Afficher Tout ce que vous ne pouvez pas tourner la page, voir directement tous les noms de bases de données et leurs noms de table correspondants)
table COLONNES:
nom de la bibliothèque toutes base de données stockant les noms de tables créés par l' utilisateur et les noms de champs, comme indiqué, les noms de magasin disques, les noms de champs et les noms des champs de la table est TABLE_SCHEMA, TABLE_NAME et COLUMN_NAME .
SQL combat:
Ouvrez phpstudy2018, démarrez le service, rappelez - vous phpstudy suivant le nom du dossier de la plate - forme d'injection SQL, où j'étais-labs-SQLI maître.
Accès plate - forme d'injection SQL, la première question à entrer dans
la police jaune fait l'objet de conseils: S'il vous plaît entrer l'ID en tant que paramètre avec une valeur numérique. Passez ensuite un? Id = 1 (? Utilisé pour séparer l'URL et les paramètres dans l'URL)
pas une erreur, et renvoie les informations
alors? Id = 1 retour plus' (généralement le premier essai de guillemets simples et erreur, en fait, double citations, barre oblique inverse, et peuvent donc l'essai numérique et erreur), les résultats du message d'erreur de vérification d'erreur « » 1 « » LIMITE 0,1 '
puisque l'information est donnée deux guillemets simples, deux extrémités simple pour mettre fin ainsi retiré la citation réelle est téléchargé, puis se débarrasser du problème peut être vu
dans l'ordre MYSQL par déclaration pour trier le jeu de résultats en fonction de la colonne spécifiée, le symbole de commentaire est deux - - un espace, mais pas dans l'url avec des espaces, les espaces dans l'URL est un signe plus + pour indiquer si le paramètre est transmis ?id=1' order by 3 --+
, puis , en fait , cela est au- dessous de
l'entrée et accéder à l' URL, le retour à la normale, décrits peuvent être triés selon le troisième champ, maintenant connu pour avoir trois champs
afin de 3 indique que le champ trié selon 3, l'ordre de 4 elle? 3 4 remplacé l'erreur, de sorte que la table seulement trois champs d'
une façon entrant ?id=0' union select 1,2,3--+
, jetez un oeil à Echo
select1,2,3 ici ne comprennent pas, il y a un bon blog peut les doutes: https: // Blog .csdn.net / weixin_44840696 / article / détails /
89166154 on peut le voir sur la figure 2 et on injecte le passage entre le passage 3, et l'extrémité avant de la base de données
2,3 au numérique n'interroge pas une base de données, simplement l' écho, il sera remplacé par la version 2,3 () et utilisateur ()
résultats font écho à une base de données de noms d'utilisateur et les versions de
l'utilisateur () base de données () a changé, voir le courant base de données
que la sécurité de base de données actuelle est
le nom de la base de données, connaît les noms de tables loin derrière? Suivant sera utilisé base de données précédemment mentionné information_schema dans trois de la table, donc je vais rapidement sur, cette fois -ci pour examiner la table d'épellation de lettres en minuscules, de toute façon, ne sont pas sensibles à la casse, minuscules facile à mémoriser les
requêtes de la sécurité de base de données table de données
?id=0' union select 1,group_concat(table_name),3 from information_schema.tables where table_schema=database() --+
Vérifiez - le, et même ces tableaux est
le nom du savoir de la table de données, les noms de champs loin derrière? Prenez les référants de table de données exemple
?id=0' union select 1,group_concat(column_name),3 from information_schema.columns where table_name='referers' --+
Verify, OK
champ connaissez le nom, la valeur du champ soit loin derrière? Tableau cas pour les utilisateurs, en plus de l'identifiant de clé primaire, il y a un nom d' utilisateur (nom d' utilisateur) et un mot de passe (mot de passe) deux champs
vérifier directement la valeur du champ (où les utilisateurs ne ont pas besoin les guillemets)
?id=0' union select 1,group_concat(username,password),3 from users --+
Requête succès
peut certainement être vu ici que l'utilisation initiale d'une vulnérabilité d'injection SQL peut voir la base de données qui a tant d' informations, il était un peu étonnant, de sorte que Mozhizhemowei ah, est vraiment de continuer à apprendre, d' autres gestes il y a beaucoup injecté, et je ne pas écrire. Le blog Un enregistrement de votre propre processus d'apprentissage par injection SQL, et , deuxièmement, de partager plus comme moi comme un tutoriel blanc à trois ... Trois est rien, il est Jiang Zi.