衡阳网站建设公司电话b站推广入口
0x01 漏洞描述
phpmyadmin是一款应用非常广泛的mysql数据库管理软件,基于PHP开发。这个漏洞有些年头了,看离别歌大佬的博文,恰巧看到,感觉有点意思,找来实践一下。
任意文件包含漏洞(CVE-2014-8959)影响版本为4.0.1-4.2.12:
0x02 补丁分析
在文件libraries/gis/pma_gis_factory.php中对$type_lower多加了个判断。
作者修补思路是加白名单,只能包含指定目录下的php文件。
旧版本的文件包含漏洞点就出在$type_lower这里。
0x03 漏洞代码分析
任意本地文件包含漏洞代码出现在libraries/gis/pma_gis_factory.php 第29行,但是该页面没有注入点,
得靠其他页面注入参数传递来第29行,其中最佳注入点在/gis_data_editor.php
0x04 利用过程及POC
测试环境为php 5.2.17 + phpmyadmin 4.0.3 + MySQL 5.5.40
最终POC:
http://localhost/pma/gis_data_editor.php?token=XXX&gis_data[gis_type]=/../../../../phpversion.txt%00
第29行未截断前,./libraries/gis/pma_gis_/../../../../phpversion.txt%00.php
截断后,./libraries/gis/pma_gis_/../../../../phpversion.txt
因为WWW放于C盘根目录,相当于读取C盘根目录下的phpversion.txt
0x05 利用环境与鸡肋性
漏洞为何没火,因为他需要两个条件:
1.已知MySQL用户名和密码才能登录到phpmyadmin
2.需要截断漏洞配合才能任意包含(PHP 5.3.4已修复截断漏洞)
若存在该漏洞可以考虑的利用方向:
1.虚拟主机:利用已有数据库账号登录,再通过getshell,获得面板权限。
2.文件读取/备份下载:尝试读取某些配置文件,获得了一个数据库账号,通过phpmyadmin登录可getshell。
3.暴力破解:尝试爆破某些数据库用户,找机会进入phpmyadmin拿shell。
0x06 修复建议
更新phpmyadmin版本:http://sourceforge.net/projects/phpmyadmin/
参考链接:
作者:离别歌
https://www.leavesongs.com/PENETRATION/phpmyadmin-local-file-include-vul.html
http://bobao.360.cn/vul/detail/18932.html
https://github.com/phpmyadmin/phpmyadmin/commit/2e3f0b9457b3c8f78beb864120bd9d55617a11b5
http://www.phpmyadmin.net/home_page/security/PMASA-2014-14.php