Онлайн-проверка уязвимости Shellshock
Опубликовано: Artem Prysyazhnuk 2014-06-12 все статьиОн разработан для сервера Linux с установленным на нем веб-сервером. Алгоритм очень прост. Мы генерируем 4 http-запроса:
- 1. Обычный запрос
- 2. Запрос пытается, используя уязвимость, разместить "вредный" cookie, что вызывает 2-секундную задержку в ответе на наш специальный http-запрос.
- 3. Запрос пытается, используя уязвимость, разместить "вредный" cookie, что вызывает 4-секундную задержку в ответе на наш специальный http-запрос.
- 4. То же, что и #3
Как понять результат?
Мы сравниваем время отклика для всех 4 запросов. Возможны три ситуации:
- 1. Уязвимость найдена. Мы можем утверждать, что если разница в ответах составляет около 2 секунд для запросов без cookie и с cookie с 2-секундной задержкой, а также для запросов с cookie с 2- и 4-секундной задержкой. Это означает, что наш запрос смог использовать уязвимость и установить эти куки.
- 2. Уязвимость не найдена. Все запросы имеют примерно одинаковое время отклика. Куки, скорее всего, не были установлены из-за отсутствия уязвимости.
- 3. Неопределенная ситуация. Если время отклика сильно отличается, не совпадая с установленной cookies задержкой, мы не можем сказать наверняка. Это может быть связано с высокой нагрузкой на сервер. Чтобы проверить это, используем два запроса с одинаковыми cookies (#3 и #4). Если время ответа для двух одинаковых запросов разное, делаем вывод, что на время ответа не влияют куки. По крайней мере, не только они. Поэтому в данном случае наш метод не может обнаружить уязвимость.
Безопасность проверок
Наша проверка не может повредить вашему серверу. Риск заключается в появлении одного дополнительного куки, который используется только для наших запросов и не может повлиять на нормальную работу вашего сайта.
Тэги:
usecase
Генеральный директор и основатель компании HostTracker. Он увлеченный предприниматель с сильным техническим образованием в области F#. Артем работает в индустрии разработки программного обеспечения уже более 20 лет.