Этот вопрос является своего рода продолжением Насколько серьезна эта новая уязвимость безопасности ASP.NET и как ее исправить? Итак, если мой вопрос кажется неработающим, прочтите сначала этот вопрос и его принятое решение, а затем примите это во внимание. контекст моего вопроса.
Может ли кто-нибудь объяснить, почему важно возвращать одну и ту же страницу с ошибкой и тот же код состояния для пользовательских ошибок? Я считаю, что это несущественно, особенно если это пропагандируется как часть работы над этим.
Разве для сценария / приложения не так просто выполнить эту атаку, не заботясь о том, получит ли он код состояния http и многое другое о результате? То есть, выполняя это 4000 раз, вы перенаправляетесь на страницу с ошибкой, где на 4001 вы остаетесь на той же странице, потому что это не аннулирует заполнение?
Я понимаю, почему добавление задержки на страницу с ошибкой в некоторой степени актуально, но разве это не просто добавление еще одного уровня, чтобы обмануть скрипт, заставив его думать, что сайт является недопустимой целью?
Что можно сделать, чтобы предотвратить это, если сценарий учитывает, что, поскольку сайт является asp.net, он использует шифрование AES, игнорирует время появления страниц с ошибками и отслеживает перенаправление или отсутствие перенаправления в качестве вектора ответа? Если сценарий делает это, это будет означать, что его НЕВОЗМОЖНО остановить?
Изменить: я согласен с сокращением атаки по времени, но часть страницы с ошибкой - это то, что действительно кажется подделкой. Этот вектор атаки помещает их данные в состояние просмотра. Всего 2 случая. Проходят. Потерпеть поражение.
Либо Fail, они находятся на странице, и состояние просмотра не содержит их данных. Независимо от того, что вы здесь делаете, невозможно удалить случай сбоя, потому что страница просто никогда не будет содержать их вставленные данные, если они не взломали ключ. Вот почему я не могу оправдать использование пользовательских ошибок, имеющих КАКОЙ-ЛИБО ВЛИЯНИЕ.
Или Pass, они находятся на странице, а состояние просмотра содержит их вставленные данные.
Краткое изложение этой уязвимости
Берется ключ шифрования из WebResoure.axd / ScriptResource.axd, и первое предположение ключа проверки используется для генерации значения потенциального ключа с зашифрованным текстом.
Это значение передается в WebResource.axd / ScriptResource.axd на этом этапе, если ключ дешифрования был угадан правильно, их ответ будет принят, но, поскольку данные являются мусором, он ищет WebResource.axd / ScriptResource.axd вернет 404 ошибка.
Если ключ дешифрования не удалось угадать, будет выдана ошибка 500 для исключения недопустимого заполнения. На этом этапе приложение атаки знает, что нужно увеличить потенциальное значение ключа дешифрования и повторить попытку, пока не найдет первый успешный 404 из WebResource.axd / ScriptResource.axd.
После успешного вывода ключа дешифрования его можно использовать для взлома сайта, чтобы найти фактический ключ машины.