Maison  >  Article  >  Opération et maintenance  >  Qu’est-ce que l’injection d’octets larges dans l’injection SQL ?

Qu’est-ce que l’injection d’octets larges dans l’injection SQL ?

王林
王林avant
2023-05-17 15:37:141526parcourir

Injection d'octets larges : c'est un moyen de contourner l'injection SQL

1. Concept d'octets larges :

1 Jeu de caractères à un octet : tous les caractères sont représentés par un octet, comme le codage ASCII (0-127)

. Dans un jeu de caractères multi-octets, certains caractères sont composés de plusieurs octets, tandis que d'autres caractères sont représentés par un seul octet (certains caractères peuvent ne pas avoir une représentation sur un seul octet).

3. Encodage UTF-8 : il s'agit d'une méthode d'encodage (encodage multi-octets). Elle peut utiliser 1 à 4 octets pour représenter un symbole, et la longueur de l'octet change en fonction des différents symboles.

4. Octets larges communs : GB2312, GBK, GB18030, BIG5, Shift_JIS GB2312 n'a pas d'injection d'octets larges et les codes avec injection d'octets larges peuvent être collectés.

5. Lors de l'utilisation de l'injection d'octets larges, une fonctionnalité de MySQL est utilisée. Lors de l'utilisation de l'encodage GBK, deux caractères seront considérés comme un caractère chinois

2. caractères prédéfinis Ajoutez une barre oblique inverse avant la chaîne.

2. Caractères prédéfinis : guillemet simple ('), guillemet double ("), barre oblique inverse (), NULL

3. Exemple

https://xxxxx?name=hello%27

Qu’est-ce que l’injection d’octets larges dans l’injection SQL ?Input Les guillemets simples sont échappé et ne peut pas être échappé

Ensuite, j'ai regardé le code source de la page et les en-têtes de requête et j'ai découvert que le code client est gbk

Qu’est-ce que l’injection d’octets larges dans l’injection SQL ?Lorsque j'ai essayé de saisir hello%df%27, la console a signalé une erreur indiquant que les guillemets étaient non fermé, suivi de Construisez le code js supplémentaire et commentez les caractères suivants pour que la syntaxe soit correcte

Qu’est-ce que l’injection d’octets larges dans l’injection SQL ? 3. Combat réel au stand de tir

1 Ouvrez d'abord la page, consultez les informations de maintenance, cliquez dedans et. observez qu'il a le paramètre id, car la question Cela signifie une injection d'octets larges

Qu’est-ce que l’injection d’octets larges dans l’injection SQL ?2. Entrez directement la méthode de contournement classique d'injection d'octets larges : %df', et vous verrez la page d'erreur,

Qu’est-ce que l’injection d’octets larges dans l’injection SQL ?3. modifiez le paramètre id dans SQLmap pour une détection régulière

Qu’est-ce que l’injection d’octets larges dans l’injection SQL ?4. Le mot de passe est crypté par MD5. Après le décryptage, vous pouvez obtenir le mot de passe de connexion et vous pouvez obtenir la CLÉ après vous être connecté

.

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