ASP.NET / IIS Удаленная отладка - глагол DEBUG
-
03-07-2019 - |
Вопрос
Я ищу подробности об HTTP-глаголе DEBUG.
Мне ясно, что это используется для удаленной отладки - хотя я даже не уверен, что это для IIS или ASP.NET ...
Если я хочу получить доступ к этому интерфейсу напрямую - т.е. не через Visual Studio, а отправлять эти команды вручную - что мне нужно знать? Каковы команды для этого?
Меня также интересуют случаи неправомерного использования, если у вас есть какая-либо информация об этом ...
Решение
Просто для полноты излагаем здесь ответы от что такое нестандартный http-глагол-debug-используемый-для-в-asp-net-iis : (спасибо @Mark, @J < !> # 248; р-н). Р>
http://support.microsoft.com/kb/937523
Когда клиент пытается автоматически подключить отладчик в ASP.NET 2.0 приложение, клиент отправляет HTTP запрос, который содержит глагол DEBUG. Этот HTTP-запрос используется для проверки что процесс подачи заявления работает и правильно выбрать процесс для прикрепления.
Глагол DEBUG
используется для запуска / остановки сеансов удаленной отладки. В частности, запрос start-debug
может содержать заголовок команды со значениями stop-debug
и <compilation debug="true">
, но фактическая отладка выполняется по протоколу RPC.
Он использует проверку подлинности Windows и DCOM для выполнения отладки (очевидно, если вы разрешаете RPC-трафик, тогда у вас больше проблем) или каких-либо эксплойтов. UrlScan блокирует его по умолчанию.
Тем не менее, поиск веб-сайта ASP.NET с помощью запросов 200 OK
можно использовать для определения наличия в файле web.config 403 Forbidden
. Тест можно выполнить с помощью telnet, WFetch или аналогичного, отправив запрос следующим образом:
DEBUG /foo.aspx HTTP/1.0
Accept: */ *
Host: www.example.com
Command: stop-debug
В зависимости от того, включена отладка или нет, вы получите либо <compilation debug="true"/>
, либо <=>.
Общепринято, что вы никогда не должны иметь <=> в производственной среде, так как это серьезно влияет на производительность веб-сайта. Я не уверен, что при включенной отладке открываются какие-либо новые векторы атаки, если только не включен RPC-трафик, и в этом случае у вас все равно будут более серьезные проблемы.
Другие советы
Если вы хотите выполнять удаленную отладку, я бы предложил использовать debug.writeline и инструмент sysinternals DebugView . Это позволяет вам «прослушивать» операторы отладки либо на вашем компьютере, либо на удаленном компьютере, при условии, что у вас есть необходимый доступ.
Я не могу прямо ответить на часть о DEBUG http, так как незнаком с ней.