PracticU

איתור תווים פסולים - Bad Characters

בלי כתוביותעם כתוביות
PracticU › קורס סייבר למתחילים - Hacking - בדיקות חוסן תשתיתי ופריצה ל-Windows 10/11 - קורס זה נדרש למבחן ההסמכה היוקרתי OSCP › איתור תווים פסולים - Bad Characters
מילון מושגים:
זיכרון - רכיב מהיר ונדיף שבו המחשב שומר נתונים ותוכניות בזמן ריצתם. תוכנו נמחק עם כיבוי המחשב.
ASCII - תקן לקידוד תווים שמייצג אותיות, ספרות וסימנים כמספרים, ומשמש בסיס לייצוג טקסט במחשב.
חולשה - פגם או חולשה במערכת או בתוכנה שעלול לאפשר פגיעה באבטחה אם לא יטופל.
מחרוזת - סוג נתונים שמייצג רצף של תווים, כלומר טקסט, ומשמש לאחסון מילים, משפטים או כל רצף סימנים.
HTTP - פרוטוקול להעברת דפי אינטרנט ונתונים בין דפדפן לשרת. הגרסה המאובטחת שלו היא HTTPS.
POST - שיטת HTTP לשליחת נתונים לשרת כדי ליצור או לעדכן משאב, למשל שליחת טופס.
פרוטוקול - מערכת כללים מוסכמת שקובעת כיצד מכשירים או תוכנות מתקשרים ומחליפים מידע, למשל HTTP או TCP.

איתור תווים פסולים - Bad Characters
ההרצאה היא חלק מסדרה על התקפת Buffer Overflow, ומסבירה את הרעיון של "תווים פסולים" (Bad Characters): תווים שאסור שיופיעו בתוך המטען שנשלח, כי הם משבשים את ההעתקה אל הזיכרון.
הרעיון
המטען נוצר בכלי Metasploit כרצף של תווי ASCII. לא כל תו מתאים לכל סוג של חולשה, כי בחולשה הספציפית לשפת תכנות מסוימת חלק מהתווים מפסיקים את הקלט באמצע. למשל, התו 0x00 מסיים העתקה של מחרוזת בשפת C, ולכן כל מה שאחריו לא מגיע ליעד. תווים נוספים, ביניהם 0x0a ו-0x0d, קשורים לסיום בקשת HTTP POST.
המרצה מסביר שאת התווים הבעייתיים מזהים בבדיקה אמפירית: שולחים את כל טווח התווים, בודקים בדיבאגר (בהדגמה Immunity) באיזה תו הרצף בזיכרון נקטע, מסירים אותו וחוזרים על התהליך עד שכל הרצף עובר שלם.
מה ההרצאה מלמדת על ההגנה
הדוגמה מראה למה קלט שנקטע ביחס לפרוטוקול ולשפה הוא גורם מכריע בתנאי שבהם חולשה בכלל ניתנת לניצול, ולכן הבנה של אופן הטיפול במחרוזות ובפרוטוקול היא חלק מהבנת החולשה עצמה.
אחרי ההרצאה ברור מהו תו פסול ולמה צריך לסנן אותו.
השיעור הבא בקורס: מציאת כתובת סטטית להרצת קוד מתוך ה-STACK

פרקי ההרצאה: איתור תווים פסולים - Bad Characters

  1. 00:00

    המשך בניית הסקריפט

  2. 00:43

    תווים שמסיימים העתקת מחרוזת

  3. 01:22

    התו null והשפעתו

  4. 02:01

    רצף התווים של HTTP POST

תמלול ההרצאה: איתור תווים פסולים - Bad Characters

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

  1. 00:02

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

  2. 00:26

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

  3. 00:43

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

  4. 01:01

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

  5. 01:15

    ובואו נראה את התווים האלה ונבין יותר. אני רגע אדח פה ה- notepad. כן, אז יש לנו את התו שנקרא, בואו רגע נגדיל פה, 0 כפול 00. התפקיד שלו זה לעשות terminate להעתקה של סטרינג ב-C, אוקיי, נרשום את זה, End, בסדר, והתפקיד שלו זה לעשות טרמינט, אז זה לא טוב לנו כי ברגע שנרצה להעתיק את כל הסטרינג

  6. 01:42

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

  7. 02:12

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

לקורס המלא: קורס סייבר למתחילים אונליין

ההרצאה הקודמת: מציאת מקום בזיכרון עבור Payload - Shellcode

ההרצאה הבאה: מציאת כתובת סטטית להרצת קוד מתוך ה-STACK

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

  • תווים - Chars (שפת #C)
  • שימוש ב-Escape Characters ב-MySQL - חלק 1
  • בדיקת תוכן ג'ייסון - תווים מיוחדים
  • UITextField - UITextFieldDelegate Validation of entered characters

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

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