PracticU

סוס טרויאני בהעלאת קבצים לאתר - PHP
אבטחה ברמה בינונית - DVWA Medium

בלי כתוביותעם כתוביות
PracticU › קורס פריצה ומבדקי חדירה לאתרי אינטרנט - בדיקות חוסן לאתרים - Web Pentesting - קורס זה נדרש למבחן ההסמכה היוקרתי OSCP › סוס טרויאני בהעלאת קבצים לאתר - PHP אבטחה ברמה בינונית - DVWA Medium
מילון מושגים:
PHP - שפת תכנות לצד השרת, נפוצה בבניית אתרים דינמיים ומערכות ניהול תוכן כמו WordPress.
דפדפן - תוכנה שמציגה דפי אינטרנט ומריצה את הקוד שבהם, ומאפשרת לגלוש בין אתרים, למשל Chrome או Firefox.
תמונה - קובץ גרפי המוצג על המסך. בהקשר של וירטואליזציה או Docker, תבנית מוכנה שממנה יוצרים מכונה או קונטיינר.
בקשה - פנייה שלקוח שולח לשרת כדי לקבל מידע או לבצע פעולה. השרת מחזיר עליה תגובה.
צד שרת - החלק של היישום שרץ בשרת ואחראי על הלוגיקה, מסדי הנתונים והעיבוד שמאחורי הקלעים.
לקוח - תוכנה או מחשב שפונים לשרת ומבקשים ממנו שירות או מידע, למשל דפדפן שמבקש דף אינטרנט.
פרוקסי - שרת מתווך שמעביר בקשות בין לקוח ליעד, ויכול לשמש להסתרה, לסינון, למטמון או לבקרת גישה.
JavaScript - שפת תכנות שרצה בעיקר בדפדפן ומוסיפה אינטראקטיביות לדפי אינטרנט. רצה גם בצד השרת באמצעות Node.js.

סוס טרויאני בהעלאת קבצים לאתר - PHP אבטחה ברמה בינונית - DVWA Medium
הרצאה מושגית, בסביבת מעבדה מבוקרת, על הגנה בינונית מפני העלאת קבצים זדוניים - בדיקה לפי סוג הקובץ (content type) שהדפדפן מצהיר עליו, ולמה בדיקה כזו לבדה אינה מספיקה.
מה הרעיון המרכזי
כשאתר בודק רק את השדה שמתאר את סוג הקובץ שמגיע מהדפדפן (למשל "זו תמונה"), והוא לא בודק דברים נוספים כמו הסיומת האמיתית של שם הקובץ, נוצר פער: הדפדפן יכול להיות משודל לשלוח שדה "סוג" שאומר תמונה, בזמן שהשם בפועל נשמר בסיומת שמריצה קוד. מערכת ההפעלה, לעומת האתר, מחליטה איך לטפל בקובץ לפי הסיומת של שמו - ולא לפי מה שהוגדר כ-content type בבקשה.
הלקח המושגי
- אימות קלט בצד שרת חייב לבדוק את כל מה שבאמת קובע התנהגות (כולל סיומת הקובץ שתישמר בפועל), ולא להסתפק בשדה יחיד שהלקוח שולט בו.
- כלי שמיירט תקשורת בין דפדפן לשרת (פרוקסי) יכול לחשוף פער בין מה שה-JavaScript בדפדפן "מרוצה" ממנו לבין מה שבאמת נשלח לשרת, ומראה למפתחים היכן הבדיקה שלהם לא מספיקה.
- רמת הגנה גבוהה יותר (שבודקת גם את הסיומת בפועל) סוגרת את הפער הזה.
- התרגיל נעשה בסביבת מעבדה מבוקרת שנועדה ללימוד בלבד. פעולה כזו על מערכת של אחרים היא בלתי חוקית.
המטרה: להבין שבדיקת אבטחה חלקית (שדה בודד שהלקוח שולט בו) יוצרת פער בין מה שהאתר "חושב" לבין מה שמערכת ההפעלה בפועל מריצה.
השיעור הבא בקורס: חולשת DVWA LFI - חלק 1 Local File Inclusion

פרקי ההרצאה: סוס טרויאני בהעלאת קבצים לאתר - PHP אבטחה ברמה בינונית - DVWA Medium

  1. 00:00

    התקפה ברמת אבטחה בינונית

  2. 00:38

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

  3. 01:14

    חזרה על קובץ ה-PHP הקטן

  4. 01:48

    דחיית ההעלאה של הקובץ

  5. 02:28

    עקיפת בדיקת הסיומת בפרוקסי

  6. 03:07

    הגדרת פרוקסי בדפדפן

  7. 04:03

    תפיסת בקשת ההעלאה

תמלול ההרצאה: סוס טרויאני בהעלאת קבצים לאתר - PHP אבטחה ברמה בינונית - DVWA Medium

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

  1. 00:02

    שלום לכולם, עכשיו אנחנו רוצים לפרוץ אתר אינטרנט בעזרת סוס טרויאני ב-PHP שיהיה מוגן ברמת מדיום נפתח Firefox, ניכנס למכונה וירטואלית שאנחנו הולכים לפרוץ אותה שזה MetaSplotable 2 ונגדיר אותה, את האתר האינטרנט שמיועד לפריצות DVWA בתוך המכונה הווירטואלית הזאת

  2. 00:24

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

  3. 00:44

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

  4. 00:55

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

  5. 01:26

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

  6. 01:48

    זאת לא תמונה, It was not uploaded, הוא לא העלה אותו כי זה לא תמונה. איך אנחנו נעקוף את ההגנה הזאת? איך נגרום לו להעלות סוס טרויאני כאילו זאת תמונה?

  7. 02:00

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

  8. 02:35

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

  9. 02:49

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

  10. 03:00

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

  11. 03:31

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

  12. 03:47

    עכשיו הפרוקסי מופעל, אנחנו רואים פה שהפרוקסי מופעל, אנחנו עושים browse, בוחרים את הקובץ JPEG שלנו לכאורה, עכשיו ה-HTML פה, ה-JavaScript פה יגיד שהכל תקין אבל כשהוא יצא מהכבל אנחנו נתפוס אותו, נעשה לו אינטרספט, נתפוס אותו בדרך, בואו נראה, נעשה Upload.

  13. 04:08

    הנה הוא נתפס לנו. Request to בקשה ל-IP כזה, לפורט כזה, נתפסה, וזה מה שהדפדפן שלח לשרת. ומה אני רואה פה?

  14. 04:18

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

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

ההרצאה הקודמת: סוס טרויאני בהעלאת קבצים לאתר - PHP - אבטחה ברמה נמוכה - DVWA Low

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

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

  • קורס PHP - הרצאה 1
  • אבטחה עם VM Templates
  • העלאת מספר רב של קבצים במכה אחת לאתר ב-NodeJS
  • קבצים - Files - חלק 1

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

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