Web应用安全之Response Header

文/玄魂

目录

Web应用安全之Response Header

前言

1.1  那些敏感的header

1.2 删除敏感的header

1.2.1 删除server字段

1.2.2 删除X-Powered-By字段

1.2.3 删除 X-AspNet-Version字段

1.2.4 删除X-AspNetMvc-Version

 

前言

在Kali Linux(http://www.xuanhun521.com/Blog/Tag/kali%20linux)系列文章中,我提到过对目标站点的信息搜集技巧中最基本的就是Banner抓取。

通过对Web服务器的Banner抓取(分析response header),我们能得到关于Web服务器、应用框架、编程语言等信息。

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

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版本,只有asp.net站点有这样的header。

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

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

1.2 删除敏感的header

接下来以我本地的asp.net mvcz站点为例,讲解如何删除响应头中的敏感字段。

1.2.1 删除server字段

这里需要用到IIS扩展工具Url Scan,关于Url Scan的安装和配置项说明见之前的博文《URL Scan简介》。

打开URL Scan的配置文件( C:\Windows\System32\inetsrv\urlscan\UrlScan.ini),找到“RemoveServerHeader”,将值设置为1。配置之前:

配置之后:

1.2.2 删除X-Powered-By字段

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

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

1.2.3 删除 X-AspNet-Version字段

打开站点下的web.config,做如下配置:

<system.web>

<httpRuntime enableVersionHeader="false" />

</system.web>

1.2.4 删除X-AspNetMvc-Version

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

MvcHandler.DisableMvcResponseHeader = true;

最后的结果:

欢迎访问玄魂的博客

ps:对此文章或者安全、安全编程感兴趣的读者,可以加qq群:Hacking:303242737;Hacking-2群:147098303;Hacking-3群:31371755;hacking-4群:201891680;Hacking-5群:316885176

Web应用安全之Response Header里的敏感信息的更多相关文章

  1. C# WEB API ApiController 修改response header contentType

    var res = Request.CreateResponse(HttpStatusCode.OK, file); res.Content.Headers.ContentType = new Med ...

  2. 【Azure 应用服务】App Service 通过配置web.config来添加请求返回的响应头(Response Header)

    问题描述 在Azure App Service上部署了站点,想要在网站的响应头中加一个字段(Cache-Control),并设置为固定值(Cache-Control:no-store) 效果类似于本地 ...

  3. 【转】HTTP Response Header 的 Content-Disposition

    因为听到有同事讨论JSP输出Excel文件的,就是在页面上有一个[导出]按钮,能够将查询结果导出到Excel文件让用户下载.有人说要用POI在后台生成临时的Excel文件,然后通过读取FileStre ...

  4. ASP.NET MVCでResponse Headerのサーバーバージョンをどうやって隠しますか?

    本来是发布在客户的Wiki上的,所以用日语写. ---------------------------------------------------------------------------- ...

  5. 转:PHP--获取响应头(Response Header)方法

    转:http://blog.sina.com.cn/s/blog_5f54f0be0102uvxu.html PHP--获取响应头(Response Header)方法 方法一: ========== ...

  6. Wildfly8 更改response header中的Server参数

    项目经过局方安全检查需要屏蔽掉服务器中间件信息,查了一下午,网上看到的都是修改jboss7的,我们使用的wildfly8(jboss改名为wildfly),修改地方不一样,折磨了半天. jboss服务 ...

  7. ASP.NET MVC中移除冗余Response Header

    本文主要介绍如何优化ASP.NET MVC使用IIS时Response Header中的不必要的信息 默认的,创建一个ASP.NET MVC项目,会在Response Header中包含一些敏感的信息 ...

  8. RobotFramework下的http接口自动化Get Response header 关键字的使用

    Get Response header 关键字用来获取http请求返回的http响应头部数据. 常见的Response Header: Header 解释 示例 Accept-Ranges 表明服务器 ...

  9. nginx 错误502 upstream sent too big header while reading response header from upstream

    查看nginx的错误日志,得到以下错误信息:upstream sent too big header while reading response header from upstream按字面意思理 ...

随机推荐

  1. DOM BOM 常用API小记

    DOM 1.元素节点: 元素节点element: 更精确的获得元素的标签名(全大写) 属性节点attribute: 属性名 文本节点text: #text 注释节点document:#document ...

  2. Windows8 App Store 开发者会关心的文档

    在远程计算机上从 Visual Studio 调试和测试 Windows 应用商店应用程序 http://msdn.microsoft.com/zh-cn/library/windows/apps/h ...

  3. servlet 知识点 WebServlet("/")与WebServlet("/*")的区别

    (1)一个servlet的请求路径,如果配置成"/",那么它可以拦截除了.jsp之外的所有的请求. (2)一个servlet的请求路径,如果配置成"/*",那么 ...

  4. Mac下Maven安装与配置

    Mac下Maven安装与配置 下载maven http://maven.apache.org/download.cgi main->download菜单下的Files 下载后解压在Documen ...

  5. apache ab工具

    Apache ab并发负载压力测试   ab命令原理 Apache的ab命令模拟多线程并发请求,测试服务器负载压力,也可以测试nginx.lighthttp.IIS等其它Web服务器的压力. ab命令 ...

  6. 2018.11.24 poj3693Maximum repetition substring(后缀数组)

    传送门 后缀数组好题. 考虑枚举循环节长度lenlenlen. 然后考虑枚举循环节的起点来更新答案. 但是直接枚举每次O(n)O(n)O(n). 考虑枚举len∗k+1len*k+1len∗k+1作为 ...

  7. google pay app权限使用说明

    android.permission.CAMERA. 个人中心使用头像时需要使用该权限. android.permission.READ_PHONE.获取用户DeviceId,作为用户单点登录唯一值.

  8. myeclipse cannot connect to vm

    启动tomcat时,tomcat可以直接运行,而debug时弹出 解决方法:打开360安全卫士的功能大全找到修复网络(LSP)点击立即修复就可以使用debug

  9. mysql学习之路_sql

    查看数据库: Show databases; 查看指定部分数据库:模糊查询 Show databases like ‘patten’;--paatten是匹配模式 %:表示是匹配模式 _:表示匹配单个 ...

  10. 添加网络ADB的方法(含以太网和无线)

    将下面代码添加至packages/apps/Settings/src/com/android/settings/DevelopmentSettings.java 结合之前的添加wifi adb的博客 ...