建立c:\con.txt嗎?windows檔案系統漏洞

來源:互聯網
上載者:User

你會建立c:\con.txt嗎?--windows檔案系統漏洞
唉,寫完了前面的廢話頭都昏了,有錯誤及時告訴我哦。
----------------------------
如果你在想con.txt不是很正常嗎?那好,你先去建立下,只要帶有獨立的con字樣的檔案就好,然後悟出什麼了再看這篇文章(如果你用linux或者mac或者unix那就算了)。

呵呵,正常來說帶有con、prn、com1這樣字眼的檔案或目錄是不能建立的(原因自己找),但我想到了以前在安全焦點的一篇文章,是教你建立帶"\"的檔案夾的。當時的方法是用控制台命令(如果你叫dos命令那是不標準的)mkdir csk..\這樣的文法建立的。看來這是windows一個檔案系統的漏洞了,沒錯……

我後來就在想其中的原理,可能你會發現像上面的csk..\在建立後是csk.,而他實際被windows解釋為訪問mkdir csk.\的目錄。看來有字元在建立時被略去了。而一次偶然機會我發現mkdir C:\con\是成功的,在c下面出現了c:\con檔案夾,而且刪不掉……呵呵,有一個bug……

我這時突然想到了可能的原因:首先建立目錄時肯定要驗證正確性,而像這種C:\dir\肯定是先將\符號略去了,但後面的內容呢?看來windows似乎不去檢查了……否則mkdir c:\con\就應該失敗了,而mkdir c:\con肯定是無效的。

所以我在想是否建立的檔案也能利用這個漏洞奪過windows檔案系統的一些檢查呢?正如你看到的,我成功了^-^

呵呵,這可不是畫出來的哦,是貨真價實的con.txt。其實原理和我上面的猜測差不多,但由於時間有限,我的分析不一定正確,下面給出具體破解過程:
2005.8.1:23:00
首先我要知道mkdir造成漏洞的原因,於是拿出ollydbg去調試cmd.exe(mkdir是內部命令嘛,不知他找誰?)。接著對KERNEL32.CreateDirectoryW設斷點,果然在輸入了mkdir c:\con\後中斷了。自然單步跟入CreateDirectoryW:
----------------------------------------------------------------
7C81E97F 50 push eax
7C81E980 57 push edi
7C81E981 FF15 3C11807C call dword ptr ds:[<&ntdll.RtlDosPathNameToNtPathName_U>>
; ntdll.RtlDosPathNameToNtPathName_U
7C81E987 84C0 test al,al
7C81E989 0F84 8ACA0100 je kernel32.7C83B419
7C81E98F 66:817D F4 F001 cmp word ptr ss:[ebp-C],1F0
7C81E995 0F87 8CCA0100 ja kernel32.7C83B427
7C81E99B 8B45 F8 mov eax,dword ptr ss:[ebp-8]

----------------------------------------------------------------
注意上面的API:RtlDosPathNameToNtPathName_U,在執行完了以後,ss:[ebp-8]指向的位置存放著:\??\c:\con\(unicode)。
然後程式執行到:
7C81E9FE FF15 0810807C call dword ptr ds:[<&ntdll.NtCreateFile>]
呵呵,Native的建立檔案,到此為止C:\con已經在你硬碟上了,由此可推測那個\??\c:\con\(unicode)便是最終的產生路徑了。
你必須用rd c:\con\才能刪除那個目錄!

然後再試mkdir c:\con:繼續跟蹤,雖然也到了ntdll.NtCreateFile,但很明顯函數執行失敗了……不過可以明確一點CreateDirectoryW似乎不檢查檔案合法性……

不過我不服氣,想到那個\??\c:\con\(unicode)總該起點作用吧,於是又用了這段mkdir c:\coo。

然後再運行到ntdll.RtlDosPathNameToNtPathName_U以後找到了那段unicode的地址:dword ptr ss:[ebp-8],當時是0x001581E8,
於是開啟了記憶體修改:
先找到那個地址:
001581E0 47 00 45 00 0F 07 1E 00 5C 00 3F 00 3F 00 5C 00 G.E.

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.