phpMyAdmin 4.8.1 本地文件包含漏洞复现

1.漏洞点

漏洞点在根目录下的index.php中的61行

target传参可任意控制,控制index.php包含任意文件

上面的if条件需要满足target传参不为空且为字符串不以index开头不在黑名单

黑名单:

 查看最后一个条件,需要返回true

 第一个红框定义白名单

 第二个红框检查文件名是否在白名单中,在则返回true

第三个红框将原传入字符串从0到?前分割出来,再检查字符串是否在白名单中,在则返回true

可以考虑设置字符串内容?之前的字符串为白名单,绕过过滤,可是?不能出现在文件名中

最后则是利用点

 先是进行url解码,再进行分割,这就有了可乘之机

由于url解码最后这里解了两次码,原本协议解一次,这里的代码再解一次

如果将?二次url编码,既可以绕过过滤,url编码还能出现在文件名中,这就产生了漏洞

2.漏洞利用

如何往服务器中写入恶意文件呢?

可以在后台新建一个表,相应的表名以及数据就会存放在frm与MYD文件中

查看路径

构建payload:

db_datadict.php%253f/../../../../../../../../../../../phpstudy_pro/Extensions/MySQL5.7.26/data/dou/test.frm

成功 

猜你喜欢

转载自blog.csdn.net/weixin_51681694/article/details/130308160