天天看點

VC++資訊安全程式設計(3)掃描Unicode漏洞

Unicode是如今最熱門的漏洞之一,也是比較簡單易學的一個漏洞,比如去年5.1中美黑客大戰中,使用的就是這個漏洞。如果我們能知道他們所采用的手段,就可以進行有效的防禦!今天就讓我們一起來了解一下那些黑客是怎樣利用該漏洞進行的,目的是通過對這種黑客手段的了解,來找到防禦方法。

什麼是UNICODE漏洞

NSFOCUS安全小組發現IIS 4.0和IIS 5.0在Unicode字元解碼的實作中存在一個安全漏洞,導緻使用者可以遠端通過IIS執行任意指令。當IIS打開檔案時,如果該檔案名包含unicode字元,它會對其進行解碼,如果使用者提供一些特殊的編碼,将導緻IIS錯誤的打開或者執行某些web根目錄以外的檔案。 對于IIS 5.0/4.0中文版,當IIS收到的URL請求的檔案名中包含一個特殊的編碼例如"%c1%hh" 或者"%c0%hh"它會首先将其解碼變成:0xc10xhh, 然後嘗試打開這個檔案,Windows 系統認為0xc10xhh可能是unicode編碼,是以它會首先将其解碼,如果 0x00<= %hh < 0x40的話,采用的 解碼的格式與下面的格式類似:%c1%hh -> (0xc1 - 0xc0) * 0x40 + 0xhh %c0%hh -> (0xc0 - 0xc0) * 0x40 + 0xhh 是以,利用這種編碼,我們可以構造很多字元,例如: %c1%1c -> (0xc1 - 0xc0) * 0x40 + 0x1c = 0x5c = '/' %c0%2f -> (0xc0 - 0xc0) * 0x40 + 0x2f = 0x2f = '\' 者可以利用這個漏洞來繞過IIS的路徑檢查,去執行或者打開任意的檔案。 (1) 如果系統包含某個可執行目錄,就可能執行任意系統指令。下面的URL可能列出目前目錄的内容http://www.example.com/scripts/..%c1%1c../winnt/system32/cmd.exe?/c+dir+c:\ 此漏洞從中文IIS4.0+SP6開始,還影響中文WIN2000+IIS5.0、中文WIN2000+IIS5.0+SP1,台灣繁體中文也同樣存在這樣的漏洞。

我們來執行個體分析掃描unicode漏洞

繼續閱讀