赞
踩
序列化就是把对象转换成字节流,便于保存在内存、文件、数据库中;反序列化即逆过程,由字节流还原成对象。
Java中的ObjectOutputStream类的writeObject()方法可以实现序列化,ObjectInputStream类的readObject()方法用于反序列化。
形成漏洞的根源在于类ObjectInputStream在反序列化时,没有对生成的对象的类型做限制。
CVE-2017-12149
漏洞影响5.x和6.x版本的JBOSSAS。该漏洞位于JBoss的HttpInvoker组件中的 ReadOnlyAccessFilter 过滤器中,其doFilter方法在没有进行任何安全检查和限制的情况下尝试将来自客户端的序列化数据流进行反序列化,导致攻击者可以通过精心设计的序列化数据来执行任意代码。
CVE-2017-7504
JBoss AS 4.x及之前版本中,JbossMQ实现过程的JMS over HTTP Invocation Layer的HTTPServerILServlet.java文件存在反序列化漏洞,远程攻击者可借助特制的序列化数据利用该漏洞执行任意代码。
CVE-2017-12149:JBoss AS 5.x和6.x版
CVE-2017-7504:JBoss AS 4.x及之前版本
- 云主机的内置vulhub8080端口搭建实验靶场
- 加载攻击脚本,编译并生成序列化数据
- 序列化恶意数据至文件,将该文件作为请求数据主体发送数据包
- 云主机开启端口监听反弹过来的shell
- CVE-2017-12149利用路径是/invoker/readonly
- CVE-2017-7504利用路径是/jbossmq-httpil/HTTPServerILServlet
- CVE-2015-7501的利用路径是/invoker/JMXInvokerServlet
本文使用的脚本下载地址:
https://github.com/joaomatosf/Java
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。