【服务器组件】如何辨别服务器组件

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,通过查看服务器上是否存在这个文件以及其内容(例如包含大量的服务器配置指令如ServerRootDocumentRoot等)可以帮助判断是否是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.propertieslog4j.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.01.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.rhkb.cn/news/474094.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Mac os 系统上如何开启远程登录的 ssh 22 端口

macOS 允许使用 SSH 连接&#xff0c;但为了安全起见&#xff0c;需要手动启动 SSH 服务&#xff0c;有两种方法可以激活远程登录。 方法一&#xff1a;界面化操作 1. 打开“系统偏好设置”&#xff0c;点击屏幕左上角的 Apple 图标&#xff0c;然后选择 系统偏好设置。 2. …

利用Python爬虫获取淘宝店铺详情

在数字化时代&#xff0c;数据已成为企业最宝贵的资产之一。对于电商平台&#xff0c;尤其是淘宝这样的大型电商平台&#xff0c;店铺详情数据的获取和分析对于商家来说至关重要。它不仅可以帮助商家了解市场趋势&#xff0c;还可以优化营销策略&#xff0c;提升销售业绩。本文…

RabbitMQ教程:发布/订阅模式(Publish/Subscribe)(三)

文章目录 RabbitMQ教程&#xff1a;发布/订阅模式&#xff08;Publish/Subscribe&#xff09;&#xff08;三&#xff09;一、引言二、简介三、准备工作3.1 说明3.2 生成项目 四、实战4.1 交换机&#xff08;Exchanges&#xff09;4.2 临时队列&#xff08;Temporary Queues&am…

对PolyMarket的突袭

一天清晨六点&#xff0c;美国联邦调查局的探员冲进了纽约市的一间公寓。这间公寓的主人是26岁的Shane Copeland&#xff0c;一个有着凌乱头发的年轻人&#xff0c;也是一个加密货币狂热者。他运营着一个名为PolyMarket的网站——一个允许用户YZ全球事件结果的平台&#xff0c;…

DataStream编程模型之数据源、数据转换、数据输出

Flink之DataStream数据源、数据转换、数据输出&#xff08;scala&#xff09; 0.前言–数据源 在进行数据转换之前&#xff0c;需要进行数据读取。 数据读取分为4大部分&#xff1a; &#xff08;1&#xff09;内置数据源&#xff1b; 又分为文件数据源&#xff1b; socket…

Django5 2024全栈开发指南(三):数据库模型与ORM操作

目录 一、模型的定义二、数据迁移三、数据表关系四、数据表操作4.1 Shell工具4.2 数据新增4.3 数据修改4.4 数据删除4.5 数据查询4.6 多表查询4.7 执行SQL语句4.8 数据库事务 Django 对各种数据库提供了很好的支持&#xff0c;包括 PostgreSQL、MySQL、SQLite 和 Oracle&#x…

ASP.NET Core Webapi 返回数据的三种方式

ASP.NET Core为Web API控制器方法返回类型提供了如下几个选择&#xff1a; Specific type IActionResult ActionResult<T> 1. 返回指定类型&#xff08;Specific type&#xff09; 最简单的API会返回原生的或者复杂的数据类型&#xff08;比如&#xff0c;string 或者…

网关在能源物联网中扮演了什么角色?

随着通信、物联网、云平台等技术的飞速发展&#xff0c;越来越多能源用户希望借助先进的管理手段&#xff0c;对能源进行分布式监测、集中管理&#xff0c;构建能源物联网。准确的分布式监测和集中管理有助于制定更科学合理的节能减排计划。企业或能源使用单位可以依据能源物联…

【快速入门】前端御三家:HTML、CSS和JS

HTML HTML&#xff0c;超文本标记语言&#xff0c;可以理解成骨架&#xff0c;是一个基础的东西。 一.基础结构 如图所示&#xff1a; 二.常见标签 1.标题标签 在页面上定义标题性的内容 <h1>一级标题</h1> <h2>二级标题</h2> <h3>三级标…

