Apache ServerAlias 的普通通配符

Apache ServerAlias 的普通通配符

ServerAlias *在 Apache 配置中使用可能存在什么问题吗?

我考虑了一件事:ServerAlias基于客户端提供的 HTTP 标头中的 HTTP_HOST,显然客户端可以手动修改。用户是否可以通过 HTTP_HOST 发送任何可能对服务器有害/损坏的值?

答案1

嗯,其实没必要这么做。如果其他VirtualHosts主机名都不匹配,服务器将使用默认虚拟主机,即配置中的第一个虚拟主机。因此,默认虚拟主机通常命名为000-default; ,以便成为 中的第一个/etc/apache2/sites-enabled

因此,您可以通过将 中的符号链接重命名sites-enabled为第一个来实现相同的结果。或者您可以将 设置000-default为重定向到您的实际域。

我认为目前 Apache 中没有任何已知漏洞可以利用HTTP_HOST。但是,这取决于您在默认虚拟主机上运行的应用程序,例如允许通过 修改某些可利用变量的 PHP 脚本HTTP_HOST。实际上,通过使 成为000-default重定向,您也可以避免这种(较小的)风险。

答案2

在我看来,答案是“不”。正如艾萨·约基宁Apache 本身可能不会因为使用而受到直接损害,HTTP_HOST但会给运行在 Apache 上的应用程序带来问题。从此,恶意攻击的可能性呈指数级增长。

读完这篇文章后实用的 HTTP Host 头攻击可以更好地理解HTTP_HOST攻击是如何发生的,以及它们可能产生的影响。文章中有一个攻击示例使用 curl 来欺骗HTTP_HOST以包含额外的非预期内容。以下是连接到本地主机并保存输出的类似示例:

curl -H "Host: fakehostPLUS\"onerror='alert(1)'rel='stylesheet'" localhost -o file.html

相关内容