ASP.NET / IISリモートデバッグ-DEBUG verb
-
03-07-2019 - |
質問
DEBUG HTTP動詞の詳細を探しています。
これがリモートデバッグに使用されることは明らかです。ただし、IIS向けかASP.NET向けかはわかりませんが...
このインターフェースに直接アクセスしたい場合-つまり、Visual Studio経由ではなく、これらのコマンドを手動で送信する場合-何を知る必要がありますか?コマンドは何ですか?
誤用のケースにも興味があります。もしあなたがその情報を持っているなら...
解決
完全を期すために、 what-is-the-non-standard-http-verb-debug-used-for-in-asp-net-iis :(ありがとう@ Mark、@ J < !>#248; rn)。
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はデフォルトでそれをブロックします。
ただし、200 OK
リクエストでASP.NET Webサイトを突くことを使用して、web.configに403 Forbidden
があるかどうかを明らかにすることができます。テストは、次のようなリクエストを送信することにより、telnet、WFetchなどで実行できます。
DEBUG /foo.aspx HTTP/1.0
Accept: */ *
Host: www.example.com
Command: stop-debug
デバッグが有効かどうかに応じて、<compilation debug="true"/>
または<=>が表示されます。
Webサイトのパフォーマンスに重大な影響があるため、運用環境では<=>を使用しないでください。デバッグを有効にすると、RPCトラフィックも有効にしない限り、新しい攻撃ベクトルが開かれるかどうかわかりません。その場合、とにかく深刻な問題が発生します。
他のヒント
リモートデバッグを行う場合は、debug.writelineとsysinternalsのツールを使用することをお勧めします DebugView 。これにより、必要なアクセス権があれば、ロケーションマシンまたはリモートマシンでデバッグステートメントを「聞く」ことができます。
DEBUG httpについては、なじみがないので直接答えることはできません。