http://www.k-otik.com/news/10052004.ASPNETFlaw.php.
הידיעה (והאתר בכלל) הצרפתית, אז אני אכתוב במה מדובר:
התגלה חור אבטחה באפלקציות Asp.Net (של מייקרוסופט) תחת Win 2000 ו Xp, שמאפשר גישה גם לקבצים שלמשתמש רגיל לא הייתה גישה אליהם.
ע"י שינוי התו באק-סלאש ("\")לסימון שלו (%5C), אפשר לגשת לכל תיקיה שנמצאת בשרת, כולל תיקיות מוגנות.
איך זה?
הקטע שמאפשר או לא מאפשר גישה לתיקיה מסויימת באפלקציה בודק את הכתובת שהוכנס אליו, ומחלק אותו לקטעים, הוא בודק אם המשתמש מנסה לגשת לתיקיה מסויימת
(ע"י בדיקה אם קיימים באק-סלאשים ("\") בURL) ואחרי התו הוא בודק את המקטע הבא- אם המילה קיימת כתיקיה על השרת.
המקטע הבא אחראי על הגישה- במקרה והתיקיה קיימת- הוא בודק אם למשתמש יש גישה לתיקיה, ואם לא- שולח לו הודעת ארור 401...
שימו לב שהבדיקה מתבצעת רק אם קיימים הבאק-סלאשים ("/") בכתובת, אבל הבדיקה לא תתקיים אם במקום הבאק-סלאשים נכתוב "%5C" (הסימן של הבאק-סלאש..), ככה שאם למשל נכניס את הכתובת: www.site.com/passwords (כמובן, רק בAsp.net) נקבל הודעת שגיאה 401, אבל אם נכתוב: www.site.com%5Cpassword כן תיקיה לנו גישה.
מה שנשאר לעשות זה לחכות לעידכון של מיקרוסופט, או פשוט לערוך את הבדיקה בAsp.net ל:
קוד:
HttpContext context = ((HttpApplication)sender). Context ;
if (context ! = null)
{
HttpRequest request = context. Request ;
string path = request.Path.ToUpper () ;
if (path. IndexOf("\ \") > -1 || path.IndexOf("%5c") > -1)
{
path = path. Replace("\ \", "/").Replace("%5C", "/") ;
context. RewritePath (path) ;
}
}
הכתבה בצרפתית נכתבה ע"י Cellule-Veille, וחלקים ממנה תורגמו לעברית ע"י cp77fk4r.
תהנו.
[ההודעה נערכה על-ידי cp77fk4r ב-05/10/2004 18:39:23]