ASP.NET / IIS Удаленная отладка - глагол DEBUG - PullRequest
4 голосов
/ 07 января 2009

Я ищу подробности об HTTP-глаголе DEBUG.
Мне ясно, что это используется для удаленной отладки - хотя я даже не уверен, что это для IIS или ASP.NET ...

Если я хочу получить доступ к этому интерфейсу напрямую - т.е. не через Visual Studio, а отправлять эти команды вручную - что мне нужно знать? Каковы команды для этого?
Меня также интересуют случаи неправомерного использования, если у вас есть какая-либо информация об этом ...

Ответы [ 2 ]

5 голосов
/ 17 февраля 2010

Просто для полноты, здесь собраны ответы из что-то-не-нестандартное-http-глагол-отладка-используется-в-asp-net-iis : (спасибо @Mark , @ Jørn).

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

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

Глагол DEBUG используется для запуска / остановки сеансов удаленной отладки. В частности, запрос DEBUG может содержать заголовок команды со значениями start-debug и stop-debug, но фактическая отладка выполняется по протоколу RPC.

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

Тем не менее, поиск веб-сайта ASP.NET с запросами DEBUG может использоваться для определения, имеет ли web.config <compilation debug="true">. Тест можно выполнить с помощью telnet, WFetch или аналогичного, отправив запрос следующим образом:

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

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

Общепринято, что у вас никогда не должно быть <compilation debug="true"/> в производственной среде, так как это имеет серьезные последствия для производительности веб-сайта. Я не уверен, что при включенной отладке открываются какие-либо новые векторы атаки, если только не включен RPC-трафик, в этом случае у вас все равно будут более серьезные проблемы.

0 голосов
/ 07 января 2009

Если вы хотите выполнить удаленную отладку, я бы предложил использовать debug.writeline и инструмент sysinternals DebugView . Это позволяет вам «прослушивать» операторы отладки либо на вашем компьютере, либо на удаленном компьютере, если у вас есть необходимый доступ.

Я не могу напрямую ответить на часть о DEBUG http, так как незнаком с ней.

...