📢 Gate廣場專屬 #WXTM创作大赛# 正式開啓!
聚焦 CandyDrop 第59期 —— MinoTari (WXTM),總獎池 70,000 枚 WXTM 等你贏!
🎯 關於 MinoTari (WXTM)
Tari 是一個以數字資產爲核心的區塊鏈協議,由 Rust 構建,致力於爲創作者提供設計全新數字體驗的平台。
通過 Tari,數字稀缺資產(如收藏品、遊戲資產等)將成爲創作者拓展商業價值的新方式。
🎨 活動時間:
2025年8月7日 17:00 - 8月12日 24:00(UTC+8)
📌 參與方式:
在 Gate廣場發布與 WXTM 或相關活動(充值 / 交易 / CandyDrop)相關的原創內容
內容不少於 100 字,形式不限(觀點分析、教程分享、圖文創意等)
添加標籤: #WXTM创作大赛# 和 #WXTM#
附本人活動截圖(如充值記錄、交易頁面或 CandyDrop 報名圖)
🏆 獎勵設置(共計 70,000 枚 WXTM):
一等獎(1名):20,000 枚 WXTM
二等獎(3名):10,000 枚 WXTM
三等獎(10名):2,000 枚 WXTM
📋 評選標準:
內容質量(主題相關、邏輯清晰、有深度)
用戶互動熱度(點讚、評論)
附帶參與截圖者優先
📄 活動說明:
內容必須原創,禁止抄襲和小號刷量行爲
獲獎用戶需完成 Gate廣場實名
微軟Windows早期版本0day漏洞分析:從提權到利用全流程
微軟Windows系統0day漏洞分析及利用
近期,微軟發布的安全補丁中修復了一個正在被利用的win32k提權漏洞。該漏洞僅存在於早期Windows系統版本中,無法在Windows 11上觸發。本文將分析在當前安全防護不斷完善的背景下,攻擊者如何繼續利用此類漏洞。
漏洞背景
0day漏洞指尚未公開且未被修復的安全漏洞,類似於金融市場的T+0交易概念。此類漏洞一旦被發現可能會在未被察覺的情況下被惡意利用,造成巨大危害。
本次發現的Windows系統0day漏洞可使攻擊者獲取系統完全控制權。這可能導致個人信息泄露、系統崩潰、數據丟失、財產損失等嚴重後果。從Web3角度看,可能造成私鑰被盜、數字資產被轉移,甚至影響整個基於Web2基礎設施的Web3生態。
補丁分析
分析補丁代碼發現,問題出在對象引用計數的多次處理。通過查看早期源碼注釋可知,以前的代碼只鎖定了窗口對象,而未鎖定窗口中的菜單對象,可能導致菜單對象被錯誤引用。
漏洞復現
通過分析漏洞函數上下文,發現傳入xxxEnableMenuItem()的菜單通常已在上層函數被鎖定。進一步分析發現,MenuItemState函數返回的菜單可能是窗口主菜單,也可能是子菜單或子子菜單。
爲觸發漏洞,構造了一個特殊的四層菜單結構,並設置了以下特徵:
在xxxRedrawTitle返回用戶層時,刪除菜單C和B的引用關係並釋放菜單C。這樣在xxxEnableMenuItem函數返回點時,即將引用的菜單C對象已失效。
漏洞利用
漏洞利用主要考慮兩個方向:
執行shellcode代碼:參考早期CVE-2017-0263等漏洞,但在高版本Windows中可能面臨入口點和SMEP等安全機制問題。
利用讀寫原語修改token地址:近年來有多個公開exp可參考,對桌面堆內存布局和讀寫原語具有通用性。關鍵是分析如何在UAF內存重用時首次控制cbwndextra爲特大值。
本次利用採用第二種方案,將整個過程分爲兩步:
首次數據寫入
漏洞觸發後,系統可能在MNGetPopupFromMenu()和xxxMNUpdateShownMenu()中錯誤使用被控制的窗口對象數據。我們使用窗口類WNDClass中的窗口名稱對象佔用釋放的菜單對象。
關鍵是找到一個可由我們構建的地址結構中能任意寫入數據的位置,哪怕只有一個字節。最終選擇了xxxRedrawWindow函數中的方案,通過布局內存控制前一個對象的內存數據來通過函數中的對象標志判斷。
穩定的內存布局
設計至少三個連續的0x250字節HWND對象,釋放中間一個並用HWNDClass對象佔用。前一個HWND對象尾部數據用於通過xxxRedrawWindow中的標志檢驗,後一個HWND對象的菜單對象和HWNDClass對象用作最終讀寫原語媒介。
通過堆內存中泄露的內核句柄地址來精確判斷申請的窗口對象是否按預期順序排列。
讀寫原語
任意讀原語使用GetMenuBarInfo(),任意寫原語使用SetClassLongPtr()。除替換TOKEN的寫入外,其他寫入都利用第一個窗口對象的class對象使用偏移來寫入。
總結
win32k漏洞歷史悠久,但微軟正在嘗試用Rust重構相關代碼,未來新系統中此類漏洞可能被杜絕。
該漏洞利用過程相對簡單,主要難點在於如何控制首次寫入。嚴重依賴桌面堆句柄地址泄露,這仍是老舊系統的安全隱患。
該漏洞的發現可能得益於更完善的代碼覆蓋率檢測。
對於漏洞利用檢測,除關注觸發函數關鍵點外,還應關注異常的內存布局和窗口數據偏移讀寫。