לדלג לתוכן

מ-Low ל-Critical - תרגיל

תרגיל 1 - הסלמת Self-XSS

תיאור

ביישום התרגול קיימות שתי חולשות:
1. Self-XSS בשדה "הערה פרטית" בפרופיל (רק המשתמש עצמו רואה)
2. Login CSRF - אפשר לחבר קורבן לחשבון אחר ללא הגנת CSRF

משימות

  1. אתרו את ה-Self-XSS - הזריקו payload לשדה ההערה הפרטית
  2. אתרו את ה-Login CSRF - בנו טופס HTML שמחבר קורבן לחשבון התוקף
  3. שרשרו את שתי החולשות:
  4. צרו חשבון תוקף עם Self-XSS מוזרק
  5. בנו דף שמבצע Login CSRF לחשבון התוקף
  6. ה-XSS יגנוב את ה-cookies של הקורבן מהחשבון האמיתי שלו
  7. כתבו דוח מקצועי שמציג את השרשרת כ-High/Critical

שאלות

  • מהו ציון ה-CVSS של Self-XSS לבדו?
  • מהו ציון ה-CVSS של Login CSRF לבדו?
  • מהו ציון ה-CVSS של השרשרת המלאה?
  • מה התיקון הפשוט ביותר ששובר את השרשרת?

תרגיל 2 - הסלמת Blind SSRF

תיאור

ביישום קיימת חולשת Blind SSRF בפיצ'ר "בדיקת זמינות שרת". ניתן לשלוח URL והמערכת מחזירה רק קוד סטטוס (200, 404, 500 וכו') - לא את תוכן התגובה.

משימות

  1. אשרו את ה-Blind SSRF - שלחו URL ובדקו שיש גישה פנימית
  2. סרקו את הרשת הפנימית:
  3. מצאו שירותים פנימיים על ידי סריקת טווח 10.0.0.0/24
  4. בדקו פורטים נפוצים: 80, 8080, 6379, 9200, 27017, 5432
  5. זהו את סוג השירותים שנמצאו (Redis, Elasticsearch, וכו')
  6. נסו לנצל שירות פנימי פגיע:
  7. אם נמצא Redis - נסו Gopher protocol
  8. אם נמצא Elasticsearch - נסו לקרוא מידע
  9. תעדו את כל השרשרת
# שלד לסקריפט
import requests
from concurrent.futures import ThreadPoolExecutor

SSRF_ENDPOINT = "http://target:8080/api/check-url"

def check_internal(url):
    """בדיקת URL דרך ה-SSRF"""
    # TODO: השלימו
    pass

def scan_network():
    """סריקת הרשת הפנימית"""
    # TODO: השלימו
    pass

def exploit_service(host, port, service_type):
    """ניצול שירות פנימי"""
    # TODO: השלימו
    pass

תרגיל 3 - הסלמת Information Disclosure

תיאור

באתר היעד נמצאו הממצאים הבאים:
1. חשיפת גרסת שרת בכותרות HTTP: Server: Apache/2.4.49
2. חשיפת קבצי .git - ספריית Git נגישה
3. חשיפת קובץ .env עם credentials חלקיים

משימות

  1. נתחו את גרסת ה-Apache - חפשו CVE ידועים
  2. שחזרו את קוד המקור מספריית ה-Git:
    # השתמשו ב-git-dumper
    git-dumper http://target/.git/ ./source
    
  3. נתחו את קוד המקור:
  4. חפשו חולשות (SQLi, command injection, וכו')
  5. חפשו secrets ו-credentials
  6. חפשו נקודות קצה נסתרות
  7. השתמשו בממצאים לניצול מלא
  8. כתבו דוח שמציג את השרשרת:
  9. ממצא ראשוני: Information Disclosure (Low)
  10. תוצאה סופית: [מה שהצלחתם להשיג]

תרגיל 4 - הסלמת Open Redirect

תיאור

באתר היעד יש:
1. Open Redirect בנקודת הקצה /go?url=
2. מנגנון OAuth להתחברות עם Google
3. האתר משתמש ב-redirect_uri שמקבל subdirectories

משימות

  1. אשרו את ה-Open Redirect
  2. נתחו את זרימת ה-OAuth:
  3. מהו ה-client_id?
  4. מהו ה-redirect_uri?
  5. מהו ה-response_type?
  6. נסו להחליף את ה-redirect_uri עם ה-Open Redirect
  7. הקימו שרת שמקבל את הטוקן שנגנב
  8. הדגימו Account Takeover מלא

שאלות נוספות

  • מה ההבדל בין response_type=code ל-response_type=token בהקשר של התקיפה?
  • האם התקיפה עובדת גם עם PKCE? הסבירו.
  • מה התיקון הנכון לחולשה הזו?

תרגיל 5 - עקיפת Rate Limiting

תיאור

דף ההתחברות של היעד מגביל ל-5 ניסיונות התחברות לדקה. אחרי 5 ניסיונות, ה-IP נחסם ל-60 שניות.

משימות

  1. אשרו את מנגנון ה-Rate Limiting - בצעו 6 ניסיונות ובדקו את התגובה
  2. נסו לעקוף את המנגנון בשיטות הבאות:
  3. שינוי כותרות: X-Forwarded-For, X-Real-IP, X-Originating-IP
  4. שינוי רישיות באימייל
  5. הוספת רווחים או תווים מיוחדים לשם המשתמש
  6. שימוש בנקודת קצה חלופית (API vs Web)
  7. שינוי Content-Type
  8. אם הצלחתם לעקוף - כתבו סקריפט brute force:
    # שלד
    def bypass_rate_limit(username, password_list):
        # TODO: השלימו
        pass
    
  9. חשבו את ציון ה-CVSS:
  10. של עקיפת ה-Rate Limiting לבדה
  11. של השרשרת: עקיפה + Brute Force + Account Takeover

תרגיל 6 - דוח מקצועי

משימות

כתבו דוח Bug Bounty מקצועי עבור אחד מהתרגילים הקודמים. הדוח צריך לכלול:

  1. כותרת שמתארת את האימפקט הסופי (לא את החולשה הבודדת)
  2. ציון CVSS מחושב עם הסבר
  3. תיאור טכני של כל חולשה בנפרד
  4. תיאור השרשרת עם תרשים זרימה
  5. PoC מלא - סקריפט או שלבים מפורטים
  6. אימפקט עסקי
  7. תיקון מומלץ לכל חולשה

פורמט מומלץ

# [כותרת מתארת]

## חומרה
CVSS 3.1: X.X (Level)
Vector: CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:H/I:H/A:N

## תקציר
[2-3 משפטים]

## פירוט טכני
### חולשה 1: [שם]
### חולשה 2: [שם]
### חולשה 3: [שם]

## שרשרת הניצול
[שלב אחר שלב]

## PoC
[סקריפט או שלבים]

## אימפקט
[אימפקט עסקי]

## תיקון
[המלצות]