不安全的XStream反序列化
2020-12-22 12:42:27 Author: www.freebuf.com(查看原文) 阅读量:67 收藏

freeBuf

主站

分类

漏洞 工具 极客 Web安全 系统安全 网络安全 无线安全 设备/客户端安全 数据安全 安全管理 企业安全 工控安全

特色

头条 人物志 活动 视频 观点 招聘 报告 资讯 区块链安全 标准与合规 容器安全 公开课

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

问题描述

XStream是一个简单的基于Java库,Java对象序列化到XML,反之亦然(即:可以轻易的将Java对象和xml文档相互转换)。

攻击者可以通过构造反序列的代码,达到目的。

如何避免

(1) 采用白名单策略,只允许白名单上的对象生成,不允许生成未经定义的对象。

(2) 对序列化对象执行完整性检查和加密处理,防止被恶意篡改和创建恶意对象。

(3) 反序列化过程之前执行严格的类型限制。

解决方法

XStream.allowTypeHierarchy方法为反序列化类 Contact添加安全权限避免不安全的反序列化。

  • XStream xStream = new XStream(new Xpp3Driver(new NoNameCoder())) ;
    xStream.allowTypeHierarchy(XXX.class);
    Class<?>[] classes = new Class[] {XXX.class};
    xStream.allowTypes(classes);

(需要升级为1.4版本以上)

详解查看:https://www.freebuf.com/column/205781.html


文章来源: https://www.freebuf.com/vuls/258522.html
如有侵权请联系:admin#unsafe.sh