本篇文章为大家展示了phpMyadmin中怎么实现提权,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。
0 x00定义
,,,,,phpMyAdmin是一个以PHP为基础,以Web-Base方式架构在网站主机上的MySQL的数据库管理工具,让管理者可用网络接口管理MySQL数据库。
0 x01环境准备
目标:,Windows Server 2003年,Enterprise x64 Edition ,,, 192.168.17.137攻击机:,window7 192.168.17.132Php: 5.45 MySQL:, 5.5.53Apache:, 2.4
0 x02 ,开始渗透
我们经过弱口令,爆破,目录泄露等途径已经获知phpMyAdmin的账号密码是root ,根。接下来我们就通过phpMyAdmin来提权,尽可能贴近真实,多讲思路。
收集有用信息
如上图所示,我们可以获取到以下有用信息。
- <李>
1。操作系统是windows server 2003 x86
李> <李>2。服务器是Apache 2.4.32
李> <李>3。网站默认路径是E: \ phpStudy \ PHPTutorial \ WWW
李> <李>4。PHP版本是5.45
李> <李>5。mysql版本是 5.5.53
b 检测插入条件
在上面我们已经获知了网站默认的路径是E:\phpstudy\PHPTutorial\WWW,这个时候我们肯定想插入一句话后门文件或者是导出shell。那如果我们需要使用以上两种思路中的一种必须满足一个前提条件“secure_file_priv”对应的值不能为空且必须为默认网站的路径,所以我们必须提前检测一下“secure_file_priv”的值。
phpMyadmin执行以下命令:
SHOW VARIABLES LIKE "secure_file_priv";
结果如图所示:
从上图得知值为空,如果我们这时导入一句话,肯定会失败的,不信啊,那我们试试。
报错The MySQL server is running with the --secure-file-priv option so it cannot execute this statement,这是因为mysql对通过文件导入导出作了限制,默认不允许。默认value值为null,则为禁止,如果有文件夹目录,则只允许改目录下文件(测试子目录也不行)。我们思考一下看看能否设置其的路径为我们的默认网站路径,这样我们就可以导入一句话后门了。那我们试试吧。
从图得知这个变量是一个只读变量无法动态更改,那应该是只能从配置文件中更改了。到这里发现陷入了一个胡同,那常规方式不行,我们可以去使用一些骚思路,利用log日志文件插入一句话。
c 转换思路
我们首先需要检测的是MySQL全局变量(general_log、general_log file)的值。
general log 指的是日志保存状态,一共有两个值(ON/OFF)ON代表开启 OFF代表关闭。
general log file 指的是日志的保存路径。
从图得知general_log默认是关闭的,log日志存放的位置是E:\phpStudy\PHPTutorial\MySQL\data\。
首先我们来理解一下开启general_log 的作用,开启它可以记录用户输入的每条命令,会把其保存在E:\phpstudy\PHPTutorial\MySQL\data\下的一个log文件中,其实就是我们常说的日志文件。好,我们的利用的思路是开启general_log之后把general_log_file的值修改为我们网站默认路径下一个自定义的php文件中,然后我们通过log日志进行写入一句话后门到上面去,然后再进一步利用。
具体命令是:
set global general_log = "ON";SET global general_log_file='E:/phpStudy/PHPTutorial/WWW/infos.php';
紧接着我们可以看到在网站根路径下找到我们生成的伪日记文件infos.php .