PracticU

פריצה למחשב של מישהו אחר דרך האינטרנט - חלק 2

בלי כתוביותעם כתוביות
PracticU › קורס פריצה ומבדקי חדירה לאתרי אינטרנט - בדיקות חוסן לאתרים - Web Pentesting - קורס זה נדרש למבחן ההסמכה היוקרתי OSCP › פריצה למחשב של מישהו אחר דרך האינטרנט - חלק 2
מילון מושגים:
XSS - חולשה באתרים שבה תוקף מחדיר סקריפט זדוני לדף שמוצג למשתמשים אחרים ורץ בדפדפן שלהם.
חולשה - פגם או חולשה במערכת או בתוכנה שעלול לאפשר פגיעה באבטחה אם לא יטופל.
פרמטר - ערך שמועבר לפונקציה או לפקודה כקלט, ומשפיע על אופן פעולתן ועל התוצאה שהן מחזירות.
תחביר - אוסף הכללים של שפת תכנות הקובעים כיצד לכתוב קוד תקין. הפרתם גורמת לשגיאת תחביר.
הנדסה חברתית - מניפולציה על בני אדם כדי לגרום להם למסור מידע רגיש או לבצע פעולות, במקום תקיפה טכנית של המערכת.
דפדפן - תוכנה שמציגה דפי אינטרנט ומריצה את הקוד שבהם, ומאפשרת לגלוש בין אתרים, למשל Chrome או Firefox.
שרת - מחשב או תוכנה שמספקים שירות למחשבים אחרים (לקוחות) ברשת, למשל אחסון קבצים, אתר אינטרנט או מסד נתונים, ומגיבים לבקשות שלהם.
HTML - שפת הסימון שבה בונים את מבנה ותוכן דפי האינטרנט, באמצעות תגיות שמגדירות כותרות, פסקאות, קישורים ועוד.

פריצה למחשב של מישהו אחר דרך האינטרנט - חלק 2
ההרצאה ממשיכה בסדרת XSS ומציגה פגיעות מסוג מוחזר (Reflected XSS). בניגוד לסוג הקבוע, הקלט כאן לא נשמר במסד הנתונים. הוא מוחזר מיד לדף מתוך פרמטר שנמצא בכתובת, ולכן הפגיעה מתקיימת רק למי שפותח קישור מסוים.
עקרונות הפגיעות
1. מסלול הקלט: פרמטר בכתובת הדף מוצג חזרה בתוך התוכן, ולכן מה שמוזן בו משתקף בדף.
2. תלות במיקום: הקלט המשתקף נכנס לחלק מסוים בתוך הדף, וההתנהגות שלו תלויה במבנה התחביר באותו מקום.
3. הקורבן: הפגיעה דורשת שהקורבן יפתח קישור מוכן. לכן מדובר בתקיפה שמסתמכת על הנדסה חברתית, למשל הודעה שנראית מוכרת ואמינה.
4. למה זה לא קבוע: לא נשמר דבר במסד הנתונים, ולכן הפגיעה משפיעה רק על אותו מבקר ואותו ביקור.
5. הגנות של הדפדפן: דפדפנים שונים מגיבים בצורה שונה. חלקם חוסמים תבניות מוכרות, אבל זו הגנה חלקית שלא מחליפה תיקון בשרת.
איך מתגוננים
1. קידוד בצד השרת: לפני שפרמטרים מהמשתמש משתקפים בדף, השרת מקודד אותם בקידוד HTML, כך שהם יוצגו כטקסט ולא יתפרשו כקוד.
2. הפרדה בין מקור לקלט: רק מה שהמשתמש הזין עובר קידוד, ואילו הקוד שהמתכנת כתב נשאר כמו שהוא.
3. סריקה אוטומטית: כלי סריקה כמו Vega סורקים את האתר, מזהים מקומות חשופים ל-XSS ומדרגים אותם לפי דף, כך שלא צריך לחפש ידנית.
שימו לב
- סריקה אוטומטית לוקחת זמן, כי היא עוברת על כל הדפים באתר.
בסיום תבינו מדוע קידוד פרמטרים בצד השרת סוגר את הפגיעה הזו, ואיך כלים אוטומטיים מאתרים אותה לפני שהיא מנוצלת.
השיעור הבא בקורס: מה זה cookies ?

