盲注
一、适用场景
- 没有回显的时候
二、Boolean型盲注
- Boolean是基于真假的判断,不管输入什么,结果都只返回真或假两种情况。Boolean型盲注的关键在于通过表达式结果与已知值进行逐个对比,根据对比结果判断正确与否。
-
盲注有时候需要一个一个字符猜,因此一些字符串操作的函数经常被应用到
length():返回查询字符串长度 mid(column_name,start,length):截取字符串 substr(string,start,length):截取字符串 Left(string,n):截取字符串 ORD():返回字符的ASCII码 ASCII():返回字符的ASCII码
例如:
1 and length(database())=5 先盲注猜长度 1 and substr(databse(),2,1)='e'--+ 如果正确响应结果,说明数据可名的第二个字符是e 1 and (slect substr (database(),1,1)='l') 可以使用select构造复杂sql语句
- 使用burpsuite进行遍历,可以获取正确信息
三、时间型盲注
- Boolean盲注还是能通过页面返回的对错来判断,当页面任何信息都不返回的时候,就需要使用时间盲注。
- 时间盲注是在布尔盲注的基础上,首先经过真假的判断,然后在真假判断上添加时间的判断。
- 时间盲注所需要函数大多与布尔盲注相同。
length():返回查询字符串长度
mid(column_name,start,length):截取字符串
substr(string,start,length):截取字符串
Left(string,n):截取字符串
ORD():返回字符的ASCII码
ASCII():返回字符的ASCII码
if():逻辑判断
sleep():控制时间
benchmark():控制时间
例如:
1 and if(length(database())=5,sleep(3),1) 若数据库名长度为5则页面响应时间大于3秒
1 and (select benchmark(50000000,(select username from user limit 1)))