首页
社区
课程
招聘
[翻译]web服务器指纹识别基本介绍
发表于: 2017-4-1 10:49 7611

[翻译]web服务器指纹识别基本介绍

2017-4-1 10:49
7611

这篇文章是新OWASP测试指南v4的一部分

返回整篇测试指南的目录:

  https://www.owasp.org/index.php/OWASP_Testing_Guide_v4_Table_of_Contents

返回整个测试指南项目:

  https://www.owasp.org/index.php/OWASP_Testing_Project

目录:

1 综述

2 测试目标

3 如何测试

 3.1 黑盒测试

 3.1.1 协议行为推断

4 测试工具

 4.1 自动化测试工具

 4.2 在线测试工具

5 参考资料

6 整改措施


综述


对于渗透测试人员来说,识别Web服务器是一项十分关键的任务。了解正在运行的服务器类型和版本能让测试者更好去

测试已知漏洞和大概的利用方法。


今天市场上存在着许多不同开发商不同版本的Web服务器。明确被测试的服务器类型能够有效帮助测试过程和决定测试

的流程。这些信息可以通过发送给web服务器测定命令,分析输出结果来推断出,因为不同版本的web服务器软件可能

对这些命令有着不同的响应。通过了解不同服务器对于不同命令的响应,并把这些信息保存在指纹数据库中,测试者可

以发送请求,分析响应,并与数据库中的已知签名相对比。请注意,由于不同版本的服务器对于同一个请求可能有同样

的响应,所以可能需要多个命令请求才能准确识别web服务器。十分罕见的,也有不同版本的服务器响应的请求毫无差

别。因此,通过发送不同的命令请求,测试者能增加猜测的准确度。


测试目标


发现运行的服务器的版本和类型,来决定已知漏洞和利用方式。


如何测试


黑盒测试


最简单也是最基本的方法来鉴别web服务器就是查看HTTP响应头中的"Server"字段。下面实验中我们使用Netcat:

考虑如下HTTP请求响应对:

从 Server 字段,我们可以发现服务器可能是Apache,版本1.3.3,运行在Linux系统上。

下面展示了4个其他服务器响应的例子。

Apache 1.3.23 服务器:

Microsoft IIS 5.0 服务器:

Netscape Enterprise 4.1 服务器:

SunONE 6.1 服务器:

但是,这种测试方法有时候并不准确。网站有多种方法混淆或者改变服务器的标识字段。例如我们可能得到如下结果:

在这个例子中,Server字段已经被混淆,测试者并不能从中得到服务器的信息。


协议行为推断


更好的方法是从web服务器的不同特征上入手。下面是一些推断web服务器类型的方法:


HTTP头字段顺序


第一个方法通过观察响应头的组织顺序。每个服务器都有一个内部的HTTP头排序方法,考虑如下例子:

Apache 1.3.23 响应

IIS 5.0 响应

Netscape Enterprise 4.1 响应

SunONE 6.1 响应

我们注意到 Date 和 Server 字段在Apache、Netscape Enterprise和IIS中有所区别。


畸形的请求测试


另一个有用测试是发送畸形的请求或者不存在的页面请求,考虑如下HTTP响应:


Apache 1.3.23

IIS 5.0

Netscape Enterprise 4.1

SunONE 6.1

我们发现每个服务器都有不同的应答方式,而且不同版本也有所不同响应。类似的结果也能通过构造不存在的HTTP方

法/谓词来获得。考虑如下例子:

Apache 1.3.23


[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

收藏
免费 1
支持
分享
最新回复 (2)
雪    币: 26205
活跃值: (63302)
能力值: (RANK:135 )
在线值:
发帖
回帖
粉丝
2
感谢分享
2017-4-1 13:59
0
雪    币: 224
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
www.netcraft.com  这个是好网站
2018-4-2 00:27
0
游客
登录 | 注册 方可回帖
返回
//