Web5 : Injection SQL – Quelques techniques pour contourner les mécanismes de filtrage

Web5 : Injection SQL – Quelques techniques pour contourner les mécanismes de filtrage

1. Tronquer le contenu de la requête

Si vous souhaitez ignorer les scripts de la requête. Par exemple, pour le traitement ci-dessous, la requête nécessite la condition active=1 mais on peut commenter (--, -- -, -+, #, /*, /**/, // , ;%00…) et ignorez-le. Lors du minage, nous ne savons souvent pas ce que fait le contenu restant de la requête, donc l'utilisation de commentaires dans ce cas est très efficace.

Web5 : Injection SQL – Quelques techniques pour contourner les mécanismes de filtrage

Après commentaire, notre requête devient :

Web5 : Injection SQL – Quelques techniques pour contourner les mécanismes de filtrage

2. Contourner le filtrage des mots clés

un. Commentaires en ligne

Les commentaires en ligne sont utilisés très efficacement pour contourner le filtrage des espaces blancs. Vous pouvez utiliser les caractères suivants pour contourner le filtrage des espaces : /**/, %20, %09, %0a, %0b, %0c, %0d, %a0). Par exemple:

Web5 : Injection SQL – Quelques techniques pour contourner les mécanismes de filtrage

Ou contournez le filtrage par mots clés (disponible avec MySql). Dans l'exemple ci-dessous, les mots-clés union et password sont dans la liste noire donc ils ont été bloqués. On peut le contourner en :

Web5 : Injection SQL – Quelques techniques pour contourner les mécanismes de filtrage

b. Remplacer les mots-clés

Lorsqu'on exploite l'injection SQL, nous utilisons souvent des mots-clés tels que : union, select, information_schema... Dans de nombreux cas, les programmeurs remplacent simplement ces mots-clés :

Web5 : Injection SQL – Quelques techniques pour contourner les mécanismes de filtrage

Nous pouvons facilement voir que le code de traitement ci-dessus fait défaut. S'il s'agit simplement d'une correspondance de modèles, le contournement est extrêmement simple. Appliquons la sensibilité à la casse, où les lettres majuscules et minuscules sont interprétées différemment.

Maintenant, au lieu d'utiliser le mot-clé :

select, union…

Nous utiliserons:

SeLEcT, UniOn…

La base de ce contournement est que les systèmes de gestion de bases de données ne font pas de distinction entre les cas et les mots-clés de cas.

Dans certains cas, l'application web filtrera tout ou partie de certains mots-clés (union, select...). Nous contournerons comme suit :

id=1+uniunionon+SeLselectecT+1,2,3-- -

Une fois l’union et la sélection filtrées par l’application Web, nous nous retrouverons avec la requête correcte comme suit :

id=1+union+SeLecT+1,2,3-- -

c. Encodage de caractère

Nous pouvons contourner le moment où WAF (Web Application Firewall) bloque les mots-clés en les codant. De nombreuses applications WAF ne décoderont la requête qu'une seule fois et filtreront les mots-clés de la liste noire, puis encoderons la requête deux fois afin qu'elle puisse être contournée dans ce cas.

Web5 : Injection SQL – Quelques techniques pour contourner les mécanismes de filtrage

3. Contourner les blocages des guillemets simples et doubles

- Regardons un exemple avant d'en savoir plus sur ce contournement.

Web5 : Injection SQL – Quelques techniques pour contourner les mécanismes de filtrage

Dans ce scénario, nous avons une table dans la base de données nommée utilisateurs. La tâche suivante consiste à connaître le nom de la colonne dans le tableau pour obtenir ses informations. Comme dans la requête ci-dessus, nous utilisons la condition : table_name='users'. Mais si les guillemets simples (') et les guillemets doubles (") sont bloqués par WAF, nous ne pouvons plus utiliser « utilisateurs » ou « utilisateurs ». Alors, comment résoudre ce problème ? Le système de base de données intégré nous offre une fonction qui résout très bien ce problème, qui est la fonction CHAR( ) (pour Oracle, c'est CHR()). Par exemple, dans la requête ci-dessus, nous la contournerons en :

Web5 : Injection SQL – Quelques techniques pour contourner les mécanismes de filtrageWeb5 : Injection SQL – Quelques techniques pour contourner les mécanismes de filtrage

Les programmeurs PHP connaissent très bien la fonction addlashes(). La fonction addlashes() a pour effet d'ajouter avant des caractères spéciaux tels que les guillemets simples ('), les guillemets doubles ("), les barres obliques inverses (\), le caractère NUL (octet nul) "\" pour aider le système de gestion de base de données. Existe-t-il pas de difficulté ni de confusion lors de la manipulation des chaînes contenant ces caractères ? Ainsi, lorsque l'on veut injecter dans la requête selon le script : name='someName' ou '1'='1'-- Les résultats ne sont plus ceux attendus.

Cependant, il existe une technique pour contourner la fonction addlashes() afin d'injecter des guillemets simples ('). Cette technique est publique depuis assez longtemps et sa mise en œuvre est assez difficile car elle est liée au style de codage appliqué au site Web.

4. Contournez l'erreur "Mélange illégal de classement pour l'opération UNION"

