
הטקסט המלא של הדקות הראשונות בהרצאה «חטיפה של HTTP Session» בקורס הווידאו של PracticU – כתוביות בעברית עם זמן התחלה לכל פסקה. כך תוכלו לקרוא ולחפש את הנושאים לפני שמתחילים ללמוד.
שלום לכולם בהרצאה הזאת אנחנו הולכים לדבר על מה זה סשן אנחנו הולכים להבין במה שונה סשן של tcp מהסשן של http ואנחנו הולכים לחטוף את הסשן של משתמש רגיל ולראות איך זה מתבצע אז קודם כל תראו שהסשן זה מושג כללי של מספר שיחה מזהה שיחה שיחה מסודרת בין שני צדדים שבצד של השרת ובצד של הלקוח יש כאילו העברת מידע מסודרת כאשר הצד השני מוודא הגעה.
כל זה נכון לגבי TCP סשן, ויש גם שיחה מסודרת ברמת אפליקציה – HTTP סשנס. מה ההבדלים ביניהם, ומה הם כל כך כל כך שונים?
הנה זה פה. בגלל TCP פאקט, בגלל שהפאקט של TCP לא כולל סשן ID, מספר שיחה מסודר, אין מספר סשן, אין מספר שיחה.
שימו לב, בגלל שב-tcp אין מספר סשן, שני הצדדים מזהים את ה-session, איזושהי שיחה, לפי מה? לפי רק IP ופורט, לפי אדרס ופורט.
זאת אומרת שהשיחה ב-tcp/ip מזוהה ברמת ה-tcp, מזוהה רק לפי IP ופורט. עכשיו זה מאוד מאוד חשוב, למה זה חשוב? לדוגמה, אם חיברנו כמה קווי אינטרנט לראוטר שלנו, בכל קו אינטרנט יש לו IP ופורט אחר, רוחב פס הוא לא מצטבר זאת אומרת סשן אחד שימו לב סשן אחד הורדת קובץ אחת בסשן אחד לא
יכולה להיות סכום של כל הקווים למה כי ברמת tcp ברמת tcp הסשן המזהה שלו זה IP ופורט וכל IP שאנחנו נצא ממנו יהיה שונה כי יש לנו כמה קווים שמצטברים ומבחינת השרת שמקבל את התקשורת זה יהיה תקשורות שונות שהן לא אותו דבר.
זה ברמת ה-TCP אז נורא חשוב להבין שהסשן ברמת ה-TCP אין לו מספר סידורי ולכן זה מוגבל ל-IP ופורט כזיהוי ויש בעיה להוסיף קווים לעומת זאת לעומת זאת בעולם של HTTP אין את המגבלה הזאת אין את הבעיה הזאת ומה שקורה ב-HTTP שהסשן יש לו מספר שיחה כן סשן ID אולי אני אתחיל להראות לכם את זה תקראו את כל זה אם האמת
עד שאני קראתי את כל זה והרבה יותר, אז הנה יש פה סשן איי-די. ככה לפני כל סרט אני ממש חוקר את הנושאים לעומק. אז בואו אני אתחיל להראות לכם דברים.
אז תראו, סשן ברמת ה-HTTP לא רצו להגביל את זה ל-IP ופורט אחד. בגלל שהם לא רצו להגביל את זה ל-IP ופורט אחד, אז מה שהם עשו, הם עשו בעצם מספר שיחה, אנחנו יכולים לראות את זה בסניפר, בואו נעלה את הסניפר שלנו ותכף נראה את המספר שיחה.
תסתכלו. כשנתחברנו פעם ראשונה לאתר אתם יכולים לראות פה בהדרים בואו ננקה הכל בואו נסגור אפילו את הדפדפן שלנו בואו נסגור את הדפדפן שלנו ונפתח אותו פעם ראשונה אוקיי יפה מאוד פותחים דפדפן פעם ראשונה תראו מה קורה פה בזה שלחנו בקשה לשרת תסתכלו זאת הבקשה לשרת
שלחנו בקשה לשרת פעם ראשונה למעלה זאת הבקשה שאנחנו רוצים להביא איזשהו דף מה השרת עונה לנו? תקבע לך קוקי עם סשן איי-די כזה וכזה, זה מספר השיחה, למעשה השרת שולח לי חזרה סשן איי-די.
למה הוא לא משתמש בסשן האיי-די בעצם של tcp? כי הוא לא רוצה להיות מוגבל ל-IP ופורט אחד. מה זאת אומרת? זאת אומרת שאם אני לוקח עכשיו את הקישור הזה, ומכניס נניח בסשן שלי, בשיחה שלי אחרי עימות של שם וסיסמה, השרת רוצה לשכור בזיכרון שלו ערך 1365, אני נניח מספר היוזר שלי זאת אומרת הסשן הוא יושב בתוך הזיכרון של השרת עם כל המידע
שקשור אליי אז השרת זוכר עכשיו כשאני אעשה לדוגמה F5 רפרש מה שיקרה ברפרש הזה שהקליינט שזה אני שלחתי בבקשה את הקוקי עם סשן איידי כזה וכזה השרת לקח את הסשן איידי הבין אה זה אתה שולח לך תשובה כזאת וכזאת זאת אומרת, השרת יודע לזהות אותי לפי ה-Session ID.
למה זה לא קשור ל-TCP ולמה ה-Session ID כל כך חשוב? תכף אנחנו נתחיל לגנוב אותו ואתם תבינו כמה שזה קריטי לאבטחת מידע. אז תראו מה אני עושה, ברגע שאני פותח עוד חלון, עוד חלון, זה תקשורת, TCP/IP שונה, זה פורט שונה.
נכון? כל חלון זה פורט שונה, ככה לא מתבלבלות הפקטים כשהם חוזרים. אבל מבחינת ה-HTTP, שימו לב זה בדיוק אותו סשן ובדיוק אותו ערך זה היתרון של http סשן לעומת tcp סשן שב http אתה לא מוגבל לip ופורט אחד הגעת מכמה מקומות לא אכפת לו מכמה מקומות הגעת ובכמה תקשורות
של tcp ip שונות עשית אם יש לך אותו סשן איידי ברמת הפאקט אתה אותו בן אדם יפה עכשיו אתם תשאלו אותי רגע אפשר לזייף את הסשן איידי הזה אפשר לגנוב אותו וזאת בדיוק הבעיה שמאוד מאוד קל לזייף אותו ומאוד מאוד קל לגנוב אותו.
אז תראו, כשפתחנו טאב חדש, דרך אגב, אם אתם רוצים לראות, הוא שלח אותו סשן איי-די. אתם רואים? בואו תראו, אני עכשיו מוחק הכל, לוקח את הכישור הזה ומכניס אותו פה, הנה אותו סשן איי-די.
ואיך השרת ידע שזה אותו סשן איי-די? כי שלחתי לו את הקוקי. אז בואו נדבר כמה דקות על קוקי זה היה לו קצת יותר לעומק, ונראה איך נוצר סשן איי-די ואחרי זה נגנוב אותו יפה אז בואו נפתח בואו נפתח פיירפוקס כי התקנתי פה כלי שאני מאוד מאוד אוהב שנקרא פיירבאג אתם
רואים זה נקרא פיירבאג כלי מאוד מאוד חזק שאני מאוד אוהב ותכף תראו תראו מה אנחנו עושים לא משנה שהפיירבאג עכשיו בגלל שזה דבדפן חדש אז הוא קיבל קוקי חדש למה קוקי חדש יפה זאת זה בדיוק מה שרציתי לדבר איתכם תראו מה קורה כשאני עושה F5 רפרש כן כשאני עושה רפרש אז תראו הקוקי שלי עכשיו נשאר קבוע
אבל מה זה הקוקי הזה איפה הוא נשאר קבוע הקוקי הזה אתם יכולים לראות אותו שזה הערך שלו זה הערך של הקוקי וקוקי הזה זה השם של הקוקי זה הערך של הקוקי לאיזה אתר זה שייך במקרה שלי זה לוקל אוסט מה הגודל שלו לאיזה דף באתר הוא שייך מתי הוא פק תוקף שימו לב בגלל שהקוקי הזה זהו סשן, פר סשן של דבדפן, זאת אומרת פר סשן יותר נכון בצד השרת.
אבל בגלל שזה סשן ולא קבוע, אז זה לא נשמר בדיסק. סשן קוקיז נשמרים בזיכרון של דבדפן. בגלל זה כשסגרתי דבדפן כרום ועברתי לפיירפוקס, אז הסשן קוקי התחלף.
זאת אומרת שאם אני אפתח עכשיו פיירפוקס, אתם תראו שיש לו זיכרון משלו והוא לא מכיר את הקוקיז של פיירפוקס. כרום לא מכיר את הקוקיז של פיירפוקס, אבל לעומת זאת firefox עצמו כל פעם שאני אפתח אצלו אתם תראו שזה בדיוק אותו קוקי אתם רואים זה אותו קוקי אותו סשן אז יפה אז הקוקי בעצם יכול להיות סשן או יכול להיות קבוע קבוע זה
אומר עד תאריך מסוים אני יכול לקבוע אותו ללא יודע מה לחודש קדימה שיפוג את רוקף בעוד חודש ואז כל החודש הקוקי הזה נשמר אצלי בדיסק וגם אם אני מכבה את המחשב ומדליק שוב כשאני אתחבר לאתר הוא יזהה אותי בלי שם וסיסמה כי הוא יראה את הקוקי שלי
HTTP only זה אומר שהקוקי הזה מוגבל רק ל-HTTP ולא לדוגמה לג'אווה סקריפט, כן? אם אני אנסה לגשת בג'אווה סקריפט לקוקי הזה הוא ייתן לי מגבלות שונות כדי שיהיה קשה לגנוב את הקוקי הזה אז הם עשו מעין כזאת מיני אבטחה, אוקיי?
יפה מאוד ויש פה security או גם לפעמים קוראים לזה הצפנה או סיקרט קוקי או כאלו הכוונה זה שהקוקי עובר רק אם הקו הוא HTTPS לא לא HTTPS, HTTPS קו מוצפן.
קוקי שמותר לו לעבור רק על קו מוצפן. יפה מאוד, אז אחרי שהבנו מה זה קול שדה בקוקי אנחנו יכולים גם, טוב בואו נעשה קודם כל כזה דבר, קודם כל בואו נמחק את הקוקי הזה, בואו נמחק את הקוקי, אנחנו גם יכולים ליצור קוקים משלנו, שזה ככה אנחנו גונבים סשן דרך אגב,
יוצרים קוקי עם השם ועם הערך של מישהו שאנחנו גונבים לו את הסשן, ואז הדבדפן שולח את זה לשרת והשרת חושב שאני זה הוא, אוקיי?
כאילו ככה תוקף בעצם גונב קובע לעצמו איזה סשן הוא רוצה שתבינו כל הסשן איי-די כל המספר