1,Load_file()导出文件
使用条件:
A.必须有权限读取并且文件必须完全可读(and (select count(*) from mysql.user)>0/* 如果结果返回正常,说明具有读写权限。)
B.欲读取文件必须在服务器上
C.必须指定文件完整的路径(常用路径)
D.欲读取文件必须小于 max_allowed_packet
2,LOAD DATA INFILE文件导入到数据库
3,select ... into outfile 'filename'文件导入到数据库
两种方法:
1.select version() into outfile “c:\\phpnow\\htdocs\\test.php” 此处将 version()替换成一句话,也即Select into outfile “c:\\phpnow\\htdocs\\test.php”
2.Select version() Into outfile “c:\\phpnow\\htdocs\\test.php” LINES TERMINATED BY 0x16(在 sqlmap 中 os-shell 采取的就是 这样的方式,具体可参考 os-shell 分析文章:http://www.cnblogs.com/lcamry/p /5505110.html)
上述我们提到了 load_file(),但是当前台无法导出数据的时候,我们可以利用下面的语句:
select load_file(‘c:\\wamp\\bin\\mysql\\mysql5.6.17\\my.ini’) into outfile ‘c:\\wamp\\www\\test.php’
可以利用该语句将服务器当中的内容导入到 web 服务器下的目录,这样就可以得到数据了。 上述 my.ini 当中存在 password 项(不过默认被注释),当然会有很多的内容可以被导出来, 这个要平时积累。
sqli7:
对id做了'))过滤
上传文件
ok!可以看见虽然报错,但还是注入成功。
上传后门
菜刀链接成功!
sqli8
和5比较,将报错的语句注释了,不能使用报错注入。
sqli9:
对id经过了'处理,明文规定延时注入
sqli10:
对id经过了"处理,明文规定延时注入