「沒有對手?我有話說!」Gate廣場挑戰賽——秀操作贏$2,000,百萬流量加持!
你是下一個明星交易員嗎?
想讓自己的名字閃耀廣場熱搜?想吸引數萬追隨者?百萬流量已就位,就等你來承接!
🎉 雙重豪禮,贏家通喫!
1️⃣ 曬單排行榜獎勵
收益率排名前10的用戶,瓜分 $1,500合約體驗券!巔峯對決等你來戰!
2️⃣ 曬單幸運獎
隨機抽取10位用戶,每人贈送 $50跟單包賠券!即使不是大神,也有機會躺贏!
🎮 參與方式超簡單!
✅ 在 Gate廣場 曬出你的交易戰績,並成爲帶單員!
✨ 發帖要求:
內容必須原創,並帶上 #CopyTrading# 或 #跟单# 標籤
附上 收益率截圖 或 交易卡片,並分享你的 獨家交易心得
嚴禁AI生成虛假交易,一經發現取消資格
觀點犀利、邏輯清晰,乾貨越多越吸粉!
⏰ 活動截止:8月15日 10:00(UTC+8)
【立即發帖】 展現你的王者操作,承接百萬流量,成爲下一個交易傳奇!
💬 還在等什麼?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重構相關代碼,未來新系統中此類漏洞可能被杜絕。
該漏洞利用過程相對簡單,主要難點在於如何控制首次寫入。嚴重依賴桌面堆句柄地址泄露,這仍是老舊系統的安全隱患。
該漏洞的發現可能得益於更完善的代碼覆蓋率檢測。
對於漏洞利用檢測,除關注觸發函數關鍵點外,還應關注異常的內存布局和窗口數據偏移讀寫。