我知道如何在代码中检查此设置,并且我知道在 中查找的位置web.config,但我似乎无法找到有关 Qualys 之类的漏洞扫描程序如何检测到此的信息。
我考虑了以下几点,但我无法知道我的猜测是否正确:
- 是否有从 Web 服务器发送的 http 标头
Debug=true? - 扫描仪/软件是否故意导致错误并检测到反射回客户端的调试信息?
- 软件是否在寻找长时间运行的请求(因为调试模式在超时发生之前有效地延长了响应时间)?
我知道如何在代码中检查此设置,并且我知道在 中查找的位置web.config,但我似乎无法找到有关 Qualys 之类的漏洞扫描程序如何检测到此的信息。
我考虑了以下几点,但我无法知道我的猜测是否正确:
Debug=true?设置调试属性不会导致不同的错误页面。自定义错误页面在 configuration/system.web/customErrors 节点的 web.config 中处理。 一些信息。
一种可能性是扫描程序通过查看Cache-Controlhttp 标头检测到这一点。private当您处于调试模式和public不处于调试模式时,此标头将返回。有一篇很好的文章介绍了其中的一些内容,可以在这里找到。
更可能的可能性是,他们正在调试请求到现场检查,看看阉它返回200或403上有一个很好的SO后这里。
虽然将 debug 属性设置为 true 会导致性能问题,但这并不是唯一会导致性能问题的事情,因此使用这种方法似乎会产生很多误报。
你实际上可以检查这个@AbeMiessler
正常的 HTTP 请求:
GET / HTTP/1.1
Host: www.test.com
User-Agent: Mozilla/5.0 (Windows NT 6.1; rv:28.0) Gecko/20100101 Firefox/28.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Encoding: gzip, deflate
Cookie: Token=dfe31f692334663ae9d466662be6d3
Connection: keep-alive
修改请求:
DEBUG /Test.aspx HTTP/1.1 HTTP/1.1
Cookie: Token=dfe31f692334663ae9d466662be6d3
Content-Length: 0
Accept: */*
User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; WOW64;)
Host: www.test.com
Command: stop-debug
启用调试时的响应:
HTTP/1.1 200 OK
Server: Microsoft-IIS/7.0
X-Powered-By: ASP.NET
Date: Mon, 14 Apr 2014 12:19:45 GMT
Content-Length: 2
OK
您可以在此处阅读有关它的更多信息: https ://www.owasp.org/index.php/ASP.NET_Misconfigurations