וואלה?

מדריך זה נכתב למטרת ידע בלבד.. (תראו איך וואלה שומרת עליכם..) אסור להשתמש בו כדי לעבור על החוק (פרטים בסוף המדריך). הטקסט הזה נוסה על חשבונות שלי שפתחתי באופן אישי ולא על שום חשבון אחר.

אתר וואלה הוא הפופולארי ביותר בארץ, ואחד האתרים היחידים בארץ שגם מרוויחים כסף מכל העניין.
האם זה הופך אותו לאתר מאובטח? מאורגן? אתר שיודע לשמור על פרטיות גולשיו?
התשובה היא: לא!
רק משוטטות באתר אפשר לראות את חוסר הסדר, את המראה הלא אחיד, את תחושת התוהו ובהו. אבל זה לא הכל, וואלה הוא אחד האתרים הכי חשופים ל
XSS בארץ.

קצת הסבר על איך המערכת בוואלה עובדת:

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

שליחת טפסים: בשליחת טפסים יש 2 שיטות, POST ו GET.
בשיטת ה GET, הערכים של השדות שבטופס נשלחים דרך שורת הכתובת בצורה כזו: http://www.walla.co.il/target.cgi?field=muuu&food=toast
בשיטה זו קיימת הגבלה על אורך השדות.
בשיטת הPOST לעומת זאת, השדות נשלחים באופן ש"מוסתר" מעיני הגולש והוא יוכל לדעת מה הולך בטופס רק מצפיה בקוד המקור או הסתכלות בפאקט שנשלח.

מבחינת צד השרת, אפשר להבדיל בין השדות שנשלחו דרך POST לבין כאלה שנשלחו דרך GET.
אבל מסיבה כלשהי, בוואלה אין אבחנה כזו. לכן אפשר לשלוח טפסים לוואלה ישירות על ידי כניסה לכתובת כזו: http://www.walla.co.il/target.cgi?field=muuu&food=toast
במקום להתחיל למלא טפסים שנשלחים בצורת POST.

הדגמה קטנה כדי לראות איך זה עובד:
1. נרשמים לוואלה, נכנסים לאחד הפורומים. לוחצים על "הוסף הודעה", ומסתכלים על קוד המקור.
2. עכשיו, כדי לבדוק מה הטופס שולח,בונים קובץ טקסט חדש שמכיל:
<html></html> .
נקרא לקובץ בשם ts.cgi ונשמור אותו על שולחן העבודה.
3. חוזרים לקוד מקור של טופס שליחת ההודעה. משנים את הmethod ל get במקום post.
נשמור את הקוד מקור על שולחן העבודה בשם ts.htm.
4. פותחים אותו, רושמים הודעה קצרה, ושולחים. כמובן שעכשיו יופיע דף לבן. אבל בשורת הכתובת יופיע המידע שרצינו - מה בעצם הטופס אמור לשלוח לts.cgi זה אמור להיות משהו כזה:

כדי לראות את שורת הכתובת באופן טוב יותר, כדאי לסמן אותה ולהעתיק אותה אל עורך טקסט כלשהו.

דבר ראשון בודקים אם המידע הזה נכון. אם שליחת המידע הזה תגרום להופעת הודעה חדשה בפורום.
משנים את
file:///C:/WINDOWS/Desktop/ts.cgi ל http://community.walla.co.il/ts.cgi.
נכנסים לכתובת המתוקנת, ורואים אם נוספה הודעה חדשה לפורום. (כמובן שצריך לוודא שהsession פועל. כלומר, אפשר למשל להכנס, לבדוק אימייל, ואז להכנס לכתובת הזו ולראות אם זה עובד)

מה קורה כשנכנסים לכתובת הזו?
הדף ts.cgi, בודק את הקוקיז על המחשב. אם הוא מזהה שהמשתמש מחובר לוואלה, ושהsession
פועל. (שהמשתמש לא סגר את הדפדפן מאז שהוא נכנס לחשבון שלו בוואלה). הוא מקבל כאילו המשתמש שלח טופס. ובמקרה שלנו למשל, הוא רואה שזה טופס "הודעה חדשה" והוא מפרסם אותה. (הוא יפרסם אותה אפילו אם המשתמש מושעה מהפורום).

יופי, נחמד. ומה הלאה?
כדי לגרום למשתמש להכנס לכתובת אינטרנט מסויימת, (כדי לגרום לו לשלוח טופס) לא חייבים לבקש ממנו להכנס אליה. ובמיוחד אם הכתובת כזו ארוכה בטוח היא תעורר חשד.

אז מה כן אפשר לעשות?
אפשר לבנות דף html כזה:

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

.על העיקרון הזה אפשר להוסיף כמה דברים:

הצפת פורום: - די פשוט, בדף הhtml מוסיפים סקריפט שיגרום לדף לפתוח כמה וכמה פריימים:

לגרום לקורבן לשלוח אימייל: - עושים את זה בדיוק באותה דרך.
נכנסים לדואר, כותבים מכתב חדש, פותחים את קוד המקור, משנים את מה שצריך ושומרים מה שצריך, פותחים את הקובץ דרך שולחן העבודה, רואים מה נשלח, ויש לכם כתובת להפנות אליה את הקורבן.
רק חשוב לזכור: במקום
http://community.walla.co.il/ts.cgi זה http://mail.walla.co.il/ts.cgi
זה יוצא בערך ככה:

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

שימו לב: במקום המילה username צריך לכתוב את שם המשתמש של הקורבן..
לוקחים את הכתובת הזו.. משנים את מה שצריך וגורמים לו להכנס אליה.. ברגע שהוא יכנס, הסיסמא שלו תשתנה ל12345.