פרקי ההרצאה: פריצה למחשב של מישהו אחר דרך האינטרנט - חלק 2

  1. 00:00

    מבוא: XSS מוחזר לעומת XSS קבוע

  2. 01:35

    XSS מוחזר שאינו נשמר במסד הנתונים

  3. 03:10

    הבנת מבנה הדף לפני בדיקת הקלט

  4. 04:54

    שילוב קטע הבדיקה בתוך מבנה הדף

  5. 07:04

    קידוד הכתובת לפי תקן URL

  6. 08:18

    בדיקת התעבורה בכלי הפיתוח

  7. 11:08

    מדוע השיטה פועלת על משתמש אחד

  8. 11:47

    מנגנוני הגנה של הדפדפן מול תוכן חשוד

תמלול ההרצאה: פריצה למחשב של מישהו אחר דרך האינטרנט - חלק 2

הטקסט המלא של הדקות הראשונות בהרצאה «פריצה למחשב של מישהו אחר דרך האינטרנט - חלק 2» בקורס הווידאו של PracticU – כתוביות בעברית עם זמן התחלה לכל פסקה. כך תוכלו לקרוא ולחפש את הנושאים לפני שמתחילים ללמוד.

  1. 00:02

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

  2. 00:17

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

  3. 00:43

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

  4. 01:07

    נעשה reset database, נתחיל מדאטאבייס נקי, נאפס את הכל כדי שנתחיל הכל מדף חלק, בואו נראה שנייה את הכתובת ה-IP, 29, ונלחץ פה reset database, אנחנו מתחילים מדאטאבייס נקי, כאילו כרגע התקלנו את התוכנה, ונכנסים לדף שדרכו הולכים לתקוף אותו, שזה נקרא reflection.

  5. 01:35

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

  6. 01:57

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

  7. 02:11

    בגלל שאין לנו אפשרות לשמור במסד נתונים זה לא Persistent, ותכף תראו איך זה עובד. מה אני רואה פה? שאם יש פה ב-URL אנונימוס, אני רואה את ההשתקפות שלו כאן.

  8. 02:26

    אני עושה a a a a a a a a עושה go ואני רואה את ה-a a a כאן בגלל זה זה נקרא reflection זה אומר הפרמטר של היוזר זה נקרא פרמטר שאני מעביר לשרת הוא משתקף חזרה בתוך הדפדפן אז אם אני אכניס פה סקריפט אם אני אעשה פה סקריפט ואכתוב פה alert 0 ואסגור את הסקריפט אני יכול גם לכתוב alert a a a בואו נראה מה יקרה לא הצליח

  9. 03:06

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

  10. 03:27

    בואו נעשה את זה. ניקח את ה-AA הזה, זה נכנס ל-right click, view page source, נמצא אותו עם ctrl-f, הינה אני מוצא אותו.

  11. 03:39

    אה, אני רואה שזה חלק מבלוק שנקרא טריי קאץ'. זה חלק מבלוק טריי קאץ'. אוקיי, בואו נחשוב ביחד מה צריך להיות פה. בואו נפתח פה ליף פד שזה כמו נוטפד.

  12. 03:51

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

  13. 04:08

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

  14. 04:20

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

  15. 04:35

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

  16. 04:45

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

  17. 04:56

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

  18. 05:27

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

  19. 05:39

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

  20. 06:04

    לבד, נכון? את כל זה הוא הולך להשלים לבד וברגע שהוא ישלים את זה לבד זה יסתדר לי טוב כי זה יסתדר ככה ואז זה יהיה תקין, JavaScript תקין כי הוא הולך להשלים את זה.

  21. 06:16

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

  22. 06:32

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

  23. 06:41

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

  24. 06:57

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

  25. 07:06

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

  26. 07:22

    לקודד את כל הדבר הזה לפי התקן של URL. איך אני מקודד את זה? אני עושה קרופי, פותח כלי שיודע לקודד, נקרא ביורפ. ביורפ הזה זה למעשה סניפר, כמו וויירשארק, יותר נכון.

  27. 07:37

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

  28. 07:50

    תקודד לי את זה בתקן של url, והנה הוא מקודד לי אותו. אני לוקח את כל זה ומכניס לurl. וי ולעשות לו תעשה לי די קוד ל-url ואז הוא מחזיר לי את זה חזרה אז אני יכול לקודד אני יכול להחזיר אין שום בעיה אני אומר לו תקודד לי הוא מקודד לי יופי ועכשיו אני הולך לקורבן שלי שזה הקורבן שלי ובמקום aaa מכניס לו את הקוד הזה שעשינו עושה enter איך אני רואה שזה

  29. 08:21

    עובד או לא עובד אני לוחץ F12 רואה פה בנטוורק האם אני רואה פה תקשורת אני לא רואה פה תקשורת בוא נעשה view page source קוק gs והנה מה אנחנו רואים שבאמת במקום הוא סגר את הגרשיים סיים את הפקודה עשה catch ריק סגר את הסקריפט פתח את הסקריפט שלנו שימו לב זה הכל במקום

  30. 08:50

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

  31. 09:16

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

  32. 09:28

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

  33. 09:50

    קונטרול C, קונטרול V, Decode as URL, כן, 31, הכל בסדר, זה ה-URL שלי, הולך ושותל אותו אצל היוזר כאן, כפרמטר, למעשה הפרמטר שהשרת קולט מהמשתמש, אני מחליף אותו בקוד JavaScript.

  34. 10:19

    תכף נמצא הנה פרמטר הזה שנקרא user name שהיה פאן aaa או אנונימוס הפרמטר הזה שמגיע מהיוזר אני שותל במקומו קוד ג'אווה סקריפט ועכשיו לוחצים F12 אוה אתם רואים בנטוורק זה התחיל לזוז אתם רואים החוג כן עבד הנה החוג עבד הצלחתי להשתלט על עצמי

  35. 10:39

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

  36. 11:11

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

  37. 11:31

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

  38. 11:55

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

  39. 12:27

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

  40. 12:40

    עכשיו אני רוצה לרשום סקריפט בלי לרשום מילת סקריפט, ואז כנראה שהסקרום לא יצליח לחסום אותי. אז נעשה פה F12, נלך ל-view page source, אתם יודעים מה זה, לא משנה, A, A, A, ונרשום פה משהו אחר שלא יהיה סקריפט, notepad, בואו נרשום משהו אחר.

  41. 13:03

    נרשום לדוגמה alert, ננסה לעשות alert פשוט. אנחנו מתחילים את כל הקטע הזה מגיעים עד לפה ואת זה אנחנו מחליפים רק את ה-AAA אנחנו מחליפים מה זה להחליף זה אומר לסיים את הפקודה הנוכחית ולעשות פקודה חדשה בוא ננסה ננסה דוגמה כזאת פשוטה עוברים לקאלי לאנקודר עושים encode as url ולוקחים את הפקודה הזאת אנחנו יכולים גם לעשות

  42. 13:37

    God as plaintext as url הנה כן זה עובד יופי הולכים לווינדוס 10 ובמקום a כותבים את זה שום דבר לא קרה נעשה view page source נמצא פה את האלרט 0 שלי הנה אני רואה שמה היה היה לי פה משהו גרשיים מסתיימים נקודה פסיק עד עכשיו הכל תקין פקודה וזה מה שמפריע לו הדבר

  43. 14:10

    הזה מפריע לו בוא נרשום במקום זה a שווה גרשיים ואז הוא ישלים את זה גרשיים ריקים אבל את זה הוא משלים לבד ואז זה יהיה סינטקס תקין אני עושה ctrl c ctrl c הולך לכאן ctrl v encode as url decode as url לבדוק שזה באמת תקין באמת תקין

  44. 14:36

    אני עושה ctrl a ctrl c מעתיק את זה הולך לכאן שימו לב אני בכרום מכניס את הסטרינג מה קרה התחלף לו כתובת IP התחלפה לו כתובת IP, 163. לפעמים מתחלפת לו כתובת IP. זה לא קשור ללינק, זה קשור ל...

  45. 14:59

    אוה, קפצה לי הודעה.

לקורס המלא: קורס פריצה לאתרי אינטרנט אונליין

ההרצאה הקודמת: פריצה למחשב של מישהו אחר דרך האינטרנט - חלק 1

ההרצאה הבאה: מה זה cookies ?

הרצאות קשורות מקורסים אחרים

  • פריצה למחשב עם Metasploit
  • הורדת תוכנות דרך האינטרנט - Torrent
  • התקנה דרך SCCM CLIENT למחשב ב-WORKGROUP
  • פריצה לאתר דרך כתובת URL

קורסים נוספים במסלול

  • קורס SOC - מיישם הגנת סייבר
  • קורס סייבר למתחילים - Hacking - בדיקות חוסן תשתיתי ופריצה ל-Windows 10/11 - קורס זה נדרש למבחן ההסמכה היוקרתי OSCP
  • קורס פריצה ומבדקי חדירה לתשתית ארגונית - בדיקות חוסן מתקדמות ל-Active Directory - קורס זה נדרש למבחן ההסמכה היוקרתי OSCP
  • קורס סייבר והאקינג ל-Android - פריצה לטלפונים ואפליקציות אנדרואיד - בודק חוסן - Mobile App Pentesting