Comments 4
Кто так OTP делает вообще? Там сессия должна быть, в рамках которой даётся несколько попыток.
Для защиты от перебора OTP сессия не поможет. Как только попыткии исчерпаются, атакующий меняет IP в X-Forwarded-For и стартует новую сессию.
А за дырку с незащищённым доступом с внутренних IP автору спасибо. Никогда не думал в таком ключе.
Как это не поможет? Новая сессия запустится уже с новыми кодами. Сколько таких сессий придётся создать чтобы в одной из них код совпал с тем, который подставляет атакующий? Это что-то вроде подбора в случайном порядке. В чистом виде это уязвимо, но в рамках сессии проще тормозить перебор и противодействовать перехвату логина (когда юзер вводит верный пароль, а атакующий с другого клиента перебирает OTP). Поэтому добавляем сюда задержку проверки на пару секунд, предотвращаем параллельные сессии, и всё. Это уже далеко от тривиального перебора 4-6-значных кодов. Поверх этого базового механизма уже прикручивается вторичная защита: рейт лимит по айпи, локаут, капча и алерты админам.
Я не совсем понял. Reverse proxy NginX получается, по дефолту если получает легитимный пакет, то записывает IP адрес клиента в заголовок X-Forwarded-For. А если прилетает пакет нелегитимный уже с заголовком, установленным злоумышленником, он его просто пропускает дальше и не трогает?
Обход OTP и захват панели администратора через Header Injection