Instructeur: Dans toutes
les conférences jusqu'à présent, nous exploitions les injections SQL manuellement.
Nous avons donc injecté le code dans l'URL ou
dans les zones de texte.
Dans cette vidéo, je vais vous montrer un outil appelé sqlmap qui vous
permet de faire tout ce que nous avons appris jusqu'à présent et
encore plus de choses.
Cet outil peut être utilisé contre les bases de
données MySQL sur lesquelles nous avons eu l’exemple.
Il peut également être utilisé contre Microsoft
SQL, Oracle et d'autres types de bases de données.
L'outil est très utile et très pratique dans de nombreux cas.
Parfois, les injections ne sont pas aussi agréables que celles que
nous avons vues.
Parfois, vous n'obtenez qu'une sortie pour chaque enregistrement et
vous devez parcourir toutes les sorties.
Donc, l'outil peut automatiser cela
et faire tout pour vous beaucoup plus facile et beaucoup plus simple.
Commençons par obtenir l'URL
que nous utilisions pour l'injection.
J'ai donc ici le fichier texte que nous utilisions
et l'URL que nous utilisions auparavant.
Donc c'est l'utilisateur. Info. php,
nom d'utilisateur est admin, mot de passe, adminpass.
Vous n'avez pas vraiment besoin de connaître le nom d'utilisateur
et le mot de passe, je vais donc simplement mettre quoi que ce soit ici.
Donc, juste pour supposer que nous ne connaissons
pas le mot de passe, nous n'injectons que des injections SQL.
Nous n'avons pas vraiment besoin de connaître ce genre de choses.
Tout ce que je vais faire, c'est
copier ça et ensuite je vais lancer sqlmap.
Et je vais faire pour spécifier l'URL et je
vais mettre ma cible.
Et je
vais m'assurer qu'il est placé entre deux guillemets
pour qu'il n'ignore rien, aucun signe
au milieu, nous avons donc des
signes et des caractères au milieu pour
que je veuille que tout soit traité comme un seul. URL
Donc tout ce que j'ai fait était sqlmap -u ma cible.
Et je vais
appuyer sur Entrée et l'outil consultera automatiquement les paramètres, il
va donc consulter les informations de l'utilisateur, le
nom d'utilisateur et le mot de passe pour
voir si l'un d'entre eux est injectable, puis une
fois que cela aura été fait,
il sera stocké. dans sa mémoire.
Donc, nous saurons que
c'est injectable et nous pourrons ensuite exploiter davantage la cible.
Comme vous pouvez
le constater, nous pensons que notre cible pourrait être MySQL ou PostgreSQL.
Il me demande s'il devrait passer d'autres tests et je vais
dire oui car
je sais que c'est MySQL.
Et maintenant, il me demande s’il devrait faire tous les tests pour
les deux bases de données?
Et je vais dire oui, en supposant que je ne
suis pas sûr de savoir lequel.
Je sais que c'est MySQL mais je vais le laisser faire et
nous verrons s'il peut le faire correctement ou non.
Donc, pour
le moment, c'est vérifier si c'est PostgreSQL.
Et je suppose que cela va savoir que ce n'est pas
le cas et ensuite, il va savoir que c'est MySQL.
Il vient de découvrir que le nom d'utilisateur
semble être injectable.
Et bien sûr, cela nous dit ici
que le paramètre username est vulnérable et que nous
pouvons l’injecter.
Donc, il me demande si je veux vérifier les autres paramètres tels
que le mot de passe et tous.
Je peux dire oui et le laisser faire,
mais je vais
dire non parce que ça ne me dérange pas de simplement
utiliser le nom d'utilisateur pour l'injection, donc tout va bien.
Maintenant, sqlmap sait que la cible est injectable et
qu'il utilisera le paramètre username pour injecter
des éléments.
Et je peux voir qu'il a
compris qu'il utilisait Linux Ubuntu et qu'il utilisait PHP
avec Apache 2. 2 8
Et il utilise MySQL Server comme serveur de base de données.
Lançons donc sqlmap --help et voyons ce que nous
pouvons faire maintenant.
Maintenant, cet outil est vraiment gros
et il vous permet de faire beaucoup de choses.
Donc sur cette vidéo, je vais juste
vous montrer un aperçu rapide
de la vidéo et je vous recommande de passer plus de temps avec elle
et d'essayer de voir ce que vous pouvez faire d'autre.
Bon, essayons de trouver l'utilisateur actuel et nous allons
essayer d'obtenir la base de données courante.
Nous allons donc utiliser la même commande que nous
avons utilisée auparavant et je vais juste y ajouter des dbms pour obtenir les
bases de données actuelles.
Ou dbs, désolé.
Comme vous pouvez le voir, nous avons toutes les bases de données que nous avons.
Donc nous avons dvwa, nous avons information_schema,
metasploit, mysql, owasp10 qui était
celui que nous exploitions auparavant et tikiwiki.
Maintenant, si nous faisons utilisateur actuel, vous pouvez
voir que nous sommes
root et si je fais current-database,
nous verrons que owasp10 est notre base de données actuelle.
Essayons maintenant d'obtenir les tables pour owasp10,
alors souvenez-vous quand nous avons sélectionné un nom de table à
partir de information_scheme. tables
où table_schema est égal à owasp10.
Nous allons le faire, nous allons laisser sqlmap s'occuper de
tout cela pour nous et la commande sera
donc, nous allons lui demander d'obtenir toutes les tables pour nous.
Et nous allons
utiliser l'option D pour spécifier la base de
données et notre base de données s'appellera owasp10.
Et comme vous pouvez le constater, toutes les tables existantes
nous ont été distribuées et rappelez-vous que c’est la même chose.
Nous avons aussi
des comptes, blogs_table et credit_cards.
Et maintenant, si nous
voulons obtenir les colonnes, nous pouvons
utiliser la même commande à nouveau et nous allons
dire: récupérez-moi les colonnes dans lesquelles la table s'appelle accounts
et la base de données est owasp10.
Et ici nous pouvons voir que nous avons les colonnes.
Nous avons donc le is_admin, le mot de passe et le nom
d'utilisateur et nous pouvons obtenir
les données en utilisant l'option de vidage.
Donc, c'est la même commande que nous avons utilisée auparavant.
Nous obtenons donc la table appelée comptes et la
base de données appelée owasp10.
Je veux que tu me donnes toutes les données.
Et voilà, nous avons toutes les données.
Nous avons l'administrateur, son mot de passe, adminpass et
nous avons adrian et son mot de passe est mot de passe.
Et nous avons toutes les données ici.
Comme je l’ai dit, cet outil est très utile.
Il peut être utilisé pour nous rendre la vie beaucoup
plus facile. Il fait tout automatiquement, tout
ce que nous avons fait et peut
même faire plus de choses.