0x00 设想
假设我们拥有MySQL的root权限,登录Web端的phpMyAdmin数据库管理控制台,你有多少种方法去getshell?
本文旨在研究新的方法,如果在INTO OUTFILE禁用的情况下,或许会少很多思路了。
这里的禁用是完全(权限)禁用,而不是拦截行为。
0x01 常规方法测试
好了,入正题,我目前拥有一台WIN XP虚拟机,上面的服务如下:
Apache 2.4.23(此环境与本文实现的攻击关系不大)
PHP 5.4.45(此环境与本文实现的攻击关系不大)
phpMyAdmin 4.6.6(此环境与本文实现的攻击关系不大)
MySQL 5.5.53 - MySQL Community Server (GPL) (5.0以上)
绝对路径:C:\phpStu\WWW\
目前大部分站点都使用了MySQL 5.0以上的版本
我们先尝试一下使用SQL表达式INTO OUTFILE去getshell:
可以看到已经被阻止了 ,具体原因我们在这里讲一下:
错误提示
#1290 - The MySQL server is running with the --secure-file-priv option so it cannot execute this statement.