WebSocket实战,后台修改订单状态,前台实现数据变更,提供前端和后端多种语言

案例场景&#xff1a; 在实际的后台中需要变更某个订单的状态&#xff0c;在官网中不刷新页面&#xff0c;可以自动更新状态 在前端页面实现订单状态的实时更新&#xff08;不刷新页面&#xff09;&#xff0c;可以通过 WebSocket 的方式与后台保持通信&#xff0c;监听订单状态…

Django5 2024全栈开发指南(二):Django项目配置详解

目录 一、基本配置信息二、资源文件配置2.1 资源路由——STATIC_URL2.2 资源集合——STATICFILES_DIRS2.3 资源部署——STATIC_ROOT2.2.4 媒体资源——MEDIA 三、模板配置四、数据库配置4.1 mysqlclient连接MySQL4.2 pymysql连接MySQL4.3 多个数据库的连接方式4.4 使用配置文件…

近几年新笔记本重装系统方法及一些注意事项

新笔记本怎么重装系统&#xff1f; 近几年的新笔记本默认开启了raid on模式或vmd选项&#xff0c;安装过程中会遇到问题&#xff0c;新笔记本电脑重装自带的系统建议采用u盘方式安装&#xff0c;默认新笔记本有bitlocker加密机制&#xff0c;如果采用一键重装系统或硬盘方式安装…

黑马智数Day10

项目背景说明 后台管理部分使用的技术栈是Vue2&#xff0c;前台可视化部分使用的技术栈是Vue3 前台可视化项目不是独立存在&#xff0c;而是和后台管理项目共享同一个登录页面 微前端的好处 微前端是一种前端架构模式&#xff0c;它将大型单体应用程序分解为小的、松散耦合的…

Visual Studio 圈复杂度评估

VisualStudio自带的有工具 之后就可以看到分析结果

prop校验,prop和data区别

prop:组件上注册的一些自定义属性 prop作用&#xff1a;向子组件传递数据 特点&#xff1a; 可以传递任意数量&#xff0c;任意类型的prop 父组件 &#xff08;一个个地传递比较麻烦&#xff0c;可以直接打包成一个对象传过去&#xff0c;然后通过点属性接收&#xff09; <t…

ubuntu显示管理器_显示导航栏

ubuntu文件管理器_显示导航栏 一、原始状态&#xff1a; 二、显示导航栏状态&#xff1a; 三、原始状态--->导航栏状态: 1、打开dconf编辑器&#xff0c;直接在搜索栏搜索 dconf-editor ------如果没有安装&#xff0c;直接按流程安装即可。 2、进入目录&#xff1a;org …

跨平台WPF框架Avalonia教程 一

安装 安装 Avalonia UI 模板​ 开始使用 Avalonia 的最佳方式是使用模板创建一个应用程序。 要安装 Avalonia 模板&#xff0c;请运行以下命令&#xff1a; dotnet new install Avalonia.Templates 备注 对于 .NET 6.0 及更早版本&#xff0c;请将 install 替换为 --inst…

UE5 材质里面画圆锯齿严重的问题

直接这么画圆会带来锯齿&#xff0c;我们对锯齿位置进行模糊 可以用smoothstep&#xff0c;做值的平滑过渡&#xff08;虽然不是模糊&#xff0c;但是类似&#xff09;

【MySql】实验十六 综合练习:图书管理系统数据库结构

文章目录 创建图书管理系统数据库结构一、创建数据表1.1 book表1.2 reader表1.3 borrow表 二、插入示例数据2.1 向book表插入数据2.2 向reader表插入数据2.3 向borrow表插入数据 三、查询操作3.1 根据语义为借书表borrow的bno列和 rno列建立外键3.2 查询张小海编写的“数据库原…

QT QLabel双击事件

新建类&#xff1a; DoubleClickLabel .h #pragma once#include <QLabel>class DoubleClickLabel : public QLabel {Q_OBJECTpublic:DoubleClickLabel(QWidget *parent);~DoubleClickLabel(); signals:void doubleClicked();protected: //这里重写双击事件virtual v…