在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/WebApplication2secret.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