XSS בפלאש

לפני שאני אתחיל, אני אספר שהתלבטתי אם בכלל לפתוח את הנושא הזה כי למען האמת לא הרבה אנשים מכירים את בעית האבטחה הזו והעובדה לכך ניכרת בכמות האתרים הפגיעים שקיימים. ההתלבטות הייתה אם בעצם להסביר את זה כי אם הרוב לא ידעו על כך, אז כנראה שגם ההאקרים ה"רעים" מביניכם לא ידעו על כך. החלטתי לבסוף שעדיף שכולם ידעו, ככה כולם ידעו להתגונן מזה בסוף, בדיוק כמו SQL injection או XSS רגיל.

המשתמש StartHack ציין עוד עובדה ששכחתי להגיד. ניתן להשתמש בזה גם בשביל לעשות פישינג. לדוגמה אפשר לפתוח למשתמש שנכנס "חלון התחברות".. כולנו יודעים כבר לאן הוא מתחבר באמת.. או כמו ש-sking אמר, להעביר את המשתמש לדף מראה (שנראה כמו האתר המקורי) ולתת למשתמש להתחבר שם.

אז ככה,
בעצם מה הרעיון מאחורי הנושא הזה.
מסתבר, ולא כולם יודעים את זה. שפלאש נותן תמיכה גם ב. ליתר דיוק, הוא יכול להריץ בדיוק כמו שתג a (לינק) של HTML יכול להריץ.
לדוגמה:



יקפיץ לי הודעה עם הקוקיז שלי.

מסתבר שגם פלאש ככה. רק שכמו הA יש לו מגבלה אחת ויחידה. הוא מסוגל לקרוא גם כן רק את הקוקיז מאותו שרת/דומיין שבו נמצא קובץ הSWF.

כמובן שזה מאוד מגביל אותנו. למעשה, ההגבלה פותחת בפנינו רק אתרים שנותנים לך להעלות לאתר שלהם פלאש שלך ולהציג אותו למשתמשים.

אז הינה דוגמה קטנה.
בחרתי אתר שהקוקיז שלו הן סטטיסטיקה בלבד ככה שלא יקרה שום נזק לאף אחד:
עריכה: כדי שהאתר יציב לכם קוקיז הכנסו לכאן קודם:
http://www.xcv.co.il/
http://www.xcv.co.il/flash.php?file=1239601984.swf

כמובן שבמקום כפתור, יכולתי לעשות את זה ברגע שהקובץ עולה. וכמובן שיכלתי לעשות משהו שבכלל לא יראו, ולסיום כמובן שיכלתי לעשות משהו שלא רק יציג את הקוקיז אלא גם ישלח אותם לאנשהו.

אז איך עשיתי את זה, פשוט מאוד.
יצרתי קובץ FLA, קובץ פלאש חדש. יצרתי בו כפתור, שכמו שאמרתי, זה בכלל לא חובה. ובכפתור עשיתי את הactionscript הכלכך פשוט הזה:



קוד:

getURL(":alert(document.cookie);");


אם מישהו רוצה לדעת, בגלל שזה כפתור, זה היה בתוך הEVENT הזה:



קוד:

on (release) { }


דרכי הימנעות:
בנתיים הדרך הכי טובה היא לא לאפשר להעלות אליכם לאתר קבצי פלאש (SWF). אם כבר אתם צריכים, תעלו את זה למקום שממנו אין גישה לקוקיז. ואם גם את זה אתם לא יכולים, אני דיי בטוח שיש קלאסים בPHP שמתעסקים עם קבצי SWF וFLA, בטח עם קצת תכנות יש דרך למחוק את הסקריפטים האלה מהקובץ..

זהו, כמו שאמרתי, פשוט וקטלני.

תעשו טובה, תשתמשו לטובה!