השיטה הזו די מסובכת, כדי לשנות ל5 אנשים שונים את הסיסמא צריך להכין 5 עותקים שונים של שבכל אחד מהם כתוב שם המשתמש של מי שזה מופנה אליו..
לכאן נכנס עוד ליקויי באבטחה שקיים באתר וואלה:
כנסו לפורום כלשהו בוואלה.. נכון יש אפשרות של "הוסף הודעה"?
שימו לב שאפשר לצרף לשם קבצים.. כל מיני קבצים.. HTML , JPG וכאלה..
כנסו שניה לפנקס רשימות, ובנו קובץ כזה: <html><font color=blue> hi</font></html>
רק במקום לשמור אותו כHTML, שמרו אותו כ JPG.. יעני, blabla.jpg
עכשיו.. תעלו את ה"תמונה" הזו לפורום.. שימו לב שלמרות שזה מתאור כתמונה (JPG) זה מוצג כדף אינטרנט לכל דבר!!

ומה אפשר לעשות עם זה?
עכשיו הגענו לקטע המעניין ביותר..
הקובץ שהעלינו לוואלה מאוכסן על שרתי וואלה.. לכן.. הוא יכול לקרוא את העוגיה של וואלה.. בעוגיה של וואלה נמצא גם שם המשתמש האחרון שהשתמשת בו בוואלה.. לכן אפשר לבנות קובץ פשוט שיקרא לעוגיה בג'אווה סקריפט ויוציא ממנה רק את שם המשתמש.. אחר כך אפשר לבנות פריים בלתי נראה שמחליף סיסמא ושמכיל את שם המשתמש של מי שצופה בדף.. ובסוף.. נורה לדף לבצע LOGOFF.. אחרי כמה דקות הסיסמא שלו תשתנה ..

הנה דוגמא: (במקרה זה, הסיסמא משתנה ל"oooo")


חזרה כללית:
1. לוקחים את הקוד שנתתי פה למעלה
2. שומרים אותו בקובץ look-at-me.jpg
3. נכנסים לפורום כלשהו בוואלה
4. בוחרים הודעה, נכנסים אליה, ולוחצים על "הוסף תגובה" אם צריך, רושמים שם משתמש וסיסמא
*הערה ובקשה: יש למטה רשימה של דפים קודמים, תעלו את זה כתגובה להודעה בדף הכי עתיק שמצאתם. לא נחמד לתת לאנשים תמימים לאבד את חשבון האימייל שלהם על ידי זה ששמתם את זה בדף הראשון שכולם רואים ועלולים להכנס בטעות*
5. נותנים כותרת "איך אני??" בגוף ההודעה רושמים "נכון שאני כריש?"
6. יש למטה אפשרות של "הוספת קובץ", מעלים את הקובץ ששמרתם. ונותנים לו תיאור: "שמשון הכריש"
7. יש כפתור ירוק מוזר כזה.. כתוב עליו "שלח הודעה" תלחצו עליו.. נראה מה יקרה.
8. כנסו להודעה שהגבתם עליה.. שימו לב שנוספה לשם התגובה שלכם.. תלחצו עליה.. בצד שמאל מופיע קובץ עם תיאור "שמשון הכריש" ובשם "look-at-me.jpg". זו בסך הכל תמונה.. נכון? אז אין סיבה לפחד. נכון? כנסו אליה.. לא רואים כלום.. מוזר.. חכו כמה שניות.. אופס.. הוא העביר אותכם לדף הראשי של וואלה.. חכו כמה דקות.. נסו להיכנס לחשבון דואר אלקטרוני שלכם.. "שם המשתמש או הסיסמא אינם מתאימים.." מוזר.. אי אפשר להיכנס למייל..
ברכות.. הסיסמא שלך השתנתה ל"oooo" כי ניסית להסתכל על "תמונה לא מזיקה" של שמשון הכריש.. אתם לא לבד.. כל מי שינסה לראות את "שמשון הכריש" יאבד את הסיסמא שלו לטובת הסיסמא "oooo" אני מקווה שאתם זוכרים את הכתובת של התמונה.. אם תשלחו אותה למייל של מישהו אחר, הסיסמא שלו תשתנה

מה וואלה היו יכולים לעשות כדי למנוע את זה?
1. בכל פורום נורמלי קיימת מערכת של הגנה נגד הצפות.. בעיקרון פשוט אפשר לבדוק במסד הנתונים אם המשתמש שלח הודעה ב60 השניות האחרונות.
2. לשים בקשה לסיסמא ישנה בטופס עריכת הגדרות פרטי חשבון
3. לבסס את שליחת הטפסים על session id כמו בפורומי PHPBB
4. לא להרשות העלאת קבצי HTML בתחפושת או לא בתחפושת.. לבצע סריקה על הקבצים שמועלים.
5. להתייחס לאנשים שמזהירים אותם כבר חצי שנה.

קראת את הטקסט? נכון מעניין? איזה סבבה זה לפרוץ לכל העולם את המייל. נכון? אז זהו שלא..
כניסה לחשבון אימייל של אדם אחר ללא הסכמתו היא עבירה על חוק
הגנת הפרטיות תשמ"א-1981
ועלולה להוביל למאסר של 5 שנים

"הפוגע במזיד בפרטיות זולתו, באחת הדרכים האמורות בסעיף 3( ,)2( ,)1(2) עד (7)
ו-(9) עד (11), דינו - מאסר חמש שנים."