如果响应的服务器标头返回“ Microsoft-HttpApi / 2.0”,则表示正在调用HTTP.sys而不是IIS。漏洞利用和端口扫描将其用作对IIS服务器进行指纹识别的一种方法(甚至可以隐藏IIS服务器头)。
您可以使用CURL抛出错误来进行测试:
curl -v http://www.yourdomain.com/ -H "Range: bytes=00-18446744073709551615"
如果您的服务器正在发送标头,您将看到以下内容:
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
您可以添加注册表值,以便HTTP.sys不包含标头。
- 打开注册表编辑器
- 导航到:Computer \ HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Services \ HTTP \ Parameters
- 如果DisableServerHeader不存在,则创建它(DWORD 32位)并将其值设置为2。如果确实存在,并且该值不为2,则将其设置为2。
- 重新启动服务器或通过调用“ net stop http”然后“ net start http”重新启动HTTP服务
参考:WS / WCF:删除服务器头
添加注册表项后,响应如下所示:
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
张贴在这里,以便有需要的人可以找到它。(谢谢,欧兰!)