当 ASP.NET 应用程序上的 DEBUG 设置为 True 时,漏洞扫描程序如何检测

信息安全 漏洞扫描器
2021-08-31 05:32:02

我知道如何在代码中检查此设置,并且我知道在 中查找的位置web.config,但我似乎无法找到有关 Qualys 之类的漏洞扫描程序如何检测到此的信息。

我考虑了以下几点,但我无法知道我的猜测是否正确:

  • 是否有从 Web 服务器发送的 http 标头Debug=true
  • 扫描仪/软件是否故意导致错误并检测到反射回客户端的调试信息?
  • 软件是否在寻找长时间运行的请求(因为调试模式在超时发生之前有效地延长了响应时间)?
2个回答

设置调试属性不会导致不同的错误页面。自定义错误页面在 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
  • 我们将路径设置为“/Test.aspx”或其他不存在的文件名
  • 添加 HTTP 标头“命令:停止调试”
  • 方法设置为“调试”
  • 删除(如果存在)参数“ReturnUrl”

修改请求:

 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