web-dev-qa-db-fra.com

Que puis-je faire avec un shell SQL utilisant SQLMap?

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?

6
Infamy Hacking

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:

  1. https://websec.ca/kb/sql_injection#MySQL_Reading_Files

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.

  1. https://websec.ca/kb/sql_injection#MSSQL_Server_Hostname

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.

3
atdre

Que pouvez-vous faire avec SQLmap?

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:


Que devez-vous faire avec SQLmap?

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/


Soyez éthique!

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:

  • Vous êtes propriétaire de l'environnement (c'est votre environnement de test, afin d'acquérir des compétences avec l'outil SQLmap)
  • Vous disposez d'une autorisation initiale de la cible que vous piratez. Avoir une compréhension claire de deux parties sur les règles et les frontières.
  • Vous vous en tenez aux programmes Bug Bounty comme sur HackerOne et BugCrowd en acceptant et en respectant les règles du programme spécifique.
1
Bob Ortiz

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.

0
Eelke

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.

0
Santy