phpMyAdmin4.8.1漏洞复现及利用

一.环境配置

我采用的是Windows+phpstudy配置的运行环境,将phpMyAdmin4.8.1下载好解压到phpstudy网站根目录即可,这里需要注意的是php版本和Mysql的版本
在这里插入图片描述
配置好后,直接访问http://localhost/phpMyAdmin
在这里插入图片描述
登陆成功成功后你会遇到下图
在这里插入图片描述
解决方法:
修改phpMyAdmin/libraries文件下的config.default.php里面的$cfg['blowfish_secret']配置,随意修改保存即可,长度一定要达到要求。
在这里插入图片描述

二.漏洞复现

出bug的两处代码

1.phpMyAdmin/index.php的51-64行
在这里插入图片描述
根据这几行代码可知要将$_REQUEST[‘target’]所表示的文件包含进来target参数需要满足以下5个条件:
1.不为空
2.是一个字符串
3.不能以index开头
4.不能在 $target_blacklist数组里面(即不能为import.php,export.php)
5.满足Core类里面的checkPageValidity()函数检查
前四个可以轻松绕过,来看看第五个条件
2.phpMyAdmin\libraries\classes\Core.php的443-476行,checkPageValidity()函数
在这里插入图片描述
根据以上代码可知要使该函数返回True,必须满足以下三个条件中的一个:

  1. $page变量值在 $white_list数组中会返回True,以下是数组内容
    在这里插入图片描述

2.经过mb_substr()和mb_strpos()处理的$page–>$_page的变量值在$_whitelist数组中
3.经过urldecode(),mb_substr(),mb_strpos()处理的$page–>$_page的变量值在$_whitelist数组中,这里值的分析的是$page是经过两次url解码再进行同2相同的函数处理,第一次由服务器自动解码了一次,然后再由urldecode()函数解码一次,所以在构造payload的时候‘?’应该url编码两次–>‘%253f’.
结合这两处代码,可以开始漏洞复现了。
两种漏洞利用方式
1.任意文件包含
任意文件包含通过目录穿越实现,现在我的D盘下有如下文件
在这里插入图片描述
,构造payload来包含该文件,http://localhost/phpMyAdmin-4.8.1/index.php?target=db_datadict.php%253f/../../../../../../../../../PC/PyCharm%202020.2/build.txt,成功包含进来
在这里插入图片描述
其他文件包含也是一样的,只需要给定绝对路径即可(不需要盘符).
2.任意代码执行
(1).包含数据库文件
先创建一个数据库用来写入要执行的代码
在这里插入图片描述
完成之后再将该文件包含进来,查看数据库路径
在这里插入图片描述
现在就可以构造payloadhttp://localhost/phpMyAdmin-4.8.1/index.php?target=db_datadict.php%253f/../../../../../../../../../phpStudy/Extensions/MySQL5.7.26/data/test/test.MYD,看到代码成功执行。
在这里插入图片描述
(2).包含session文件
先在phpMyAdmin界面执行SELECT "<?php phpinfo();?>"
在这里插入图片描述
找到了session文件的位置,将它包含进来,构造payloadhttp://localhost/phpMyAdmin-4.8.1/index.php?target=db_datadict.php%253f/../../../../../../../../../phpStudy/Extensions/tmp/tmp/sess_iidu2gfjp0kgsc8b1307ff6utsfcmbon,代码执行成功。
在这里插入图片描述

三.漏洞利用

这里漏洞利用是HCTF-2018的一道web赛题–Warmup,打开之后是一个滑稽笑脸,F12查看源码,
在这里插入图片描述
发现source.php这个提示,直接访问它,得到以下代码
在这里插入图片描述
这一看就是代码审计,又发现代码里面有hint.php访问看看
在这里插入图片描述
这里提示flag不在这里,在ffffllllaaaagggg里面,再结合代码和刚才上面讲的phpMyAdmin漏洞 任意文件包含,可以构造出payloadhttp://1b624b4a-7c5e-4c42-b035-b65f165e5827.node3.buuoj.cn/source.php?file=source.php%253f/../../../../../ffffllllaaaagggg,成功拿到Flag。
在这里插入图片描述

  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
引用\[1\]:根据网上公开的phpMyadmin文件包含漏洞,通过代码审计定位危险函数,然后逐步分析,最终确定payload,并通过本地搭建phpMyadminV4.8.1版本成功进行漏洞复现。实际上该漏洞对于大部分版本的phpMyadmin都生效,因此有使用该系统的需要引起格外的重视,及时修补该漏洞。\[1\]引用\[2\]:文件包含漏洞是指在程序中动态引用了用户可控制的文件,而没有对用户输入进行充分的过滤和验证,导致攻击者可以通过构造恶意的文件路径来读取、执行或者包含任意文件。\[2\]引用\[3\]:在phpMyadmin的大部分版本中都存在文件包含漏洞。\[3\] 问题: phpmyadmin漏洞是什么? 回答: phpMyadmin漏洞是指在phpMyadmin程序中存在的文件包含漏洞。该漏洞允许攻击者通过构造恶意的文件路径来读取、执行或者包含任意文件。这个漏洞对于大部分版本的phpMyadmin都生效,因此使用该系统的用户需要格外重视,并及时修补该漏洞。\[1\]\[2\]\[3\] #### 引用[.reference_title] - *1* *2* *3* [phpmyadminV4.8.1本地文件包含漏洞复现](https://blog.csdn.net/weixin_64551911/article/details/125609281)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值