我需要找到一个编码版本的文件或一种在网络上进行轮询的方式,以便显示其版本.虽然我可以通过FTP浏览安装位置,但服务器正在主机上运行,但不会为我提供命令行访问权限.
我已经尝试过HEAD并且没有报告版本号.
如果我尝试丢失页面来获取404它将被拦截,并返回一个没有服务器信息的库存页面.我想这表明服务器正在变硬.
仍然没有更近......
我按照建议添加了一个PHP文件,但是我无法浏览它并且无法确定将加载它的URL路径.在任何情况下,我都会收到大量访问被拒绝的消息和相同的404页面.我知道服务器受到很强的保护,我感到很欣慰.
连接到主机上的端口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版本
您可以使用的典型工具您可以使用完整安装Perl的LWP库附带的HEAD实用程序,例如
HEAD http://your.webserver.com/
或者,使用curl实用程序,例如
curl --head http://your.webserver.com/
您还可以使用浏览器扩展来查看服务器标头,例如Live HTTP Headers或Firebug for Firefox,或Fiddler for IE
坚持使用Windows?最后.如果您使用的是Windows,并且没有任何其他内容可供使用,请打开命令提示符("开始"菜单 - >"运行",键入"cmd"并按"返回"),然后键入此
telnet your.webserver.com 80
然后输入(仔细,你的角色不会被回复)
HEAD / HTTP/1.0
按两次返回,您将看到服务器标题.
其他方法如cfeduke和Veynom所述,服务器可能被设置为在Server:头中返回有限的信息.尝试将PHP脚本上传到主机中
使用Web浏览器请求页面,您应该看到在那里报告的Apache版本.
您也可以尝试使用PHPShell进行搜索,尝试使用类似命令
/usr/sbin/apache2 -V
httpd -v
将为您提供服务器上运行的Apache版本(如果您有SSH/shell访问权限).
输出应该是这样的:
Server version: Apache/2.2.3 Server built: Oct 20 2011 17:00:12
正如已经建议的那样,你也可以做apachectl -v
同样的输出,但是会有更多版本的Linux支持.
很少,强化的HTTP服务器配置为不提供服务器信息或误导服务器信息.在这些情况下,如果服务器启用了PHP,您可以添加:
在文件中浏览并查找
_SERVER["SERVER_SOFTWARE"]
条目.虽然我认为它不会经常改变,但是这种方法很容易受到相同的强化缺乏信息/误导的影响,因为这种方法首先需要访问机器才能创建PHP文件.