我需要找到一个文件,其中的版本是编码的,或者是一种在网络上轮询它的方式,这样它就可以显示它的版本。虽然我可以通过FTP浏览安装位置,但服务器运行在不向我提供命令行访问的主机上。
我试过HEAD,但没有得到报告的版本号。
如果我尝试一个缺失的页面来获取404,它会被拦截,并返回一个没有服务器信息的库存页面。我猜这表明服务器正在变得更加坚固。
仍然没有更近..。
我按照建议上传了一个PHP文件,但我无法浏览到它,也找不到加载它的URL路径。在任何情况下,我得到了大量的访问被拒绝的消息和相同的股票404页面。我知道服务器受到了很好的保护,这让我感到些许安慰。
发布于 2008-10-03 12:40:32
该方法
连接到主机上的端口80并将其发送
HEAD / HTTP/1.0
后面需要两次回车符+换行符
你会得到像这样的东西
HTTP/1.1 200 OK
Date: Fri, 03 Oct 2008 12:39:43 GMT
Server: Apache/2.2.9 (Ubuntu) DAV/2 SVN/1.5.0 PHP/5.2.6-1ubuntu4 with Suhosin-Patch mod_perl/2.0.4 Perl/v5.10.0
Last-Modified: Thu, 02 Aug 2007 20:50:09 GMT
ETag: "438118-197-436bd96872240"
Accept-Ranges: bytes
Content-Length: 407
Connection: close
Content-Type: text/html; charset=UTF-8
然后,您可以从Server:头文件中提取apache版本
您可以使用的典型工具
您可以使用HEAD实用程序,它随完整安装的Perl的LWP库一起提供,例如
HEAD http://your.webserver.com/
或者,使用curl实用程序,例如
curl --head http://your.webserver.com/
您还可以使用浏览器扩展来查看服务器标头,例如用于Firefox的Live HTTP Headers或Firebug,或用于IE的Fiddler
坚持使用Windows?
终于来了。如果您使用的是Windows,并且没有其他命令可用,请打开命令提示符(开始菜单->运行,键入"cmd“并按return键),然后键入以下内容
telnet your.webserver.com 80
然后输入(小心,你的字符不会被回显)
HEAD / HTTP/1.0
按两次return键,您将看到服务器标头。
其他方法
正如cfeduke和Veynom所提到的,可以将服务器设置为在Server:头中返回有限的信息。尝试将包含以下内容的PHP脚本上传到主机
<?php phpinfo() ?>
使用web浏览器请求该页面,您应该会看到那里报告的Apache版本。
您还可以尝试使用PHPShell来进行查看,尝试使用如下命令
/usr/sbin/apache2 -V
发布于 2012-08-24 21:32:09
httpd -v
将为您提供在您的服务器上运行的Apache版本(如果您具有SSH/shell访问权限)。
输出应如下所示:
Server version: Apache/2.2.3
Server built: Oct 20 2011 17:00:12
正如所建议的,您也可以使用apachectl -v
,它会给出相同的输出,但会得到更多版本的Linux的支持。
发布于 2008-10-03 12:48:54
强化的HTTP服务器很少配置为不提供服务器信息或误导性的服务器信息。在这些场景中,如果服务器启用了PHP,您可以添加:
<?php phpinfo(); ?>
在一个文件中,浏览到该文件并查找
_SERVER["SERVER_SOFTWARE"]
进入。这同样容易受到缺乏信息/误导的影响,尽管我认为它不会经常更改,因为这种方法首先需要访问机器才能创建PHP文件。
https://stackoverflow.com/questions/166607
复制相似问题