Injection SQL (SQLMap et manuel)

Une injection SQL est une vulnérabilité de sécurité dans les applications web qui survient lorsque des requêtes SQL malveillantes sont insérées dans des champs d'entrée pour manipuler une base de données sous-jacente. Cela permet à un attaquant d'accéder, de modifier ou de filtrer des données non autorisées. Des outils tels que SQLMap automatisent ce processus en identifiant et exploitant de telles vulnérabilités, effectuant des injections SQL de manière automatisée. Alternativement, les attaquants peuvent également effectuer des attaques d'injection SQL manuellement en manipulant directement les entrées pour obtenir un accès non autorisé à la base de données.

Injection SQL de manière automatisée (SQLMap)

  1. Interceptons une demande de recherche avec Burpsuite :

  1. Sauvegardons cette demande dans un fichier que nous appellerons request.req :

  1. Le fichier contient le contenu suivant :

  1. Avec l'outil SQLMap, lançons la commande suivante pour voir si ce site web est vulnérable à une attaque SQL :

  1. Avec cette commande, listons toutes les bases de données :

  1. Avec cette commande, listons toutes les tables d'une base de données spécifique :

  1. Avec cette commande, listons toutes les colonnes d'une table spécifique :

  1. Avec cette commande, visualisons le contenu des colonnes :

Si l'outil trouve des mots de passe chiffrés, il les déchiffre automatiquement :


Injection SQL de manière manuelle

  1. Interceptons une demande de recherche avec Burpsuite :

  1. Envoyons cette demande au Repeater :

  2. Dans le champ de recherche searchitem, ajouter ceci :

  1. Le serveur web nous indique qu'il n'y a pas autant de colonnes :

  1. Essayons jusqu'à ce qu'il n'y ait plus rien (dans ce cas, il y a 5 colonnes) :

  1. Nous savons maintenant qu'il y a 5 colonnes, maintenant avec la fonction union, nous allons les visualiser :

  • En cas de changement du nom de la 3e colonne, par exemple "test", il changera également :

  1. Cela signifie que si nous introduisons la fonction database() ou user(), le nom de la base de données ou le nom d'utilisateur qui exécute la base de données sera affiché :

CI-DESSOUS EST LA PROCÉDURE POUR LISTE MANUELLE :

  1. Listons toutes les bases de données :

  1. Listons toutes les tables d'une base de données spécifique :

  1. Listons toutes les colonnes d'une table spécifique :

  1. Visualisons le contenu des colonnes username et password (dans ce cas, nous utilisons les colonnes "product name" et "product type") :

  • Listons à nouveau le contenu des colonnes username et password :

  1. Copions le contenu dans la section Pretty de Burpsuite :

  1. Ouvrons l'éditeur de texte Nvim et collons le texte copié, puis utilisons cette commande pour le formater correctement : :%s/,/\r/g

  2. Avec cette commande, ne conservons que les hachages et copions-les dans le ClipBoart : cat data | awk '{print $2}' FS=":" | xclip -sel clip

  1. Enfin, avec le site web hashes, obtenons les mots de passe en texte brut :

Mis à jour

Ce contenu vous a-t-il été utile ?