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. 解决CentOS7-python-pip安装失败

    Pip介绍 pip 是一个安装和管理 Python 包的工具,python安装包的工具有easy_install, setuptools, pip,distribute.使用这些工具都能下载并安装dj ...

  2. mysql官网

    https://dev.mysql.com/doc/mysql-yum-repo-quick-guide/en/

  3. Maximum Average Subarray I LT643

    Given an array consisting of n integers, find the contiguous subarray of given length k that has the ...

  4. Ubuntu上搭建Hadoop环境(单机模式+伪分布模式) (转载)

    Hadoop在处理海量数据分析方面具有独天优势.今天花了在自己的Linux上搭建了伪分布模式,期间经历很多曲折,现在将经验总结如下. 首先,了解Hadoop的三种安装模式: 1. 单机模式. 单机模式 ...

  5. Spark Streaming性能调优详解

    Spark Streaming性能调优详解 Spark  2015-04-28 7:43:05  7896℃  0评论 分享到微博   下载为PDF 2014 Spark亚太峰会会议资料下载.< ...

  6. [C#.Net]C#连接Oracle数据库的方法

    首先介绍下开发环境:WIn10 64bit+Visual Studio 2015+Oracle10ClientWin32(只是客户端,如果安装整个数据库也是可以的) 目前了解C#中连接Oracle数据 ...

  7. 强连通缩点— HDU1827

    强连通缩点以后最终形成的是一棵树 我们可以根据树的性质来看缩点以后的强连通分量图,就很好理解了 /* gyt Live up to every day */ #include<cstdio> ...

  8. 2019.01.02 poj3046 Ant Counting(生成函数+dp)

    传送门 生成函数基础题. 题意:给出nnn个数以及它们的数量,求从所有数中选出i∣i∈[L,R]i|i\in[L,R]i∣i∈[L,R]个数来可能组成的集合的数量. 直接构造生成函数然后乘起来f(x) ...

  9. 2019.01.02 poj1322 Chocolate(生成函数+二项式定理)

    传送门 生成函数好题. 题意简述:一个袋子里有ccc种不同颜色的球,现要操作nnn次,每次等概率地从袋中拿出一个球放在桌上,如果桌上有两个相同的球就立刻消去,问最后桌上剩下mmm个球的概率. 第一眼反 ...

  10. QT5中无法包含Qtgui头文件的问题。

    今天新学QT是,从一个ppt中边看边抄边学.前几页还能理解,但到了用纯源码写空白QT工程时,便遇到了一个问题.头文件里包含 #include  <QtGui> 但是编译时总是出现下面图一中 ...