我正在查找有关DEBUG HTTP动词的详细信息。
我很清楚,这是用于远程调试 - 虽然我甚至不确定它是否适用于IIS或ASP.NET ...ASP.NET/IIS远程调试 - DEBUG动词
如果我想直接访问此接口 - 即不通过Visual Studio ,但手动发送这些命令 - 我需要知道什么?它的命令是什么?
我也有兴趣在误操作的情况下,如果您有任何信息......
我正在查找有关DEBUG HTTP动词的详细信息。
我很清楚,这是用于远程调试 - 虽然我甚至不确定它是否适用于IIS或ASP.NET ...ASP.NET/IIS远程调试 - DEBUG动词
如果我想直接访问此接口 - 即不通过Visual Studio ,但手动发送这些命令 - 我需要知道什么?它的命令是什么?
我也有兴趣在误操作的情况下,如果您有任何信息......
为了完整起见,请在此整理来自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-debug
和stop-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 OK
或403 Forbidden
。
人们普遍认为,在生产环境中不应该有<compilation debug="true"/>
,因为它对网站的性能有严重影响。我不确定是否启用了调试功能会打开任何新的攻击媒介,除非启用了RPC通信,在这种情况下,无论如何您都会遇到更严重的问题。
关于“误用案例”: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