
הטקסט המלא של הדקות הראשונות בהרצאה «התקפת DOM-Based XSS רמת אבטחה גבוהה באתר ב-DVWA» בקורס הווידאו של PracticU – כתוביות בעברית עם זמן התחלה לכל פסקה. כך תוכלו לקרוא ולחפש את הנושאים לפני שמתחילים ללמוד.
שלום לכולם בהרצאה הזו נדבר מה זה XSS מסוג DOM נתחיל ברמה נמוכה ואחרי זה נקפוץ ישר לרמה הגבוהה ומה הרעיון של XSS DOM הזה ומה הוא שונה מ-XSS רגיל אז קודם כל יש לנו פה אתר שהלקוח רק כותב באיזה שפה הוא רוצה את האתר נניח בצרפתית ובוחר לא
שום דבר מיוחד לא קורה פה אין משהו לפרוץ דרכו אבל אני פתאום שם לב שיש למעלה ב-URL default שווה English שאני כותב פה aaa עושה enter והaaa למעלה משתקף לי בתוך ה html אני רואה פה השתקפות ברגע שאני רואה פה השתקפות אני יכול לכתוב פה סקריפט ולראות האם הוא יבצע
את הסקריפט בלי לקודד אותו אני מקווה שהוא לא חשב על זה המתכנת והוא באמת לא מקודד שום תווים מסוכנים והסקריפט חוזר לפה ומתבצע כאן עד עכשיו זאת התקפת השתקפות רגילה שום דבר מיוחד אנחנו יכולים לראות בפרוקסי שהבקשה שלנו הלכה לשרת עם הדיפולט וחזרה מהשרת והקליינט ביצע את הסקריפט הזה של דיפולט נכון
הכל עד עכשיו נראה רגיל לחלוטין בקשה ותשובה מהשרת הכל תקין זאת השתקפות רגילה עכשיו מה זה DOM בייסט מה מיוחד בDOM בייסט אקססס בזה שאני יכול לעשות פה סולמית תסתכלו טוב אני עושה סולמית זה נראה אותו דבר, נכון?
אותו קוד, הכל אותו דבר, אבל כל מה שלפני הסולמית יישלח לשרת וכל מה שאחרי הסולמית כבר לא יישלח לשרת, אלא תשובה מהשרת תגיע ואז הוא יוסיף את כל החלק הזה לתשובה מהשרת כאילו זה כן הגיע.
הבנתם? זה כאילו לא שולח כלום לשרת, ככה הדפדפן מנסה לחסוך דברים מיותרים שלא צריך לשלוח לשרת. זאת טכנולוגיה הסולמית הזאת שאומרת לדפדפן אל תשלח דברים מיותרים לשרת תשלח רק את החלק שעד הסולמית לשרת זאת אומרת שהרעיון זה לחסוך שליחת מידע מיותר לשרת אז המתכנת יכול לשים סולמית כל מה שאחרי הסולמית לא יישלח לשרת
אבל כשתגיע התשובה מהשרת כשיגיע הריספונס הוא יוסיף את זה כאילו השרת שלח לנו את זה ואז התוצאה תהיה אותו דבר, זה נראה אותו דבר, אבל בפרוקסי אנחנו רואים שלשרת זה לא נשלח.
אתם רואים? בגלל ששמנו סולמית. אבל למרות שזה לא נשלח, זה עדיין יתבצע. אתם רואים? פה הדבר הזה מתבצע. למה? לדוגמה, בוא נוסיף פה b, b, b, ואני עושה פה enter, וזה לא עובד. למה זה לא עובד?
כי הדפדפן ראה ששום דבר עד הסולמית לא השתנה, וזה שבן אדם לחץ enter סתם, הוא מתעלם. בגלל זה אני חייב לפתוח תאפ חדש ולעשות פה אנטר.
הנה זה עובד עכשיו. בי בי בי עובד, אתם רואים? זאת אומרת שהקוד של הקליינט מבצע את הקוד הזה. הוא מבצע, מוסיף בי בי בי, הכל עובד כאילו השדה הדיפולט הזה הגיע מהשרת, אבל בפועל אנחנו רואים שהוא לא נשלח לשרת.
וזה נקרא דום בייס. למה זה דום בייס? כי זה קורה רק בתוך קליינט, שום דבר לא נשלח לשרת כמו בהשתקפות הרגילה. בהשתקפות הרגילה אנחנו שולחים לשרת ומקבלים תשובה.
בדום בייסט אנחנו לא שולחים כלום לשרת כי שמנו סולמית אבל האפקט הוא אותו אפקט של הרפלקטד. זה למעשה אקססס רפלקטד השתקפות אבל בלי להגיע לשרת.
עכשיו הקוד של הקליינט מבצע הכל רגיל הוא עובד רגיל וחושב שהדיפולט הזה הגיע מהשרת למרות שהוא לא נשלח לשרת כי דפדפן לא שלח אותו כי הוא אחרי הסולמית ואם נראה פה view page source איך זה מתבצע אנחנו נראה שהסלקטור הדרופ דאון הדבר הזה שנופל נבנה על ידי סקריפט