J'étais juste en train de déconner avec SQLMap sur Kali et j'ai maintenant un --sql-Shell
sur la base de données principale. Avec cela, je me suis demandé ce que je pouvais faire maintenant avec cet accès. Comment pourrais-je insérer des données dans la base de données et cetera est-ce possible?
En règle générale, on utilise soit le --sql-query
drapeau (une ligne à la fois) ou votre --sql-Shell
flag (qui fournit un SQLi REPL ou un shell interactif) pour tester la fonctionnalité du SQLi trouvé par rapport aux capacités du SGBDR cible. Cela n'est souvent nécessaire qu'en dehors de la portée de ce que sqlmap peut déjà effectuer, en termes de capacités.
Deux exemples marquants sont:
Recherche du répertoire de base pour LOAD_FILE () à l'aide de select @@datadir
contre MySQL/MariaDB. En espérant la taille de fichier par défaut autorisée ou en lui demandant un ajustement à l'aide de select @@max_allowed_packet
dans ce même scénario d'attaque.
Interrogation d'un nom d'hôte MS-SQL Server (select @@servername
) ou même la version du produit/niveau de produit/édition. Dans MySQL/MariaDB, cette même commande serait select @@hostname
à partir de sql-Shell REPL.
Votre question est Que puis-je faire avec un shell SQL?
Réponse courte : (presque) n'importe quoi!
Réponse nuancée : selon les droits de l'utilisateur qui s'exécute sur votre point de terminaison, presque rien, quelque chose ou peut-être n'importe quoi.
Mais, la seule bonne question serait:
SQLMap n'est pas quelque chose que vous devriez " déconner " avec et pour " insérer des données "avec. Cela affecte l'intégrité de la base de données. L'insertion, la suppression ou la modification même d'une petite chose rend la base de données corrompue. De toute façon, vous avez des intentions éthiques ou vous n'avez aucune idée de ce que vous faites.
SQLmap it selfs déclare les raisons suivantes pour une bonne raison:
L'utilisation de sqlmap pour attaquer des cibles sans consentement mutuel préalable est illégale. Il incombe à l'utilisateur final d'obéir à toutes les lois locales, étatiques et fédérales applicables. Les développeurs n'assument aucune responsabilité et ne sont pas responsables de toute utilisation abusive ou dommage causé par ce programme.
Source : http://sqlmap.org/
Il est bon que vous soyez intéressé par la sécurité de l'information et "jouer" avec des outils comme "Kali" et "SQLmap" vous donnera des compétences puissantes. Mais utilisez-les bien! Si tout va bien, dans le meilleur des cas, vous le faites sur un environnement de test que vous possédez et exécutez. Ou dans un deuxième meilleur cas sur une cible dont vous avez l'autorisation initiale de tester. WebGoat est un bon exemple d'un tel projet: https://github.com/WebGoat/WebGoat .
Le piratage n'est légal que lorsque vous disposez d'une autorisation initiale et que vous comprenez avec votre client comment, où et quand vous effectuerez le test. C'est ce qu'on appelle le piratage éthique, le seul moyen de piratage "légal". De plus, la compréhension comprend généralement des frontières de test définies sur ce que vous pouvez et surtout ne pouvez pas faire. Des frontières à ne pas franchir. La plupart de ces frontières sont assez simples, prouvent une vulnérabilité ou un risque (même théorique) en n'altérant, insérant ou supprimant aucune de ses données (en d'autres termes, en lecture seule), sauf si vous avez l'autorisation explicite de le faire.
De plus, je voudrais vous conseiller de ne pratiquer vos compétences SQLmap que dans l'un des trois cas suivants:
Si l'utilisateur SQL a une autorisation d'écriture sur la table, vous pouvez utiliser une commande INSERT INTO pour insérer des données dans la table.
Sur w3school vous pouvez trouver plus d'informations sur la façon d'écrire des instructions sql.
Avec le shell SQL dans SQLMap Vous faites presque tout ce que vous pourriez faire dans une base de données SQL locale. Comme interroger la base de données pour les données, modifier les données, jusqu'à ce que l'utilisateur auquel vous avez accès dispose des autorisations nécessaires.