רודמאפ לפריצת אתרים למתחילים - הסדר הנכון, בלי בלבול¶
אחת השאלות שאני מקבל הכי הרבה היא "איפה בכלל מתחילים ללמוד פריצת אתרים". אנשים מגיעים אחרי שראו סרטון על XSS פה, שמעו על bug bounty שם, וקוראים המלצות סותרות בכל פורום. אז הנה הרודמאפ המלא, בסדר שבאמת עובד, כי הוא לא מתחיל מהניצול - הוא מתחיל מהבנה.
למה לא מתחילים ישר עם חולשות¶
זו הטעות הכי נפוצה שאני רואה. אנשים רוצים לקפוץ ישר ל"איך פורצים אתר", בלי להבין קודם איך אתר בכלל בנוי. הבעיה היא שאי אפשר לפרוץ משהו שאתם לא מבינים. אם אתם לא יודעים מה זה בקשת HTTP, איך JavaScript רץ בדפדפן, ואיך שרת מדבר עם מסד נתונים, כל חולשה שתלמדו תישאר שינון ריק בלי הבנה אמיתית - ותתקשו מאוד להתמודד עם כל דבר שקצת שונה ממה שראיתם בסרטון.
שלב ראשון - היסודות שאסור לדלג עליהם¶
לפני חולשות בכלל, כדאי שיהיה לכם בסיס בכמה תחומים:
- תכנות בסיסי. לא צריך להיות מתכנת מקצועי, אבל הבנה של Python או שפה דומה עוזרת המון להבין לוגיקה ולכתוב סקריפטים קטנים לתרגול.
- רשתות. מושגי בסיס - מה זה כתובת IP, פורט, ואיך מידע בכלל עובר בין מחשב לשרת.
- פרוטוקול HTTP. הבסיס לגמרי של כל תקיפת ווב. בקשות, תשובות, כותרות, קודי סטטוס - זה השפה שבה כל חולשת ווב "מדברת".
- מסדי נתונים. הבנה בסיסית של SQL, כי הרבה מהחולשות המרכזיות קשורות בדיוק לאיך אתרים מדברים עם מסד הנתונים שלהם.
שלב שני - להבין איך בונים אתר¶
זה השלב שהכי הרבה קורסים מדלגים עליו, ולדעתי זו הטעות הגדולה ביותר בהוראת אבטחת אתרים. כדי לדעת איפה אתר נשבר, אתם צריכים להבין קודם איך הוא בנוי - HTML למבנה, CSS לעיצוב, JavaScript להתנהגות בצד הלקוח, ושפת שרת כמו PHP לצד השרת שמדבר עם מסד הנתונים. ברגע שבניתם אתר קטן משלכם עם התחברות, טפסים, והעלאת קבצים, כל חולשה שתלמדו אחר כך תרגיש הגיונית, כי תבינו בדיוק איזה קוד גרם לה.
שלב שלישי - סריקה ואיסוף מידע¶
לפני שתוקפים חולשה ספציפית, בודקי חדירות אמיתיים תמיד עוברים שלב של איסוף מידע - סריקות פסיביות ואקטיביות שמטרתן להבין אילו טכנולוגיות האתר משתמש בהן, אילו גרסאות, ואילו נקודות כניסה בכלל קיימות. השלב הזה נראה פחות "מרגש" מניצול חולשה, אבל הוא בדיוק מה שמייחד בדיקה מקצועית מניסיון אקראי.
שלב רביעי - חולשות צד לקוח¶
כאן מתחילים באמת לתקוף. חולשות כמו IDOR, XSS, ו-CSRF נחשבות נקודת כניסה טובה כי הן נגישות יחסית להבין ולנצל, אבל עדיין מלמדות חשיבה אמיתית של תוקף. SQL Injection, שגם הוא נכנס לקטגוריה הזאת בהיבט מסוים, מוסיף שכבה נוספת של עומק כי הוא דורש הבנה טובה יותר של מסדי נתונים.
שלב חמישי - חולשות צד שרת¶
השלב המתקדם יותר. Command Injection, Path Traversal, Insecure File Upload, SSRF, ו-Deserialization - כל אלה דורשים הבנה עמוקה יותר של איך שרתים עובדים מבפנים, ומאפשרים לתוקף להשפיע ישירות על השרת עצמו, לא רק על המידע שהוא מציג.
שלב שישי - הגנות ואיך לחשוב כמו מגן¶
ברגע שאתם יודעים לתקוף, השלב החשוב לא פחות הוא ללמוד לבנות הגנות אמיתיות - WAF, מנגנוני הגנה מפני CSRF ו-XSS, וחשיבה כללית על עיצוב מאובטח. זה השלב שהופך אתכם ממישהו שיודע לנצל חולשה למישהו שבאמת מבין אבטחה.
שלב שביעי - תרגול חופשי ובדיקת חדירות מול bug bounty¶
מכאן, הדרך היא תרגול על פלטפורמות חוקיות, ואז החלטה לאן להתקדם - עולם בדיקת החדירות המקצועי, או עולם ה-bug bounty העצמאי. שני המסלולים בונים על אותו בסיס בדיוק.
כמה זמן זה באמת לוקח¶
בכנות - זה תלוי כמה זמן אתם משקיעים, אבל תמונה ריאלית היא בערך כך - כמה חודשים כדי לבנות בסיס טוב ולהבין את החולשות המרכזיות, ועוד כמה חודשים של תרגול עד שאתם מרגישים בטוחים לגשת לתוכנית bug bounty אמיתית או למשרה ראשונה בתחום. זה לא ספרינט, זה מסלול מסודר.
איפה עושים את כל זה במקום אחד¶
בדיוק בשביל זה בנינו את קורס פריצת אתרים - הוא עוקב אחרי הרודמאפ הזה בדיוק, משלב היסודות ובניית אתר, דרך כל חולשה מרכזית, ועד להגנות ולצעד הבא בקריירה. הכל חינם, בעברית, עם תרגול מעשי בכל שלב.
לסיכום¶
הדרך ללמוד פריצת אתרים היא לא לקפוץ ישר לחולשה הכי מגניבה שראיתם בסרטון. היא לבנות בסיס אמיתי, שלב אחר שלב, כדי שכל חולשה שתלמדו תישאר איתכם, לא תישכח שבוע אחרי שראיתם אותה.
הצטרפו לקהילה בדיסקורד ותתחילו את המסלול הזה יחד עם אנשים שנמצאים בדיוק באותו שלב.