לדלג לתוכן

מ-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 והמערכת מחזירה רק status code (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. תעדו את כל השרשרת
# Script skeleton
import requests
from concurrent.futures import ThreadPoolExecutor

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

def check_internal(url):
    """Check a URL via the SSRF"""
    # TODO: complete
    pass

def scan_network():
    """Scan the internal network"""
    # TODO: complete
    pass

def exploit_service(host, port, service_type):
    """Exploit an internal service"""
    # TODO: complete
    pass

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

תיאור

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

משימות

  1. נתחו את גרסת ה-Apache - חפשו CVE ידועים
  2. שחזרו את קוד המקור מספריית ה-Git:
    # Use git-dumper
    git-dumper http://target/.git/ ./source
    
  3. נתחו את קוד המקור:
  4. חפשו חולשות (SQLi, command injection, וכו')
  5. חפשו secrets ו-credentials
  6. חפשו נקודות קצה נסתרות
  7. השתמשו בממצאים לexploit מלא
  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 - bypass Rate Limiting

תיאור

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

משימות

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

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

משימות

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

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

פורמט מומלץ

# [Descriptive title]

## Severity
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

## Summary
[2-3 sentences]

## Technical details
### Vulnerability 1: [name]
### Vulnerability 2: [name]
### Vulnerability 3: [name]

## Exploit chain
[step by step]

## PoC
[script or steps]

## Impact
[business impact]

## Fix
[recommendations]