Response Header里的Server,X-Powered-By,X-AspNet-Version字段等敏感信息删除

Response Header里的Server,X-Powered-By,X-AspNet-Version字段等敏感信息删除

 

简介

通过抓包工具burpsuite或者fiddler抓取分析response header包含的字段信息,我们能得到关于Web服务器、应用框架、编程语言等信息。

很多公司安全部门的都会对应用系统进行安全漏洞扫描,其中一项就是过滤敏感信息。response header中的敏感信息及修复方式如下。

下图是某网站的http 响应头。

Response Header里的Server,X-Powered-By,X-AspNet-Version字段等敏感信息删除_第1张图片

 

1.1  HEADER中包含的敏感字段

在上图中圈出的部分,我们关注以下几个字段(针对asp.net应用常见的,并非全部):

Serverweb服务器的版本。通常我们会看到 “Microsoft-IIS/7.5”, “nginx/1.0.11” 和 “Apache”这样的字段。

X-Powered-Byweb应用框架信息。常见例子,“ASP.NET”, “PHP/5.2.17” 和“UrlRewriter.NET 2.0.0”。

X-AspNet-Version: asp.net版本,只要集成IIS的站点都有这样的header

X-AspNetMvc-Version:asp.net mvc 版本使用asp.net mvc框架会有此字段。

通常情况下这些信息并不会直接带来危险,但是如果某一天IIS的某个版本爆了一个0day漏洞,那么攻击者会根据响应头在很短的时间内找到大批的IIS站点进行攻击。另外攻击者会根据搜集到的信息结合已有漏洞进行推论和尝试,正确的信息会加快攻击者找到漏洞的步伐。

所以很多公司安全部门都会要求必须过滤掉这些敏感信息。

1.2 删除敏感的HEADER

以我实际工作中遇到的客户要求为例,看下如何删除响应头中的敏感字段。

1.2.1 删除SERVER字段(针对所有集成IIS发布站点的应用

这里需要用到IIS扩展工具Url Scan,下载地址 URLScan3.1 64位

Response Header里的Server,X-Powered-By,X-AspNet-Version字段等敏感信息删除_第2张图片

双击安装

如果弹出如下的窗口说明电脑没有安装IIS,必须安装IIS后才能安装urlscan

urlscan使用详解

Response Header里的Server,X-Powered-By,X-AspNet-Version字段等敏感信息删除_第3张图片

如果安装了IIS还是报上面的错误那就是少安装一个组件如下图所示:(进入服务器操作系统勾选如图所示红色框内选项后点击下一步安装即可【不需要重启IIS】)

Response Header里的Server,X-Powered-By,X-AspNet-Version字段等敏感信息删除_第4张图片

IIS安装如果没有问题,点击UrlScan安装包后则会显示正常的安装界面

Response Header里的Server,X-Powered-By,X-AspNet-Version字段等敏感信息删除_第5张图片

一直下一步直到finish即可。

安装好以后不用重启电脑或者IIS服务

直接打开URL Scan的配置文件( C:\Windows\System32\inetsrv\urlscan\UrlScan.ini),找到“RemoveServerHeader”,将值设置为1。不用重启IIS服务,直接刷新抓包就会发现Server已经消失。

配置之前:

Response Header里的Server,X-Powered-By,X-AspNet-Version字段等敏感信息删除_第6张图片

配置之后: 

Response Header里的Server,X-Powered-By,X-AspNet-Version字段等敏感信息删除_第7张图片

另外安装了UrlScan的后系统中的所有请求地址包含中文的都默认无法使用。

需要在URL Scan的配置文件( C:\Windows\System32\inetsrv\urlscan\UrlScan.ini)中配置  AllowHighBitCharacters=1 来开启URL中文支持即可。

1.2.2 删除X-POWERED-BY字段(针对所有集成IIS发布站点的应用

打开IIS管理器,切换到站点视图,打开“HTTP响应标头”。

Response Header里的Server,X-Powered-By,X-AspNet-Version字段等敏感信息删除_第8张图片

Response Header里的Server,X-Powered-By,X-AspNet-Version字段等敏感信息删除_第9张图片

在这里删除X-Powered-By字段。

Response Header里的Server,X-Powered-By,X-AspNet-Version字段等敏感信息删除_第10张图片

删除后不用重启IIS,直接刷新站点抓包即可发现 X-POWERED-BY 已经消失。

如果如上操作删除X-Powered-By对其他站点有影响的话,也可以通过如下配置文件的方式去除该响应头。

在IIS根目录下的web.config文件中如下图红色框位置添加移除该消息头的配置项即可。

Response Header里的Server,X-Powered-By,X-AspNet-Version字段等敏感信息删除_第11张图片

1.2.3 删除 X-ASPNET-VERSION字段(针对所有集成IIS发布站点的应用

打开站点下的web.config,做如下配置:(在httpRuntime页签中添加enableVersionHeader="false"属性,与该页签其他属性无关

如果没有 <system.web>配置项,添加即可。



     

           
            enableVersionHeader="false" requestValidationMode="2.0" requestPathInvalidCharacters="" /> 
            ...... 
     

     

            ......
     

      ......

删除后不用重启IIS,直接刷新站点抓包即可发现 X-ASPNET-VERSION 已经消失

--------     web.config文件 中的如下配置是将IIS站点中的文件编码格式统一配置为utf-8 避免程序文件或者上传的文件出现中文乱码问题   -----------------

----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

1.2.4 删除X-ASPNETMVC-VERSION(只针对asp.net

打开Global.asax文件,在Application_Start函数中添加如下代码:

MvcHandler.DisableMvcResponseHeader = true;

最后的结果:

Response Header里的Server,X-Powered-By,X-AspNet-Version字段等敏感信息删除_第12张图片

你可能感兴趣的:(IIS安全)