2009-01-07 54 views
4

我正在查找有關DEBUG HTTP動詞的詳細信息。
我很清楚,這是用於遠程調試 - 雖然我甚至不確定它是否適用於IIS或ASP.NET ...ASP.NET/IIS遠程調試 - DEBUG動詞

如果我想直接訪問此接口 - 即不通過Visual Studio ,但手動發送這些命令 - 我需要知道什麼?它的命令是什麼?
我也有興趣在誤操作的情況下,如果您有任何信息......

+0

關於「誤用案例」:http://stackoverflow.com/questions/2244293/what-is-the-non-standard-http-verb-debug-used-for-in-asp-net-iis – 2010-02-16 12:07:38

回答

5

爲了完整起見,請在此整理來自what-is-the-non-standard-http-verb-debug-used-for-in-asp-net-iis的答案:(謝謝@Mark,@Jørn)。

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

當客戶端會嘗試自動 附加調試器在ASP.NET 2.0 應用,客戶端發送一個HTTP請求 包含DEBUG動詞。 該HTTP請求用於驗證 ,該應用程序的進程是 正在運行並選擇要附加的正確的 進程。

DEBUG謂詞用於啓動/停止遠程調試會話。更具體地說,DEBUG請求可以包含一個值爲start-debugstop-debug的命令頭,但實際的調試是通過RPC協議完成的。

它使用Windows身份驗證和DCOM來實際執行調試(顯然,如果您允許RPC流量,那麼您遇到更大的問題)或任何漏洞利用。不過,默認情況下UrlScan會阻止它。

但是,使用DEBUG請求戳一個ASP.NET網站可用於顯示web.config是否有<compilation debug="true">。該測試可以通過telnet,WFetch或類似的執行,通過發送這樣的請求:

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

根據調試是否啓用與否,你會得到任何200 OK403 Forbidden

人們普遍認爲,在生產環境中不應該有<compilation debug="true"/>,因爲它對網站的性能有嚴重影響。我不確定是否啓用了調試功能會打開任何新的攻擊媒介,除非啓用了RPC通信,在這種情況下,無論如何您都會遇到更嚴重的問題。

0

如果你想要做遠程調試,我會建議使用的Debug.WriteLine和Sysinternals公司DebugView工具。這允許您在位置機器或遠程機器上「偵聽」調試語句,前提是您擁有必要的訪問權限。

我不能直接回答有關DEBUG http的部分,因爲我不熟悉它。

+2

謝謝,但我實際上正在尋找內部的遠程調試......我知道*如何做到這一點,我想了解*封面下面會發生什麼。我喜歡在那裏徘徊.... – AviD 2009-01-07 17:26:08