MS08 052 WMF漏洞分析及漏洞測試

2021-04-20 11:36:29 字數 2212 閱讀 4678

------by cutek

一 背景知識

由檔案格式入手,來分析ms08-052漏洞, 並構造了乙個可以使沒有補丁的程式崩潰的,

1 wmf檔案結構

--------------------------|

| 檔案頭 |

|-------------------------|

| 檔案記錄 |

|-------------------------|

|-------------------------|

| 檔案記錄 |

|-------------------------|

|-------------------------|

| 檔案記錄 |

|-------------------------|

windows中檔案頭結構如下

typedef struct

pwmfrect16;

typedef struct

wmfplaceablefileheader;

typedef struct tagmetaheader

metaheader;

圖 1.1 檔案頭

檔案記錄由 檔案記錄大小(4位元組) 檔案記錄型別(2位元組) 檔案記錄體組成,其中0x0538型別是polypolygon型別,正是對這個記錄的處理不當導致的溢位, 該記錄的結構如下

記錄大小

記錄型別

polygon個數(假設為x)

第1個polygon的點數(y個) 第2個polygon點數 ....第x個polygon的點數 .

第1個polygon的第1個點 第1個polygon的第2個點....第1個polygon的第y個點

...............

第x個polygon的第1個點 .................................第x個polygon的最後1個點

由圖1.2看出該記錄的大小為0x73個word長度. 該記錄型別是0x0538 該記錄中polygon的個數為1 , polygon的點數為0x37, 後面0x37個word長度的資料就是該polygon的點. 想要讀取該記錄則要先分配空間,但並不是根據0x73來分配的,而是根據polygon的個數,及每個polygon的點數相加來分配空間.

圖 1.2 polypolygon記錄

二 漏洞部分**

圖2.1 具有漏洞的**

圖2.2 微軟修補後的**

除了判斷是否小於0 還有判斷是否加過了溢位了

三 wmf檔案構造

構造了乙個wmf檔案polypoygon記錄, 用極大的polygon個數和每個polygon的點數都很大, 使其計算達到整數溢位,使用沒有補丁的gdiplus的程式檢視該檔案,就可以直接崩潰, 測試連線

無木馬. 呵呵

四解決方案

有漏洞的趕快打補丁吧

五 總結

圖形檔案格式是由很多「段」構成的資料流,而每個段由:長度, 型別,引數,資料等結構構成,在程式解析這些檔案格式的時候會依據「型別」來確認段,並讀取引數」 進行一定的運算,再依據這些引數來處理隨後緊跟的「資料」。漏洞的產生原因就是在對引數進行運算的時候相信了檔案輸入的引數沒有進行確認而導致的。除了圖形檔案格式外excel的biff格式也是一樣的由段的頭決定後續資料的讀取,且有可變資料物件。有輸入就有危險.

六 參考文獻

[1] gdi+ 中的漏洞可能允許遠端執行** (

MS08 052 WMF漏洞分析及漏洞測試

一 背景知識 由檔案格式入手,來分析ms08 052漏洞,並構造了乙個可以使沒有補丁的程式崩潰的,1 wmf檔案結構 檔案頭 檔案記錄 檔案記錄 檔案記錄 windows中檔案頭結構如下 typedef struct pwmfrect16 typedef struct wmfplaceablefil...

微軟最新GDI漏洞MS08 052安全解決方案

微軟最新 gdi漏洞 ms08 052 安全解決方案 simeon 微軟於九月九日凌晨爆出有史以來最大的安全漏洞 ms08 052 通過該漏洞,者可以將 藏於中,網民無論是通過瀏覽器瀏覽 還是用各種看圖軟體開啟 或者在即時聊天視窗 電子郵件 office 文件裡檢視這些,只要看了就會感染 哪怕只是看...

webmin RCE漏洞利用及分析

webmin是目前功能最強大的基於web的unix系統管理工具。管理員通過瀏覽器訪問webmin的各種管理功能並完成相應的管理動作。利用條件 webmin 1.910 原因 官網 sourceforge 中存在漏洞,github 中無漏洞,為後門植入,不得不佩服這些老外真會玩,看了一堆大神分析,自己...