PracticU

חולשת DVWA LFI - חלק 2
Local File Inclusion

בלי כתוביותעם כתוביות
PracticU › קורס פריצה ומבדקי חדירה לאתרי אינטרנט - בדיקות חוסן לאתרים - Web Pentesting - קורס זה נדרש למבחן ההסמכה היוקרתי OSCP › חולשת DVWA LFI - חלק 2 Local File Inclusion
מילון מושגים:
SSH - פרוטוקול לחיבור מרוחק ומוצפן למחשב, בעיקר לשרתי Linux, לצורך ניהול דרך שורת הפקודה.
חולשה - פגם או חולשה במערכת או בתוכנה שעלול לאפשר פגיעה באבטחה אם לא יטופל.
בקשה - פנייה שלקוח שולח לשרת כדי לקבל מידע או לבצע פעולה. השרת מחזיר עליה תגובה.
לוג - רישום מתועד של אירועים ופעולות שמתרחשים במערכת או בתוכנה, המשמש למעקב ולאיתור תקלות.
פרמטר - ערך שמועבר לפונקציה או לפקודה כקלט, ומשפיע על אופן פעולתן ועל התוצאה שהן מחזירות.
דפדפן - תוכנה שמציגה דפי אינטרנט ומריצה את הקוד שבהם, ומאפשרת לגלוש בין אתרים, למשל Chrome או Firefox.
HTTP - פרוטוקול להעברת דפי אינטרנט ונתונים בין דפדפן לשרת. הגרסה המאובטחת שלו היא HTTPS.
צד שרת - החלק של היישום שרץ בשרת ואחראי על הלוגיקה, מסדי הנתונים והעיבוד שמאחורי הקלעים.

חולשת DVWA LFI - חלק 2 Local File Inclusion
המשך ההסבר המושגי על Local File Inclusion, בסביבת מעבדה מבוקרת: איך תוקף שאין לו אפילו גישת ניהול רחוק (כמו SSH) עדיין יכול לנצל את החולשה, ולמה הרשאות קבצים חשובות.
הרעיון המרכזי
שרת Web מתעד כל בקשה שמגיעה אליו בקובץ תיעוד (log) משלו. אם לתוקף אין דרך ניהול מרחוק לשרת, הוא עדיין יכול לנסות לנצל את העובדה שהשרת "כולל" קבצים לפי פרמטר שהמשתמש שולח: אם קובץ התיעוד של שרת ה-Web עצמו נגיש לקריאה על ידי המשתמש שמריץ את השרת, והחולשה מאפשרת לבקש מהשרת להעריץ את קובץ התיעוד הזה כעמוד, כל תוכן שהתוקף הצליח להכניס לתיעוד (למשל על ידי כך שגרם לבקשה "חריגה" להירשם בו) עשוי לרוץ כקוד.
מה חשוב להבין
1. הרשאות קבצים הן קו הגנה: גישה לקובץ תיעוד ולתיקייה שמכילה אותו חייבת להיות מוגבלת. אם המשתמש שמריץ את שרת ה-Web יכול לקרוא את התיעוד שלו עצמו, זה פותח את האפשרות הזו.
2. קידוד תעבורה יכול לשבש ניסיון הזרקה: דפדפן מקודד תווים מסוימים (כמו רווחים) בבקשות HTTP, מה שעלול "לקלקל" תוכן שתוקף מנסה להכניס לתיעוד. כלי שמיירט ומאפשר לשלוט בבקשה המדויקת לפני שהיא נשלחת הוא חלק מהתהליך.
3. בדיקת קלט בצד שרת היא ההגנה האמיתית: ברמת הגנה מחמירה, מתכנת שבודק שהפרמטר שהתקבל תואם בדיוק לרשימת עמודים מורשית חוסם את כל השיטה הזו. ברמה שלא בודקת כלום, הפרמטר מתקבל כמו שהוא.
הלקח המושגי
חולשת File Inclusion אינה תלויה בערוץ ניהול אחד (כמו SSH). כל מקום שבו בקשות המשתמש נרשמות בקובץ שהשרת עשוי "להעריץ" מאוחר יותר הוא נקודת סיכון. ההגנה האמיתית היא אימות קפדני של הפרמטר בצד השרת, ולא הסתמכות על זה שערוץ מסוים סגור.
התרגול נעשה בסביבת מעבדה מבוקרת שנועדה ללימוד. ביצוע דבר כזה במערכת של אחרים הוא בלתי חוקי.
השיעור הבא בקורס: חולשת RFI - Remote File Inclusion