Dans certains systèmes de gestion (généralement trouvés dans MySql), lorsque les bases de données et les tables ont été définies sur collation, lors de l'utilisation du mot-clé UNION, l'erreur « mélange illégal de collation pour l'opération UNION » sera signalée. La définition du classement peut être due à l'intention du concepteur de base de données ou au paramètre par défaut de MySql. En cas d'utilisation de l'union, nous devons nous assurer que la condition de sélection de valeur dans chaque champ doit avoir le type de code correspondant défini. À mon avis, cette erreur est assez courante, notamment pour les CMS exécutant Apache MySql. Les gens peuvent en savoir plus sur : http://bugs.mysql.com/bug.php?id=57926.
Dans ce cas, nous pouvons utiliser des moyens de conversion vers le type de codage approprié.

Par exemple dans le cas suivant :

Web5 : Injection SQL – Quelques techniques pour contourner les mécanismes de filtrage

Dans la requête ci-dessus, si le classement de la colonne 1 est défini sur Unicode-UTF8 ou _latin1, par exemple, alors ce qui est sélectionné dans la colonne 2 devra être converti en code correspondant. On peut forcer le style comme suit :

Web5 : Injection SQL – Quelques techniques pour contourner les mécanismes de filtrage

Nous voyons un inconvénient à cette méthode de contournement : il faut savoir que le code collationné est _latin1. Une meilleure façon de le contourner, à mon avis, est d'utiliser les fonctions d'encodage et de décodage hexadécimal et non hexadécimal.

Web5 : Injection SQL – Quelques techniques pour contourner les mécanismes de filtrage

Il existe de nombreuses autres fonctions qui peuvent être utilisées à la place de hex et unhex.


Quelle est la vraie différence entre les VPN gratuits et payants ?

Quelle est la vraie différence entre les VPN gratuits et payants ?

Le réseau privé virtuel, ou VPN en abrégé, permet aux utilisateurs de se connecter en toute sécurité à un serveur via Internet et offre un anonymat complet pour surfer sur le Web. L'article d'aujourd'hui abordera les différences entre les VPN gratuits et les VPN payants afin que vous puissiez prendre la bonne décision.

Comment utiliser les emoji dans les noms de fichiers sous Windows 10

Comment utiliser les emoji dans les noms de fichiers sous Windows 10

Saviez-vous que les emojis fonctionnent presque partout de nos jours ? Vous pouvez les utiliser dans presque toutes les applications de votre ordinateur, même en les insérant dans les noms de fichiers et de dossiers sous Windows 10.

Comment mettre à niveau le micrologiciel du routeur sans fil ?

Comment mettre à niveau le micrologiciel du routeur sans fil ?

La mise à niveau du micrologiciel du routeur est toujours une bonne idée. Alors, comment mettre à niveau le micrologiciel du routeur sans fil ? Nous vous invitons à vous référer à cet article !

Sense Desktop : la meilleure horloge pour le bureau Windows 10

Sense Desktop : la meilleure horloge pour le bureau Windows 10

Sous Windows 10, il y a une horloge par défaut sur la barre des tâches, mais de nombreuses personnes la trouvent un peu petite par rapport à l'écran de leur ordinateur. Par conséquent, cet article vous présentera une excellente application d’horloge de bureau pour Windows 10.

Comment mettre à jour et réinstaller Realtek HD Audio Manager

Comment mettre à jour et réinstaller Realtek HD Audio Manager

Realtek HD Audio Manager est l'un des logiciels les plus populaires et les plus utiles dont les utilisateurs Windows disposent sur leur PC. Habituellement, il est installé sur le PC, mais les utilisateurs ne peuvent même pas le trouver à l'aide du moteur de recherche Windows.

Le WPA3 est-il un facteur pour assurer la sécurité des appareils intelligents ?

Le WPA3 est-il un facteur pour assurer la sécurité des appareils intelligents ?

WPA3 (Wi-Fi Protected Access 3), le « successeur » de WPA2, est l'une des meilleures normes de sécurité pour les appareils intelligents.

Comment tester le stress du disque dur de votre ordinateur ou serveur ?

Comment tester le stress du disque dur de votre ordinateur ou serveur ?

Voulez-vous savoir lequel de vos disques durs a la vitesse la plus rapide et s'il est vraiment aussi rapide que le promettent les fabricants ? Qu'il s'agisse d'un PC ou d'un serveur, l'utilitaire gratuit Diskspd testera et évaluera vos disques durs.

Comment bloquer ou débloquer des programmes sur le pare-feu Windows ?

Comment bloquer ou débloquer des programmes sur le pare-feu Windows ?

Il existe de nombreuses façons de bloquer un programme sur le système d'exploitation Windows, mais le moyen le plus efficace de bloquer une application ou un programme sous Windows consiste peut-être à utiliser le pare-feu Windows.

Résumé de 20 commandes dexécution courantes sur le système dexploitation Windows

Résumé de 20 commandes dexécution courantes sur le système dexploitation Windows

Windows fournit une série d'outils sur le Panneau de configuration afin que les utilisateurs puissent facilement personnaliser la plupart des paramètres. Cependant, l'accès au Panneau de configuration prend parfois un certain temps et vous pouvez utiliser un autre moyen plus rapide que via la commande Exécuter.

11 façons les plus simples douvrir le Gestionnaire des tâches sous Windows

11 façons les plus simples douvrir le Gestionnaire des tâches sous Windows

Le Gestionnaire des tâches contient de nombreuses applications utilitaires sur votre ordinateur, permettant aux utilisateurs de vérifier les applications, processus et services actuellement en cours d'exécution sur l'ordinateur. Les utilisateurs peuvent utiliser le Gestionnaire des tâches pour lancer, arrêter des programmes et arrêter des processus....