ASP.NET / IIS远程调试 - DEBUG动词

时间:2009-01-07 00:22:30

标签: asp.net http iis debugging remote-debugging

我正在寻找有关DEBUG HTTP动词的详细信息 我很清楚这用于远程调试 - 虽然我甚至不确定它是用于IIS还是ASP.NET ......

如果我想直接访问此界面 - 即不是通过Visual Studio,而是手动发送这些命令 - 我需要知道什么?有什么命令呢? 如果您有任何相关信息,我也对误用案件感兴趣...

2 个答案:

答案 0 :(得分: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的Command头,但实际的调试是通过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流量,在这种情况下你还有更严重的问题。

答案 1 :(得分:0)

如果你想进行远程调试,我建议使用debug.writeline和sysinternals DebugView中的工具。这使您可以在位置计算机或远程计算机上“监听”调试语句,前提是您具有必要的访问权限。

我不能直接回答关于DEBUG http的部分,因为我对它不熟悉。

相关问题