0x00 漏洞概述
-
受此漏洞影响的版本: phpMyAdmin 4.0.1 -- 4.2.12
-
phpMyAdmin是一个web端通用MySQL管理工具,上述版本在/
libraries/gis/pma_gis_factory.php
文件里的存在任意文件包含漏洞,恶意访问者利用此漏洞可以获取数据库中敏感信息,存在GETSHELL风险。
0x01 漏洞复现
-
在网站根目录下放置
phpinfo.txt
文件,该文件内php代码可以打印出php详细版本等信息,可以用来测试任意文件包含,恶意访问者可以上传恶意其他类型文件,包含一句话文件等操作,来达到GETSEHLL的目的。
其中测试用例phpinfo.txt
文件的内容为<?php phpinfo() ?>
-
打开实验环境中的phpMyAdmin登录页面,使用root账号登录,如下图所示:
- 点击
firefox
中的hackbar
工具(隐藏时按F9),点击Load Url
,可以看到生成了一个包含token的字符串:
- 复制该token值,在
hackbar
栏目中输入:http://localhost/gis_data_editor.php?token=(上面操作复制的内容粘贴进入这里)&gis_data[gis_type]=/../../../phpinfo.txt%00
输入完毕后点击Execute提交即可,即可包含执行phpinfo.txt中的php代码, 如下图所示:说明漏洞利用成功。
注意:这里的文件包含只能跨目录包含.php的文件,不能任意包含,服务器上的php文件一般不会对它感兴趣。不过当服务器的php版本满足php截断条件,那就可以任意文件包含,所以在地址栏输入的地址中有 %00,构造字符串截断,可以包含phpinfo.txt文件,当系统含有文件上传时,可以利用该漏洞上传隐藏小马的任意文件,达到getshell的目的。
0x02 漏洞修复
要修复该漏洞,只需将系统升级至最新版本就可以了!
网友评论