פרקי ההרצאה: חולשת DVWA LFI - חלק 2 Local File Inclusion

  1. 00:00

    אתר דינמי וטעינת קבצים

  2. 00:44

    חזרה על החולשה של LFI

  3. 01:21

    השלב הבא: שליטה בשרת

  4. 02:20

    הגדרת רמת אבטחה מדיום

  5. 02:54

    הזרעת פקודות בלוג של Apache

  6. 04:05

    הרשאות גישה לקובץ הלוג

  7. 05:03

    קריאת הלוג דרך הדפדפן

  8. 05:41

    שתילת פקודות PHP בלוג

תמלול ההרצאה: חולשת DVWA LFI - חלק 2 Local File Inclusion

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

  1. 00:02

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

  2. 00:17

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

  3. 00:46

    למה זה דינמי נקרא? כי אנחנו ב-URL אומרים לו מה להטעין ברגע זה. זאת אומרת שזה ב-run time, בזמן ריצה אומרים לו מה להטעין ולא מראש הכל מתוכנת.

  4. 00:59

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

  5. 01:09

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

  6. 01:21

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

  7. 01:47

    שאלה זה אומר פרמטר שאומר לו איזה עמוד להטעין אם אני רואה סימן שאלה פרמטר ואיזה עמוד להטעין זה אומר שזה file inclusion זה אומר שזה טעינה בזמן ריצה ולא טעינה שמתוכנתת מראש ואז אני אגיד לו, אתה יודע מה, במקום להטעין את העמוד המקורי, תטעיני את העמוד מתוך hard disk כמו ETC פאס

  8. 02:10

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

  9. 02:24

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

  10. 02:42

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

  11. 02:56

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

  12. 03:12

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

  13. 03:28

    כרגע אסור לעשות את זה. אז אני נכנס ב-SSH לתוך השרת, כאילו הנה, אני בתוך השרת כמנהל רשת. אני עובר לסודו מינוס s, להיות רוט.

  14. 03:39

    עכשיו אני מתפקד כמנהל רשת או כמתכנת של האתר, ותחשבו שהמתכנת של האתר נתן הרשאת read לקובץ הזה של access.log של אפאצ'י.

  15. 03:51

    זה הקובץ שבו שרת ווב מתעד את כל הפעילויות שלו. זאת אומרת, כל בקשה שאני עושה באתר ווב, כל פעם שאני עושה get למשהו או get לעמוד הזה, כל פעם שאני עושה איזושהי פקודה, מתעד אותה בקובץ הזה תסתכלו הכל מתועד פה אז קובץ הזה access.log מתעד את כל הבקשות של המשתמשים עכשיו אני רוצה לוודא שהנה יש פה read לכולם כולם יכולים לעשות read על

  16. 04:19

    הקובץ השאלה האם כולם יכולים לעשות גם read על התיקייה מעל ותראו תיקייה מעל זה ld עוד פעם ld אני רואה תיקייה עצמה שבה נמצא הקובץ אין לי פה אישור כניסה אליה רק רוט ו-ADM יכולים להיכנס, אני אשתלט עליו תחת user www משהו, ואני לא אוכל להיכנס לתוך התיקייה כי אין לי אישור גישה לתיקייה.

  17. 04:46

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

  18. 05:02

    אחרי שעשיתי לעצמי אקזיקיוט על התיקייה עצמה, אחרי שברמת קובץ של access גם יש לי אישור של read, אז הפקודה שלי תעבוד.

  19. 05:13

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

  20. 05:29

    אז File Inclusion כרגע שופך לי על המסך ומנסה להריץ את קובץ לוג של שרת ווב עצמו. מה נשאר לעשות? לשתול בתוך שרת ווב את הפקודות PHP הזדוניות שלי, שבתוך הווב הזה יהיו איזה שהן פקודות PHP זדוניות.

  21. 05:46

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

  22. 06:01

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

  23. 06:14

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

  24. 06:32

    אז אני עושה פה intercept on, תחטוף לי את הבקשות.

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

ההרצאה הקודמת: חולשת DVWA LFI - חלק 1 - Local File Inclusion

ההרצאה הבאה: חולשת RFI - Remote File Inclusion

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

  • Importing File
  • Create File
  • Configuration File
  • The Manifest File

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

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