
הטקסט המלא של הדקות הראשונות בהרצאה «פריצה למחשב של מישהו אחר דרך האינטרנט - חלק 2» בקורס הווידאו של PracticU – כתוביות בעברית עם זמן התחלה לכל פסקה. כך תוכלו לקרוא ולחפש את הנושאים לפני שמתחילים ללמוד.
אנחנו ממשיכים בסדרת ההרצאות על XSS על פריצות למישהו בבית שלו דרך אתר אינטרנט שהוא מבקר בו. אנחנו יושבים אצלנו בבית, הקורבן שלנו יושב אצלו בבית, אין לנו שום קשר אליו.
הדבר היחיד שראינו בפייסבוק שלו שהוא מטייל באיזשהו אתר ואנחנו בודקים את האתר הזה, בודקים שהוא חשוף לXSS ותוקפים. בהרצאה הקודמת תקפנו דרך שדה שאפשר היה לשמור בו סקריפטים שלנו, נתונים שלנו וכשהקורבן שלנו נכנס לדף הזה הוא קיבל את הסקריפט שכתבנו והשתלטנו עליו עכשיו יש לנו אתגר הרבה יותר גדול האתגר שלנו
זה להשתלט על מחשב מרוחק בלי שיש לנו שום מקום להזין נתונים סתם יש לנו פה דף שזורק לנו סתם לא יודע מה סיסמאות סתם סתם יצר כמה אותיות אין הוא לא שומר כלום בדאטאבייס איך דרך הדף הזה אפשר לתקוף מישהו שהוא בכלל נמצא בבית שלו אנחנו לא יכולים לשמור שום דבר במסד הנתונים אז אז אנחנו נתחיל מזה שניקח את הכתובת הזאת, נעתיק אותה פה הצידה,
נעשה reset database, נתחיל מדאטאבייס נקי, נאפס את הכל כדי שנתחיל הכל מדף חלק, בואו נראה שנייה את הכתובת ה-IP, 29, ונלחץ פה reset database, אנחנו מתחילים מדאטאבייס נקי, כאילו כרגע התקלנו את התוכנה, ונכנסים לדף שדרכו הולכים לתקוף אותו, שזה נקרא reflection.
עד עכשיו עשינו פרסיסטנט קבוע, מה זה פרסיסטנט קבוע? פרסיסטנט קבוע זה אומר שזה יושב קבוע בתוך המסד נתונים וכל מי שאי פעם ייכנס לזה יחטוף את זה, עכשיו יש לנו מצב מסובך, אין לנו אפשרות להכניס שום דבר לתוך הדאטאבייס וזה נקרא רפלקטד, תכף תראו איך זה עובד, יש פה הרבה התקפות כאלו,
הרבה דפים כאלו, נניח נבחר דף, לא יודע, פאסוורד ג'נרטור, זה לא משנה איזה דף היינו בוחרים, זה סתם, בדף הזה אין כלום, אנחנו רק זורקים סתם, מייצר לנו סיסמאות, סתם, לא שומר שום דבר במסד נתונים.
בגלל שאין לנו אפשרות לשמור במסד נתונים זה לא Persistent, ותכף תראו איך זה עובד. מה אני רואה פה? שאם יש פה ב-URL אנונימוס, אני רואה את ההשתקפות שלו כאן.
אני עושה a a a a a a a a עושה go ואני רואה את ה-a a a כאן בגלל זה זה נקרא reflection זה אומר הפרמטר של היוזר זה נקרא פרמטר שאני מעביר לשרת הוא משתקף חזרה בתוך הדפדפן אז אם אני אכניס פה סקריפט אם אני אעשה פה סקריפט ואכתוב פה alert 0 ואסגור את הסקריפט אני יכול גם לכתוב alert a a a בואו נראה מה יקרה לא הצליח
בואי נעשה אלרט אחר, משהו פה לא מצליח, אבל אני כן רואה שמשהו פה משתקף. זה כן משתקף, אבל זה לא כזה פשוט כמו שחשבתי. אנחנו עכשיו צריכים לעלות רמה, להבין מה צריך להכניס כאן למעלה, מה צריך להכניס כאן למעלה כדי שההשתקפות הזאת תעבוד לטובתי.
בואו נעשה את זה. ניקח את ה-AA הזה, זה נכנס ל-right click, view page source, נמצא אותו עם ctrl-f, הינה אני מוצא אותו.
אה, אני רואה שזה חלק מבלוק שנקרא טריי קאץ'. זה חלק מבלוק טריי קאץ'. אוקיי, בואו נחשוב ביחד מה צריך להיות פה. בואו נפתח פה ליף פד שזה כמו נוטפד.
נפתח את הנוטפד הזה. נו, שנייה, אני אעשה פה כזה דבר, אני אעשה לי שיהיה לי נוח, אני אעשה פה רייט קליק. סטינגס, אני אגיד לו שלא יתחבא לאוטומט ושיהיה תמיד למטה.
ועכשיו הוא תמיד למטה והוא לא מתחבא. אנחנו צריכים לסגור את הסוגריים ולסגור את הבלוק של הcatch, נכון? לסגור את הסוגריים ולסגור את הבלוק של הcatch.
הנה אני סוגר סוגריים, סוגר את הבלוק של הcatch וסוגר את הסקריפט הזה. כאילו אני מסיים את הפעולה שהייתה לפניי. כשאני אכניס משהו זה ייכנס אך ורק לכאן.
מה אני רוצה? אני רוצה לסיים את הבלוק של הסקריפט ולפתוח בלוק סקריפט חדש, ובתוך הבלוק סקריפט חדש אני רוצה להכניס את הביף שלי.
זוכרים מההרצאה הקודמת, הפעלנו את הביף הזה, שזה מרכז שליטה שלי? הפעלתי את הביף הזה, וברגע שמישהו יתחבר לביף שלי, אני אוכל לשלוט עליו.
אני עושה כזה דבר, אני מסיים את הבלוק של הטראי עם קאץ', רק מסיים אותו. אני חייב שג'אווה סקריפט יעבוד אצל הלקוח. פותח בלוק חדש של סקריפט, ופה אני מכניס את ה-IP שלי, בואו נראה מה ה-IP שלי, 25 בסוף, זה 25, הנה ה-IP שלי, יופי, ועכשיו אני צריך, כביכול אני מכניס את זה פה, זה
המקום היחיד שאני יכול כחיצוני להתערב, אז הכנסתי את זה פה, אז סגרתי את הבלוק שהתחיל לפניי, הכנסתי את הקוד שלי, ועכשיו אני צריך שהחלק הזה יהיה ולידי, איך אני אעשה שהחלק הזה יהיה ולידי?
איך אני אעשה את זה? אני חייב להתחיל סקריפט, אני חייב להתחיל טראי, ואז יהיה טראי, משהו וגרשיים, יהיה פה בסוף גרשיים, אז אני צריך a שווה גרשיים, סתם a זה מה שאתם רוצים, a, a, a, מה שאתם רוצים, תכתבו a שווה ואז הוא ישלים את החלק הזה לבד, את זה הוא ישלים
לבד, נכון? את כל זה הוא הולך להשלים לבד וברגע שהוא ישלים את זה לבד זה יסתדר לי טוב כי זה יסתדר ככה ואז זה יהיה תקין, JavaScript תקין כי הוא הולך להשלים את זה.
יופי, זה מה שאני צריך לשלוח לו. אני במקום הזה, במקום זה אני מכניס לו כזה דבר לסגור את הסטרינג שהיה לסגור את הפקודה, לסגור את הטראי, לעשות את הקאץ', כי חייבים, אם עשיתי את הטראי, חייבים לעשות קאץ'.
אני כאקר נפלתי על אתר שלא הכי נוח לי בעולם, שהמקום שאני יכול להיכנס אליו זה באמצע הבלוג של טראי וקאץ'.
אז אני חייב לסיים את הבלוג של טראי וקאץ', לסיים את הסקריפט, לפתוח את הסקריפט שלי, הכנסתי את הסקריפט שלי, ועכשיו אני חייב לסיים את החלק הזה, כי החלק הזה אוטומט מתווסף, אני לא יכול לדלג עליו או למחוק אותו, אני יכול רק להיכנס במקום AA.
ואז אני עושה פה, פותח סקריפט חדש, פותח טראי שווה A שווה וגרשיים מילי. גרשיים, ואחרי זה הוא יסגור לי את הגרשיים וישלים את זה כמו שצריך.
יופי, זה מה שאני הולך לשתול במקום AA הזה. עכשיו תשאלו אותי איך אתה שותל את זה. אני, בגלל שזה חלק מ-URL, אני צריך לקודד את זה כדי שכל הסימנים האלו יעברו לי בדיקות לדלג על האבטחה של חרום לדוגמה.
לקודד את כל הדבר הזה לפי התקן של URL. איך אני מקודד את זה? אני עושה קרופי, פותח כלי שיודע לקודד, נקרא ביורפ. ביורפ הזה זה למעשה סניפר, כמו וויירשארק, יותר נכון.
סניפר שמותאם לווב. זה סניפר שמותאם לווב. אבל כרגע לי לא מעניין אותי שזה סניפר שמותאם לווב, אני מעניין אותי דקודר שלו, ואני מכניס לו את כל הטקסט, ואומר לו תקודד לי את זה כמו url.
תקודד לי את זה בתקן של url, והנה הוא מקודד לי אותו. אני לוקח את כל זה ומכניס לurl. וי ולעשות לו תעשה לי די קוד ל-url ואז הוא מחזיר לי את זה חזרה אז אני יכול לקודד אני יכול להחזיר אין שום בעיה אני אומר לו תקודד לי הוא מקודד לי יופי ועכשיו אני הולך לקורבן שלי שזה הקורבן שלי ובמקום aaa מכניס לו את הקוד הזה שעשינו עושה enter איך אני רואה שזה
עובד או לא עובד אני לוחץ F12 רואה פה בנטוורק האם אני רואה פה תקשורת אני לא רואה פה תקשורת בוא נעשה view page source קוק gs והנה מה אנחנו רואים שבאמת במקום הוא סגר את הגרשיים סיים את הפקודה עשה catch ריק סגר את הסקריפט פתח את הסקריפט שלנו שימו לב זה הכל במקום
aa הכניס פה סקריפט try a שווה למחוזת רקע והמשיך את זה הלאה קודם כל נראה לי שזה די תקין מה זה 25 זה אני לא אני 31 אתם רואים הכתובת שלי התחלפה לי בגלל זה הוא לא עבד לי טוב, אבל הסינטקס עצמו תקין, זוכרים שהיה פה AA, במקום AA הכנסתי את כל הסיפור הזה.
הדבר היחיד שעשיתי טעות, שהIP שלי התחלף ל-31, לא נורא. הולכים לברופסוויט הזה, שנייה, אני סוגר את הקופי שלו.
בטעות פתחתי עוד אחד, קאנסל, הנה יש לי פה אחד פתוח. זה חדש וזה פתוח. ואני צריך להחליף פה כתובת IP ל-31. כן, כמובן שבאמצעיות זה יהיה IP קבוע שלכם בענן, שזה שרת השליטה שלכם, שאליו כל היוזרים מתחברים.
קונטרול C, קונטרול V, Decode as URL, כן, 31, הכל בסדר, זה ה-URL שלי, הולך ושותל אותו אצל היוזר כאן, כפרמטר, למעשה הפרמטר שהשרת קולט מהמשתמש, אני מחליף אותו בקוד JavaScript.
תכף נמצא הנה פרמטר הזה שנקרא user name שהיה פאן aaa או אנונימוס הפרמטר הזה שמגיע מהיוזר אני שותל במקומו קוד ג'אווה סקריפט ועכשיו לוחצים F12 אוה אתם רואים בנטוורק זה התחיל לזוז אתם רואים החוג כן עבד הנה החוג עבד הצלחתי להשתלט על עצמי
וזה אומר שבתוך ביף בתוך ביף אני כבר יכול לראות שיש לי פה באונליין מישהו שהתחבר לשרת 23 וזה לקוח מספר 31. עכשיו מה שנשאר לי זה לקחת את הלינק הזה ולשלוח אותו לבן אדם הביתה במייל ולהגיד הנה חדשות מאתר אהוב עליך הנה תמונה מגניבה הוא רואה את הכתובת של האתר שהוא סומך אליו פותח את הלינק ואני משתלט עליו שימו לב השיטת
הרפלקטינג הזאת השיקוף הזה עובדת רק על יוזר אחד למה על יוזר אחד ולא על כולם כי אני לא מכניס שום דבר לדאטה בייס אתם יכולים לראות שפה אין שום תקשורת, שום דבר לא רץ ברקע, בן אדם נכנס לאתר ויורדים לו כל מיני דפים וזהו, זה עוצר.
ברגע שאתם רואים, הוא עושה פספורט ג'נרטור, שום דבר לא רץ ברקע. ברגע שהוא פותח את הלינק ששלחתי לו במייל ובמקום אנונימוס הכנסתי פה סקריפט, הופה, אתם רואים, הוא קלט אותי, קלט אותי, אתם רואים, החרום, איך קוראים לזה, החרום עצר אותי,
ופיירף, אתם רואים, בלוקס, התקפה של אקססס יפה אתם רואים הדפדפנים מנסים להילחם בזה ופיירפוקס לא זיהה את זה אתם רואים פיירפוקס לא עצר לי את הפאקט ואצל הבן אדם בבית פיירפוקס פתח לי את החוג gs אליי לשרת רואים פתח לי את החוג gs אליי לשרת בוא נחזור לכרום ואני לא מבין משהו למה בכרום שזה לא
עבד אני רואה פתאום שa a a כן משתקף אז כן יש יש השתקפות, חרום לא חוסם השתקפות, כנראה שהוא חסם רק את המילת סקריפט כאן, זה החשד שלי.
עכשיו אני רוצה לרשום סקריפט בלי לרשום מילת סקריפט, ואז כנראה שהסקרום לא יצליח לחסום אותי. אז נעשה פה F12, נלך ל-view page source, אתם יודעים מה זה, לא משנה, A, A, A, ונרשום פה משהו אחר שלא יהיה סקריפט, notepad, בואו נרשום משהו אחר.
נרשום לדוגמה alert, ננסה לעשות alert פשוט. אנחנו מתחילים את כל הקטע הזה מגיעים עד לפה ואת זה אנחנו מחליפים רק את ה-AAA אנחנו מחליפים מה זה להחליף זה אומר לסיים את הפקודה הנוכחית ולעשות פקודה חדשה בוא ננסה ננסה דוגמה כזאת פשוטה עוברים לקאלי לאנקודר עושים encode as url ולוקחים את הפקודה הזאת אנחנו יכולים גם לעשות
God as plaintext as url הנה כן זה עובד יופי הולכים לווינדוס 10 ובמקום a כותבים את זה שום דבר לא קרה נעשה view page source נמצא פה את האלרט 0 שלי הנה אני רואה שמה היה היה לי פה משהו גרשיים מסתיימים נקודה פסיק עד עכשיו הכל תקין פקודה וזה מה שמפריע לו הדבר
הזה מפריע לו בוא נרשום במקום זה a שווה גרשיים ואז הוא ישלים את זה גרשיים ריקים אבל את זה הוא משלים לבד ואז זה יהיה סינטקס תקין אני עושה ctrl c ctrl c הולך לכאן ctrl v encode as url decode as url לבדוק שזה באמת תקין באמת תקין
אני עושה ctrl a ctrl c מעתיק את זה הולך לכאן שימו לב אני בכרום מכניס את הסטרינג מה קרה התחלף לו כתובת IP התחלפה לו כתובת IP, 163. לפעמים מתחלפת לו כתובת IP. זה לא קשור ללינק, זה קשור ל...
אוה, קפצה לי הודעה.