מדריך: XSS – Cross Site Scripting – הזרקת קוד (חלק 2)

אמשיך בסדרת המאמרים על הזרקות קוד (כהמשך לחלק הראשון), ואזכיר שראשי התיבות XSS מתייחסות לסוג פרצות האבטחה Cross Site Scripting, ולא לשפת עיצוב הגליונות CSS, עליה בוודאי אדבר בהזדמנויות אחרות.

פרצות XSS לרוב מתחלקות לשני סוגים עיקריים:

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

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

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

כבודק אתרים, אין צורך לעשות עבודה מרובה כדי לבדוק האם האתר מכיל פרצות XSS או לא. כל מה שצריך זה ידע מועט בJavaScript, והרבה דמיון, שהרי האפשרויות לפרצות – כמעט ואין-סופיות. אדגים מספר תרחישים אפשריים:

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

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

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

תגובה אחת ל “מדריך: XSS – Cross Site Scripting – הזרקת קוד (חלק 2)”

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

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

הוסף תגובה