Java安全之攻击RMI的思考

总结一下rmi所有的攻击方法,原理,什么是jep290如何绕过,并配套环境以及exp。

阐述如何快速挖掘,一般哪些情况存在漏洞点

参考资料

https://xz.aliyun.com/t/8706

https://blog.0kami.cn/2020/02/06/java/rmi-registry-security-problem/

https://github.com/waderwu/attackRmi 根据具体情况看是否需要魔改

基础知识

什么是RMI&为什么会有这个功能

  • RMI(Remote Method Invoke 远程方法调用)是一个实现了RPC的Java框架。
  • RMI(Remote Method Invocation)为远程方法调用,是允许运行在一个Java虚拟机的对象调用运行在另一个Java虚拟机上的对象的方法。 这两个虚拟机可以是运行在相同计算机上的不同进程中,也可以是运行在网络上的不同计算机中。
  • Java RMI:Java远程方法调用,即Java RMI(Java Remote Method Invocation)是Java编程语言里,一种用于实现远程过程调用的应用程序编程接口。它使客户机上运行的程序可以调用远程服务器上的对象。远程方法调用特性使Java编程人员能够在网络环境中分布操作。RMI全部的宗旨就是尽可能简化远程接口对象的使用。
  • RMI功能解决的问题:RMI(Remote Method Invocation)是Java语言提供的一种远程调用机制。它允许在不同的Java虚拟机(JVM)上运行的对象之间进行方法调用和数据传输,就像是在同一个JVM中的对象之间进行通信一样。
  • RMI的主要功能是实现分布式计算,让不同的计算节点可以通过网络进行通信和协作。它使得开发人员可以将应用程序的不同部分分布在不同的机器上,以实现更高的可伸缩性和性能。RMI主要有以下几个功能:
    • 远程对象调用:RMI允许在不同的JVM上调用远程对象的方法。这使得开发人员可以在分布式环境下使用面向对象的编程方式,通过调用远程对象的方法来完成相应的功能。
    • 分布式对象传输:RMI可以传输Java对象,并在不同的JVM之间进行序列化和反序列化。在方法调用过程中,参数和返回值都可以是Java对象,使得跨越网络传递数据变得非常方便。
    • 动态类加载:RMI支持动态类加载,即在远程节点上动态加载所需的类文件。这就意味着,在运行时可以通过网络获取相应的类文件,从而实现更灵活的系统设计和扩展性。
    • 透明性:RMI屏蔽了底层的网络细节,使得开发人员可以像调用本地对象一样调用远程对象,这种透明性简化了分布式系统的开发和维护。
  • 示例:这些示例表明了RMI在分布式环境中解决问题的能力,简化了分布式系统的开发和部署。
    • 在一个分布式电商系统中,通过RMI调用远程服务器上的订单管理对象,实现客户端和服务器之间的订单处理和更新。
    • 在一个分布式图像处理系统中,通过RMI将图像数据对象传输给各个节点进行处理,最后将结果返回给主节点,实现并行计算和分布式图像处理。
    • 在一个分布式协同编辑系统中,通过RMI传递文档对象和编辑操作,在不同的节点上实现多人协同编辑功能。

RMI的应用场景

RMI(Remote Method Invocation)是Java中用于实现远程方法调用的机制,它允许在不同的Java虚拟机之间进行通信和交互。RMI的应用场景包括但不限于以下几个方面:

  • 分布式系统:RMI可以用于构建分布式系统,将不同的模块或组件部署在不同的节点上,并通过RMI实现模块之间的远程方法调用。这样可以实现分布式计算、分布式任务处理等。

  • 客户端-服务器应用程序:RMI可以用于实现客户端-服务器架构的应用程序。客户端可以通过RMI调用远程服务器上的方法,实现数据查询、操作、处理等功能。

  • 远程服务:RMI可以用于构建远程服务,提供某种功能或服务给远程客户端使用。例如,远程数据库服务、远程文件存取服务、远程计算服务等。

  • 分布式对象系统:RMI支持分布式对象系统,允许在不同的Java虚拟机之间传递和共享对象。这对于跨越不同主机的对象通信和共享状态非常有用。

  • 分布式事件处理:RMI可以用于实现分布式事件处理系统,在不同的节点之间传递和处理事件。这对于实现分布式通知、消息传递和事件驱动的应用程序很有帮助。

  • 远程监控和管理:RMI可以用于远程监控和管理分布式系统的状态和性能。通过RMI,可以从管理节点监控和管理远程节点的运行状态、配置参数等。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值