Каков нестандартный глагол HTTP “ОТЛАДКА”, используемая для в ASP.NET/IIS?

Разбейте свою шкалу на четыре части. По мере увеличения цветовой шкалы секция 1 становится красной / синей с уменьшением красного, секция 2 - сине-зеленой с усилением зеленого, секция 3 - сине-зеленой с уменьшением синего, а секция 4 - зеленой / красной с усилением красного.

Непроверенный образец ниже. Возможно, вам придется внести коррективы в зависимости от требуемой компоновки значения RGB.

private static readonly double n35 = 35;

public static int CalculateRgb(byte colorIndex)
{
    if (colorIndex > 140)
    {
        throw new ArgumentOutOfRangeException(nameof(colorIndex));
    }

    byte red = 0, green = 0, blue = 0;

    if (colorIndex <= 35)
    {
        blue = 255
        red = 255 * (n35 - (double) colorIndex) / n35);
    }
    else if (colorIndex <= 70)
    {
        colorIndex -= 35;

        blue = 255
        green = 255 * ((double) colorIndex / 35);
    }
    else if (colorIndex <= 105)
    {
        colorIndex -= 70;

        green = 255
        blue = 255 * (n35 - (double) colorIndex) / n35);
    }
    else
    {
        colorIndex -= 105;

        green = 255
        red = 255 * ((double) colorIndex) / n35);
    }

    return
        (red << 24) |
        (green << 16) |
        (blue << 8);
}
21
задан Community 23 May 2017 в 11:45
поделиться

4 ответа

http://support.microsoft.com/kb/937523

Когда клиент пытается автоматически подключить отладчик в приложении ASP.NET 2.0, клиент отправляет HTTP-запрос, содержащий глагол DEBUG. Этот HTTP-запрос используется для проверки того, что процесс приложения запущен, и для выбора правильного процесса для присоединения.

Он использует аутентификацию Windows и DCOM для отладки - так что я не знаю, является ли глагол DEBUG сам по себе большим риском для безопасности (очевидно, если вы разрешаете трафик RPC, то у вас есть более серьезные проблемы) или какие-либо эксплойты. Однако UrlScan блокирует его по умолчанию.

Я бы, наверное, поставил на него сетевой сниффер, чтобы проверить, какая информация все же просачивается.

9
ответ дан 29 November 2019 в 21:12
поделиться

Глагол ОТЛАДКИ действительно позволяет потенциальное нападение XSS (согласно Комплекту Отрыжки), даже с <compilation debug="false"/>, потому что 403 ответа включают требуемый путь URL в свое тело, которое может содержать вектор атаки. Эта фиксация заставляет IIS возвратить 404 ответа без тела и так удаляет уязвимость.

0
ответ дан 29 November 2019 в 21:12
поделиться

Как намекнул Марк, глагол DEBUG используется для запуска/остановки удаленных сеансов отладки. Более конкретно, запрос DEBUG может содержать заголовок Command со значением start-debug и stop-debug, но сама отладка выполняется по протоколу RPC.

Итак, почему сканер безопасности выполняет такой запрос? Оказывается, с помощью запросов DEBUG можно определить, есть ли в web.config . Тест можно выполнить с помощью telnet, WFetch или аналогичного, отправив запрос, подобный этому:

DEBUG /foo.aspx HTTP/1.0
Accept: */*
Host: www.example.com
Command: stop-debug

В зависимости от того, включена отладка или нет, вы получите либо 200 OK, либо 403 Forbidden.

Обычно принято считать, что вы никогда не должны иметь в производственной среде, так как это имеет серьезные последствия для производительности сайта. Я не уверен, что включение отладки открывает какие-либо новые векторы атак, если только трафик RPC также не включен, в этом случае у вас в любом случае возникнут более серьезные проблемы (см. ответ Марка). Любые дополнительные соображения о перспективах безопасности будут очень признательны.

Существует простой способ избежать случайного получения на производственных сайтах. Просто добавьте в machine.config.

Очевидно, что наличие в machine.config не равно установке в данном конкретном случае. Результат от броска DEBUG запросов к веб-приложению может быть изменен только с помощью последнего. Умопомрачительно!

19
ответ дан 29 November 2019 в 21:12
поделиться

@Mark, @ Jørn, спасибо за отличную информацию, мне тоже было любопытно по этому поводу.
Что касается вашего отчета, с точки зрения безопасности, есть еще один аспект (помимо RPC и поддержки отладки) - поверхность для атаки. I - это элемент с низким уровнем риска, но лучше всего сводить к минимуму любые внешние интерфейсы, которые вам не нужны, чтобы у потенциальных злоумышленников было меньше места для маневра и была меньшая вероятность обнаружения этой критической ошибки.
Кстати, включение отладочной компиляции имеет другие эффекты, поскольку оставляет больше следов, файлов pdb и т. Д. Не обязательно высокий риск, но все же ... (не говоря уже о соответствии PCI, если это актуально.)

5
ответ дан 29 November 2019 в 21:12
поделиться
Другие вопросы по тегам:

Похожие вопросы: