(转载翻译)OWASP测试指南v5 4.1.2 WEB指纹服务器

nicky   ·   发表于 2020-03-29 19:58:21   ·   技术文章投稿区

概要

WEB服务指纹识别是用来识别目标所运行的WEB服务器类型和版本。虽然WEB服务器指纹通常封装在自动测试工具中,但对于研究人员而言,重要的是了解这些工具如何尝试识别软件的基础以及有什么用

准确发现运行应用程序的WEB服务器的类型可以使安全测试人员确定应用程序是否易受到攻击。尤其是运行较旧版本软件且没有最新安全补丁的服务器可能会受到特定版本的已知利用的影响。

测试目的

确定正在运行的WEB服务器的版本和类型,以进一步发现任何已知的漏洞。

测试方法

用于WEB服务器指纹识别的技术包括标志获取,引发对格式错误的请求响应,以及使用自动化工具来执行结合策略判断的更强大扫描工具。这些技术操作的基本前提是相同的。他们都努力从WEB服务器上引起一些响应。然后从这些响应与已知响应和行为的数据库进行比较,从而与已知服务器类型进行匹配。

标识识别

通过将HTTP请求发送到WEB服务器并检查其响应头来执行标识识别。这可以使用多种工具来完成,包括Telnet是用HTTP请求或者是openssl用来基于SSL请求。

比如,这是对来自Apache服务器请求的响应。

这是另外一个回响,这次是nginx:

这是lighttpd的回响:

在这些示例中,清楚的显示了服务器类型和版本。但是,注重安全性的应用可能会混淆其服务器信息。比如说这里就是对具有修改后的标志头的网站请求的响应摘录:

在服务器信息被遮掩的情况下,渗透测试人员可能会根据header里面的内容来猜测服务器类型。请注意在上面的Apache例子中,字段遵循以下顺序:
1.日期
2.服务器
3.最后修改的时间
4.标签
5.接受范围
6.内容长度
7.连接
8.内容类型

然而在nginx和模糊服务器示例中,公共字段遵循以下顺序:
服务器
日期
内容类型

渗透测试人员可以用此信息来猜测被遮盖的服务器是nginx。但是,考虑到许多不同的WEB服务器可能共享相同的字段顺序,并且可以修改或删除字段,因此这个方法不完全正确

发送格式化错误的请求

可以通过检查WEB服务器的错误响应来识别WEB服务器,如果未自定义WEB服务器,则可以通过其默认错误页面进行识别。迫使服务器呈现这些内容的一种方法是故意发送不正确或格式错误的请求。

比如,这是对Apache服务器对不存在SANTACLAUS方法的请求回应:

这是对nginx相同请求的响应:

这是对lighttpd相同请求的响应:

由于默认错误页面在WEB服务器类型之间提供了许多不同的因素,因此即使模糊了服务器的head字段,检查他们用这种方法也是可以的。

使用自动化测试工具

如前面说到的那样,WEB服务器指纹识别通常被包括在自动扫描工具之内。这些工具可以发出上面类似的请求来证明,并发送其它更特定于服务器的探针。自动化工具可以比手工更快的确定这些回应,并利用已知响应的大型数据库来尝试识别服务器信息。,因此自动化工具更被人喜欢。

下面列举一些常用的识别WEB服务器指纹的工具:
Netcraft,在线的网站扫描,可以扫描信息和服务器(可以访问到,但是有点慢)
Nikto,开源的命令行扫描工具(Kali自带)
Nmap,开源的命令行扫描工具

转载:https://github.com/OWASP/wstg/blob/master/document/4-Web_Application_Security_Testing/01-Information_Gathering/02-Fingerprint_Web_Server.md

用户名金币积分时间理由
奖励系统 100.00 0 2020-09-12 18:06:38 投稿满 10 赞奖励
奖励系统 50.00 0 2020-09-11 19:07:18 投稿满 5 赞奖励

打赏我,让我更有动力~

0 Reply   |  Until 2020-3-29 | 1006 View
LoginCan Publish Content
返回顶部 投诉反馈

© 2016 - 2022 掌控者 All Rights Reserved.