当前位置:主页>科 研>学术交流>

使用反序列化漏洞干掉你的JMS(3)

  漏洞挖掘

针对这种漏洞的挖掘思路很简单:找到接收不可信 ObjectMessage 的地方 之后分析程序所使用的一些库,看看能不能找到一些gadgets来构造一个 POP链,实现一个漏洞利用。实际上基本所有实现了ObjectMessage的组件中,都不会对输入的消息进行身份验证,直接拿去反序列化了。下面看看最近在这方面出现的漏洞。



 

下面是其中一个漏洞概要的截图。



 

可见这类漏洞发送的罪魁祸首就是 getObject 函数接收了不可信的输入。

  漏洞利用

漏洞原理搞清楚了,进行利用就非常简单了。漏洞的本质就是接收不可信数据进行反序列化。那么我们就把发送包含payload对象序列化之后的数据的ObjectMessage发送到有漏洞的程序那就ok了。



 

整个一个漏洞利用的流程可以用下图来形象的解释。



 

攻击者假装为JMS 生产者向Broker提交一个带有恶意payload的ObjectMessage之后 Broker把消息分发给 JMS消费者,其拿个这样一个消息后对其中的序列化对象部分进行反序列化,触发漏洞,然后实现代码执行。而往往JMS消费者不会只有一个,所以现实中的情况会是这样。



 

有趣...

在实际构造exploit时并没有上面讲的那么轻松,一个成功的exploit 所要考虑的东西还是挺多的,比如:

1.jre的版本

  2.应用程序所使用的库

  3.哪些库会在程序运行时的类路径中

  4.是否开启 Java Security Manager

  ........

单纯的手工白盒分析是非常麻烦的,于是有了下面这个黑盒自动化工具来帮助我们。

  JMET(Java Message Exploitation Tool)

下载地址:https://github.com/matthiaskaiser/jmet

工具支持的应用:



(责任编辑:安博涛)

分享到:

更多
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
  • 微笑/wx
  • 撇嘴/pz
  • 抓狂/zk
  • 流汗/lh
  • 大兵/db
  • 奋斗/fd
  • 疑问/yw
  • 晕/y
  • 偷笑/wx
  • 可爱/ka
  • 傲慢/am
  • 惊恐/jk
用户名: 验证码:点击我更换图片
资料下载专区
图文资讯

内网渗透——网络环境的判断

内网渗透——网络环境的判断

前言 对于一个内网来说,当我们拿到了一个机器(例如webshell)之后,首要的就是内网信...[详细]

使用反序列化漏洞干掉你的JMS

使用反序列化漏洞干掉你的JMS

介绍 Java反序列化漏洞大家应该都非常熟悉了,想必大家手里都有各种各样的利用这类漏...[详细]

勒索软件进化 :你敢不掏钱,就曝光你隐私

勒索软件进化 :你敢不掏钱,就曝光你隐私

如果关注网络安全的话,你应该了解勒索软件。通过这种软件,黑客可以把用户文件加密,...[详细]

每个无线路由器都是窃听神器:房间里的一举

每个无线路由器都是窃听神器:房间里的一举一动它都能感应

现在的我们,无时无刻不在使用无线设备,手机、笔记本等等无线网络设备,路由器就成了...[详细]

安全领域中机器学习的对抗和博弈

安全领域中机器学习的对抗和博弈

01、背景 最近,偶然看到一篇论文讲如何利用机器学习从加密的网络流量中识别出恶意软...[详细]

返回首页 返回顶部