sqli-labs:7,导入导出;8-10 延时注入

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做了'))过滤

上传文件

sqli-labs:7,导入导出;8-10 延时注入_第1张图片

ok!可以看见虽然报错,但还是注入成功。

上传后门

sqli-labs:7,导入导出;8-10 延时注入_第2张图片

菜刀链接成功!

 

sqli8

和5比较,将报错的语句注释了,不能使用报错注入。

sqli-labs:7,导入导出;8-10 延时注入_第3张图片

 

sqli9:

对id经过了'处理,明文规定延时注入

sqli10:

对id经过了"处理,明文规定延时注入

 

转载于:https://www.cnblogs.com/p0pl4r/p/10588754.html

你可能感兴趣的:(sqli-labs:7,导入导出;8-10 延时注入)