是的,理论上通过广告供应商和横幅中的版本使攻击者的工作更容易,但只是一点点。
即使你不做广告,也可以从应用程序的行为中弄清楚。以网络扫描工具nmap为例:
Nmap 提供了许多用于探测计算机网络的功能,包括主机发现以及服务和操作系统检测。这些功能可以通过提供更高级服务检测、漏洞检测和其他功能的脚本进行扩展。
来源:维基百科
在使用其他扫描方法之一发现 TCP 和/或 UDP 端口后,版本检测会询问这些端口以确定更多关于实际运行的内容。nmap-service-probes 数据库包含用于查询各种服务和匹配表达式以识别和解析响应的探针。
来源:nmap 文档。
基本上,nmap 将首先尝试确定它是否是 apache / nginx / IIS 等,它将通过发送一个特定的数据包来完成,它知道不同的 Web 服务器将响应不同的数据包。然后,一旦它知道它是 apache,它就会发送针对在一个版本和另一个版本之间发生变化的行为的数据包,可能是由于错误修复或新功能。
正如@paj28 在评论中指出的那样,nmap 非常擅长检测供应商,但是在版本中遇到问题,当 nmap 显示详细的版本信息时,这可能是因为有一个横幅。当然,如果你想破解,为什么还要费心去弄清楚版本呢?一旦你知道它是 apache,为什么不直接运行 metasploit 中的所有 apache 漏洞利用脚本,看看它们是否存在?
所以是的,理论上可以为“这是所有 Web 服务器的行为方式”编写规范,但这意味着您不允许 Web 服务器进行创新或修复错误。此外,Web 服务器将希望通过其他服务器没有的功能来区分自己。
正如@TripeHound 所指出的,版本横幅可以被认为是安全的胜利,因为它们允许系统管理员轻松清点他们的系统并保持最新状态。
TL;DR:横幅与否,您可以弄清楚您正在与之交谈的网络服务器和操作系统。
Nmap 示例
由于这篇文章很受欢迎,我将添加一些示例:
Apache httpd 将版本信息放在 HTTP 标头中:
HTTP/1.1 200 OK
Date: Thu, 17 Oct 2019 14:26:10 GMT
Server: Apache/2.4.6 (CentOS)
不出所料,nmap 选择了这个:
~ nmap 192.168.56.107 -p 80 -A --version-all
Starting Nmap 7.60 ( https://nmap.org ) at 2019-10-17 07:58 EDT
Nmap scan report for 192.168.56.107
Host is up (0.0020s latency).
PORT STATE SERVICE VERSION
80/tcp open http Apache httpd 2.4.6 ((CentOS))
| http-methods:
|_ Potentially risky methods: TRACE
|_http-server-header: Apache/2.4.6 (CentOS)
|_http-title: Apache HTTP Server Test Page powered by CentOS
Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 14.23 seconds
如果我们尝试一些更棘手的事情,Apache Tomcat 不会给出明显的横幅:
HTTP/1.1 200
Accept-Ranges: bytes
ETag: W/"1896-1527518937672"
Last-Modified: Mon, 28 May 2018 14:48:57 GMT
Content-Type: text/html
Content-Length: 1896
Date: Thu, 17 Oct 2019 14:35:05 GMT
Connection: close
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title>Apache Tomcat</title>
</head>
...
我们看到 nmap 得到了供应商的权利,但没有猜测版本:
~ nmap -A -p 8080 192.168.56.1
Starting Nmap 7.60 ( https://nmap.org ) at 2019-10-17 10:34 EDT
Nmap scan report for 192.168.56.1
Host is up (0.0013s latency).
PORT STATE SERVICE VERSION
8080/tcp open http Apache Tomcat
| http-methods:
|_ Potentially risky methods: PUT DELETE
|_http-open-proxy: Proxy might be redirecting requests
|_http-title: Apache Tomcat
Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 21.71 seconds