2014-09-22 52 views
0

我正在製作一個程序,試圖用python強制cookie值。 我正在研究面向IT安全學生的環境,它就像CTF即服務一樣。 我正在執行的任務是一個程序設計嚴格的登錄站點,它有創建cookie會話的弱點。 Cookie包含三個值,從服務器端返回的整數,用戶名和散列。我已經設法獲取用戶名和散列,但我需要蠻力int值發佈cookie數據並返回值

我從來沒有做過任何與餅乾或試圖蠻力的人。 我在想我可以手動觀察運行的程序並返回網站的標題,直到內容長度發生變化。

這是我現在的代碼。

from requests import session 
import Cookie 
def createCook(salt): 
    #known atrributes for the cookie 
    salt = int('to_be_brute_forced') 
    user = str('user') 
    hash = str('hash_value') 
    # create the cookies 
    c = Cookie.SimpleCookie() 
    #assing cookie name(session) and values (s,u,h) 
    c['session'] = salt + user + hash 
    c['session']['domain'] = '127.0.0.1:7777' 
    c['session']['path'] = "/" 
    c['session']['expires'] = 1*1*3*60*60 
    print c 

def Main(): 
print "Feed me Seymour: " 
salt = 0 
while (salt < 1000): 
    print 'this is the current cookie: ', createCook(salt) 
    cc = createCook(salt) 
    salt = salt + 1 
    try: 
     with session() as s: 
      s.post('http://127.0.0.1:7777/index.php', data=cc) 
      request = s.get('http://127.0.0.1:7777/index.php') 
      print request.headers 
      print request.text 
    except KeyboardInterrupt: 
     exit(0) 


if __name__ == '__main__': 
Main() 

所以我的問題是:1。 我需要在發佈前保存的Cookie? 2.我如何總是給鹽添加+1並重新創建cookie? 3.我如何將它發佈到網站並知道找到了正確的那個?

+0

在*正常*登錄過程的要求,你通常會想保存cookie,它是什麼'requests.session'幫助你。你告訴服務器你的密碼,作爲響應的服務器爲你創建一個(希望是安全的)cookie,並要求你的客戶端設置它,並且你的客戶端發送這個cookie隨後每次請求到服務器。 – 2014-09-22 09:45:24

+0

然而,當試圖強制使用散列時,您會希望每次都發送一個不同的cookie。所以你可能甚至不想使用'requests.session',而是創建你自己的cookie(你已經有了代碼),並且創建併發送一個新的請求。有關如何執行手動cookie處理,請參見[關於cookie的請求文檔](http://docs.python-requests.org/en/latest/user/quickstart/#cookies)。 – 2014-09-22 09:47:41

回答

0

雖然張貼,你必須使用Cookie作爲參數,而不是數據

s.post(url, cookies=<cookiejar>)