檢查ASP.NET安全性漏洞及對策

來源:互聯網
上載者:User
asp.net|安全|安全性漏洞 在NT-Bugtraq的郵件清單上首先報告的Security bug in .NET Forms Authentication適用於ASP.NET 1.0 (RTM, SP1, SP2, SP3)和ASP.NET 1.1 (RTM, SP1).



當Form Authentication被使用時,匿名使用者在試圖訪問被保護的頁面如http://localhost/WebApplication2/secret.aspx時會被redirect到登入網頁如http://localhost/WebApplication2/login.aspx?ReturnUrl=%2fWebApplication2%2fsecret.aspx.



但是如果使用Mozilla,匿名使用者可以這樣未經認證就訪問被保護的頁面:http://localhost/WebApplication2\secret.aspx;對IE,可以使用%5C達到類似的效果:http://localhost/WebApplication2%5Csecret.aspx



微軟在10月5日發布了What You Should Know About a Reported Vulnerability in Microsoft ASP.NET網頁以提供針對此安全性漏洞的對策。當前的對策主要是如KB887459所描述的那樣在Global.asax或其Code-Behind中在Application_BeginRequest中增加檢查



    if (Request.Path.IndexOf('\\') >= 0 ||        System.IO.Path.GetFullPath(Request.PhysicalPath) != Request.PhysicalPath)     {        throw new HttpException(404, "not found");    }
顯然每個Application都需要有這樣的檢查以應對此安全性漏洞。微軟還會提供其他的對策,請關注What You Should Know About a Reported Vulnerability in Microsoft ASP.NET網頁更新。



對ASP.NET 2.0 Beta1,並沒有此漏洞而是得到404錯誤。



貼子以"現狀"提供且沒有任何擔保也沒有授予任何權利

發表於 Thursday, October 07, 2004 1:53 AM

評論
# re: ASP.NET Form Authentication安全性漏洞及對策 10/7/2004 8:49 AM TommyWOo
http://localhost/WebApplication2%5Csecret.aspx


試過了,不行。IE 版本問題?

# re: ASP.NET Form Authentication安全性漏洞及對策 10/7/2004 9:40 AM R2
啊,好可怕!幸好我用Beta1

# re: ASP.NET Form Authentication安全性漏洞及對策 10/7/2004 9:43 AM R2
難道微軟的這種Form認證這麼脆弱??

# re: ASP.NET Form Authentication安全性漏洞及對策 10/7/2004 10:09 AM wonge
Windows 2003下不會出現這種錯誤:http://localhost/WebApplication2%5Csecret.aspx ?

# re: ASP.NET Form Authentication安全性漏洞及對策 10/7/2004 10:12 AM 孫展波
我是使用XPSP2的OS及其帶的IE6驗證的。
從What You Should Know About a Reported Vulnerability in Microsoft ASP.NET網頁,Windows 2003 Server也有這個問題。這是ASP.NET的Bug而不是OS的Bug.

# re: ASP.NET Form Authentication安全性漏洞及對策 10/7/2004 10:44 AM Lostinet
可怕的漏洞啊~~~
解決方案可以做個簡單的IHttpModule,把它註冊到GAC和machine.config中.


# re: ASP.NET Form Authentication安全性漏洞及對策 10/7/2004 1:21 PM Flashtoy
我按方法試了.怎麼沒有這個問題.
嚇的我半死!
http://www.creva.org.cn/creva/orgshow.aspx

# re: ASP.NET Form Authentication安全性漏洞及對策 10/7/2004 6:19 PM TommyWOo
樓上的朋友,,我想到了。。


因為我們用的是IE,IE要用這個漏洞,得使用%5C來代替\符號。。。

我們兩個都是在根目錄的第一級子目錄加驗證的,比如你的,得用http://www.creva.org.cn%5Ccreva/orgshow.aspx

顯然這裡有一個問題,網域名稱是什嗎?這裡網域名稱被表示成了“www.creva.org.cn%5Ccreva”,而不是實際網域名稱“www.creva.org.cn”。

我想問題應該在這裡,展波用的是,虛擬目錄下的子目錄,所以出現了那個漏洞。

你可以用Mozilla的\符號試試。

# re: ASP.NET Form Authentication安全性漏洞及對策 10/7/2004 6:25 PM 藍色空間
確實有問題,趕快修正

# re: ASP.NET Form Authentication安全性漏洞及對策 10/7/2004 6:38 PM libber
為什麼我測試不出來呢? .net framework 1.1 sp1

# re: ASP.NET Form Authentication安全性漏洞及對策 10/7/2004 8:28 PM kwklover
我也測試過了,沒有這個問題啊
大家可以測試一下這個網站


# re: ASP.NET Form Authentication安全性漏洞及對策 10/7/2004 8:33 PM erictang2003
我也沒測試出來,用IE6 和 FireFox1.0 都沒試出來.
不過還是改了代碼以防萬一

# re: ASP.NET Form Authentication安全性漏洞及對策 10/8/2004 12:10 AM xiaoheng
測試了,沒發現問題!!!!

# re: ASP.NET Form Authentication安全性漏洞及對策 10/8/2004 9:09 AM Gigabyte
可以在Global.asax裡面加上這麼一段解決:

void Application_BeginRequest(object source, EventArgs e) {
if (Request.Path.IndexOf('\\') >= 0 ||
System.IO.Path.GetFullPath(Request.PhysicalPath) != Request.PhysicalPath) {
throw new HttpException(404, "not found");
}
}

這裡有MS的解釋:
http://www.kbalertz.com/kb_887459.aspx
# re: ASP.NET Form Authentication安全性漏洞及對策 10/8/2004 1:14 PM Michael Lee
God ! 噩耗!!!

這種毛病都能出。還有前一陣的那個GDI+的bug,更是讓人匪夷所思。



相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.