Bag*_*esa 2 iis windows-server-2008-r2 iis-8 windows-10
我正在尝试按照MSDN 中的这篇文章从我的 HTTP 响应中删除Microsoft-HTTPAPI/2.0服务器标头。目前,我在 Windows Server 2008 R2 和 Windows 10 上应用基于注册表的解决方案,但没有成功。每当我发送带有空标头的 HTTP 请求时,我仍然会收到标头。Host
curl -X GET "127.0.0.1" -H "Host:" --head
Run Code Online (Sandbox Code Playgroud)
上面的命令返回 HTTP 400 Bad Request,带有Server: Microsoft-HTTPAPI/2.0.
是否有任何更新的方法来删除特定标头?我知道IIS 7 之前曾问过这个问题(可能该解决方案仍然有效),但重新启动并不能解决我上面提到的这两个 Windows 上的问题。
先感谢您。
附:我知道这种默默无闻的安全性,但审计人员想要它。
小智 5
如果响应的服务器标头返回“Microsoft-HttpApi/2.0”,则意味着正在调用 HTTP.sys 而不是 IIS。漏洞利用和端口扫描使用此作为对 IIS 服务器进行指纹识别的方法(即使是隐藏服务器标头的服务器)。
您可以使用 CURL 抛出错误来测试这一点:
curl -v http://www.yourdomain.com/ -H "Range: bytes=00-18446744073709551615"
Run Code Online (Sandbox Code Playgroud)
如果您的服务器正在发送标头,您将看到类似这样的内容:
HTTP/1.1 400 Bad Request
Content-Type: text/html; charset=us-ascii
Server: Microsoft-HTTPAPI/2.0
Date: Thu, 19 Dec 2019 00:45:40 GMT
Connection: close
Content-Length: 339
Run Code Online (Sandbox Code Playgroud)
您可以添加注册表值,以便 HTTP.sys 不包含标头。
添加注册表项后,响应如下所示:
HTTP/1.1 400 Bad Request
Content-Type: text/html; charset=us-ascii
Date: Thu, 19 Dec 2019 00:45:40 GMT
Connection: close
Content-Length: 339
Run Code Online (Sandbox Code Playgroud)
在此发帖,以便有需要的人可以找到。(谢谢,奥拉姆!)
| 归档时间: |
|
| 查看次数: |
14295 次 |
| 最近记录: |