【服务器组件】如何辨别服务器组件
1. IIS(Internet Information Services)
定义和用途 :是微软开发的一款Web服务器软件,主要用于在Windows服务器上托管网站和Web应用程序。它与Windows操作系统紧密集成,提供了图形化的管理界面,方便管理员进行配置。辨别方法 :
运行环境 :通常运行在Windows服务器系统上,如Windows Server 2012、2016、2019等。默认端口 :默认使用的HTTP端口是80,HTTPS端口是443。可以通过在浏览器中访问http://服务器IP地址
来查看是否出现IIS的默认页面或者相关的网站内容。文件扩展名关联 :常与.asp
(ASP - Active Server Pages)和.aspx
(ASP.NET)等文件类型关联。如果网站的网页文件是这些扩展名,有可能是基于IIS服务器运行的。
2. Apache
定义和用途 :是一款开源的、跨平台的Web服务器软件,在Linux系统中应用广泛,具有高度的可定制性和稳定性,能够支持多种编程语言和技术。辨别方法 :
运行环境 :可以在多种操作系统上运行,包括Linux、Unix、Windows等,但在Linux系统上最为常见。在Linux中,可以通过查看系统进程来确认是否有httpd
(Apache的守护进程名称)在运行,使用命令如ps -ef | grep httpd
。默认端口 :默认的HTTP端口也是80,和IIS类似。可以通过访问网站的IP地址或域名,如果返回的页面是由Apache服务器提供的,可能会在页面底部看到类似“Powered by Apache”的字样,不过这可以被修改或隐藏。配置文件 :其主要的配置文件是httpd.conf
,通过查看服务器上是否存在这个文件以及其内容(例如包含大量的服务器配置指令如ServerRoot
、DocumentRoot
等)可以帮助判断是否是Apache服务器。
3. Nginx
定义和用途 :是一个高性能的HTTP和反向代理服务器,也可以作为邮件代理服务器,以其高并发处理能力和低资源消耗而著称。辨别方法 :
运行环境 :可以运行在多种操作系统上,包括Linux、Unix、Windows等。在Linux系统中,可以通过查看进程来确认是否有nginx
进程在运行,例如使用命令ps -ef | grep nginx
。默认端口 :默认的HTTP端口是80,HTTPS端口是443。Nginx的默认页面通常比较简洁,有“Welcome to nginx!”的字样。配置文件 :主要的配置文件是nginx.conf
,其配置语法与Apache的httpd.conf
有所不同,有server
块用于定义服务器相关的配置,location
块用于定义URL路径的处理规则等。通过查看这些配置文件的存在和内容可以辅助判断。
4. WebLogic
定义和用途 :是Oracle公司开发的一款用于企业级Java应用程序的应用服务器,支持Java EE(Enterprise Edition)规范,能够处理复杂的企业级业务逻辑。辨别方法 :
运行环境 :主要运行在Java虚拟机(JVM)环境下,通常部署在企业级的服务器上,支持多种操作系统,如Linux、Windows、Solaris等。应用类型关联 :如果网站或应用是基于Java EE技术构建的大型企业应用,如EJB(Enterprise JavaBeans)应用,很可能使用WebLogic作为应用服务器。可以查看应用的部署描述文件(如weblogic - deploy.xml
)来确认是否使用了WebLogic。管理控制台 :有一个功能强大的Web - based管理控制台,默认端口一般是7001(可以修改)。通过访问http://服务器IP地址:7001/console
可以进入管理控制台登录页面,如果出现WebLogic的登录界面,就可以确定是WebLogic服务器。
5. Tomcat
定义和用途 :是一个开源的、轻量级的Java应用服务器,主要用于运行Java Servlet和JavaServer Pages(JSP)技术构建的Web应用程序。辨别方法 :
运行环境 :运行在Java虚拟机(JVM)之上,对Java环境有依赖。可以在多种操作系统上运行,如Linux、Windows等。默认端口 :默认的HTTP访问端口是8080(可以修改)。通过访问http://服务器IP地址:8080
,如果看到Tomcat的默认欢迎页面或者部署在上面的Java Web应用的首页,就可以初步判断是Tomcat服务器。应用文件类型关联 :如果网站应用包含大量的.jsp
(JavaServer Pages)和.java
(Servlet代码)文件,并且这些文件被编译成.class
文件部署在服务器上,很可能是基于Tomcat服务器运行的。
6. Jboss
定义和用途 :是一个开源的、符合Java EE规范的应用服务器,用于开发和部署企业级Java应用程序,提供了丰富的服务和功能,如EJB容器、消息传递等。辨别方法 :
运行环境 :基于Java虚拟机(JVM)运行,支持多种操作系统。可以通过查看服务器上是否有Jboss相关的进程来判断,在Linux系统下,使用命令ps -ef | grep jboss
。默认端口 :默认端口有多个,例如管理控制台端口一般是9990,HTTP端口是8080(可以修改)。访问http://服务器IP地址:9990/console
如果出现Jboss的管理控制台登录页面,就可以确定是Jboss服务器。应用关联 :和WebLogic、Tomcat类似,如果是大型的Java EE企业应用,特别是涉及EJB等技术,可能会使用Jboss作为应用服务器。可以查看应用的部署文件(如jboss - deployment - structure.xml
)来辅助判断。
7. Shiro
定义和用途 :是一个强大的Java安全框架,用于身份验证、授权、加密和会话管理等安全功能,通常集成在Java应用程序中,而不是像前面几种是服务器软件。辨别方法 :
代码层面 :如果查看Java应用程序的源代码或编译后的代码,发现有导入org.apache.shiro
相关的包,如org.apache.shiro.authc
(用于身份验证)、org.apache.shiro.authz
(用于授权)等,就可以判断该应用使用了Shiro框架。配置文件 :Shiro有自己的配置文件(通常是shiro.ini
或者基于Java的配置类),在配置文件中会定义安全管理器(Security Manager)、 realms(用于获取用户信息等)、认证策略等安全相关的设置。通过查找这些配置文件可以辅助判断应用是否使用了Shiro。
8. Log4j
定义和用途 :是一个流行的Java日志记录框架,用于在Java应用程序中记录日志信息,方便开发者进行调试和问题追踪。辨别方法 :
代码层面 :在Java应用的源代码或编译后的字节码中,查找是否有导入org.apache.log4j
相关的包,如org.apache.log4j.Logger
用于创建日志记录器。如果有这些导入语句,很可能使用了Log4j。配置文件 :Log4j有配置文件(如log4j.properties
或log4j.xml
),其中定义了日志记录的级别(如DEBUG、INFO、WARN等)、日志输出的目的地(如控制台、文件等)和日志格式等。通过查找这些配置文件可以帮助判断是否使用了Log4j。
9. Fastjson
定义和用途 :是一个Java语言编写的高性能JSON处理库,用于在Java应用中实现JSON数据的序列化和反序列化。辨别方法 :
代码层面 :在Java应用的源代码或字节码中,查找是否有导入com.alibaba.fastjson
相关的包,如com.alibaba.fastjson.JSONObject
用于处理JSON对象,com.alibaba.fastjson.JSONArray
用于处理JSON数组。如果有这些导入,很可能使用了Fastjson。功能特性关联 :如果应用程序需要频繁地进行JSON数据的解析和生成,例如在Web服务接口中,将Java对象转换为JSON格式返回给客户端,或者从客户端接收JSON数据并转换为Java对象,可能会使用Fastjson。
10. Struts2
定义和用途 :是一个基于MVC(Model - View - Controller)模式的Java Web应用框架,用于开发企业级的Web应用程序,简化了Web开发的流程。辨别方法 :
代码层面 :在Java Web应用的源代码中,查找是否有导入org.apache.struts2
相关的包,如org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter
(这是Struts2的核心过滤器)。如果有这些导入,很可能使用了Struts2。配置文件 :Struts2有自己的配置文件(如struts.xml
),其中定义了action(业务逻辑处理单元)、result(视图结果)等内容。通过查找这个配置文件可以辅助判断是否使用了Struts2。同时,Struts2的应用通常会有.action
扩展名的URL路径(可以自定义),用于访问对应的action。
11.补充
1. 通过HTTP响应头信息判断
IIS :
IIS服务器在响应头中通常会包含Server: Microsoft - IIS
相关字样。例如,Server: Microsoft - IIS/10.0
,其中10.0
是IIS的版本号。 Apache :
响应头中可能会出现Server: Apache
字样。不同版本的Apache可能还会附带更详细的版本信息,如Server: Apache/2.4.57 (Unix)
,这里的2.4.57
是Apache的版本,(Unix)
表示服务器操作系统类型。 Nginx :
其响应头中常常有Server: nginx
相关内容。比如Server: nginx/1.24.0
,1.24.0
为Nginx的版本号。
2. 查看特定的文件和目录结构(有一定概率)
Tomcat :
可以尝试访问/manager/html
(默认情况下,如果没有修改路径),这是Tomcat的管理界面路径。如果能够访问(当然,在实际安全测试中,可能需要认证才能访问到完整功能),就很有可能是Tomcat服务器。并且在应用的目录结构中可能会看到WEB - INF
这样典型的Java Web应用目录结构。 Jboss :
Jboss通常会有自己特定的部署目录结构,例如standalone/deployments
目录用于部署应用。如果发现这样的目录结构,可能是Jboss服务器。 Weblogic :
寻找console
目录,如/console
(默认路径),这是Weblogic的管理控制台路径。如果可以访问这个路径或者发现与之相关的文件引用,很可能是Weblogic服务器。
3. 通过端口判断(有一定参考性)
IIS :
通常使用80和443端口(HTTP和HTTPS),不过这两个端口也是其他服务器常用的,所以不能仅凭端口判断。但如果结合其他线索,比如在Windows环境下且开放了80或443端口,IIS的可能性会增加。 Apache :
常见的是80和443端口,也可以配置在其他端口运行。如果发现服务器监听这些常见端口,并且有前面提到的Apache响应头特征等线索,有助于判断。 Nginx :
同样多使用80和443端口。有些情况下,Nginx也会作为反向代理,监听其他后端服务器的端口,比如监听8080等端口来代理Tomcat(8080端口是Tomcat默认的HTTP服务端口)。 Tomcat :
默认的HTTP服务端口是8080,AJP(Apache - Tomcat Connector)端口是8009。不过在实际生产环境中,这些端口可能会被修改。 Jboss :
常用的端口包括8080、8443等,用于HTTP和HTTPS服务。 Weblogic :
管理端口通常是7001,HTTP服务端口可能是7002等,具体端口配置也可以修改。
4. 利用漏洞扫描工具和指纹识别工具
像WhatWeb之类的工具可以通过分析网站的多种特征(包括响应头、HTML内容、脚本文件等)来识别服务器类型和所使用的组件。这些工具拥有庞大的指纹数据库,能够高效地识别出网站是否使用了Shiro、Log4j、Fastjson、Struct2等组件。 例如,对于Log4j,工具可以检查网站的类路径中是否包含log4j
相关的库文件引用,或者在日志输出的地方查找Log4j特有的配置参数。对于Shiro,会查找Shiro相关的认证、授权相关的接口路径和配置文件引用。对于Fastjson和Struct2也是类似的,通过检查是否存在相关的库文件引用、特定的接口路径和参数来判断。
5. 查看HTML页面源代码和JavaScript文件引用
如果网站使用了某些特定的Java框架,如Struct2,可能会在HTML页面的<script>
标签中或者通过其他资源引用方式,发现与Struct2相关的JavaScript文件路径或者命名空间。 对于使用了Shiro的网站,在HTML页面源代码中可能会有Shiro标签库的引用,或者在JavaScript中发现与Shiro认证相关的接口调用。 对于Fastjson,在JavaScript代码或者通过AJAX请求的返回数据处理部分,如果发现使用Fastjson进行JSON数据的解析和序列化操作,就可以判断网站使用了Fastjson组件。例如,可能会发现com.alibaba.fastjson.JSONObject
等相关的Java类在JavaScript代码中的引用(如果是通过Java后端渲染页面并包含了相关引用的情况)。
6. 检查服务器返回的错误页面
IIS :
IIS的错误页面通常有其特定的样式和信息格式。例如,404错误页面可能会包含IIS的标志和相关的错误提示信息,并且页面风格比较符合Windows Server系统的风格。 Apache :
Apache的错误页面也有自己的特点,可能会包含Apache
字样的错误提示,并且页面布局和样式相对简洁。 Nginx :
Nginx的错误页面可能会有nginx
相关的提示信息,而且页面设计较为简单,通常会提供基本的错误码解释。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2243588.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!