הנדסה לאחור ובינאריקשה

פריצת החוצץ

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

⚠️ כל ה-headers מכילים רמזים קריטיים. פתחו DevTools לפני כל בקשה.

המשימה
נתחו את מבנה הזיכרון, מצאו את גודל החוצץ הפגיע, והשתמשו ב-Buffer Overflow כדי להפנות את הביצוע לפונקציה מסווגת שמדפיסה את הדגל.
00:00 ניסיונות:0
קשה

לפני שמתחילים

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

עזרה בהכנה
  1. זהה איזה סוג נתונים מוצג בכל ראיה.
  2. עבוד על כל ראיה בנפרד ושמור את הממצאים.
  3. בדוק את פורמט התשובה לפני הגשה.

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

buffer-breach-terminal
> Military Relay Node 7 | Remote Debug Console v3.2
> Connected to relay_daemon process (PID 1337)
> WARNING: This process handles encrypted comms. Proceed with caution.
> Start by checking the system status. Look for debug info in headers.
> Tip: Open DevTools (F12 → Network tab) BEFORE every request.

מפת השלבים

  1. שלב 1: סיור

    בדקו את סטטוס המערכת. ה-headers חושפים endpoints נסתרים (Base64).

  2. שלב 2: ניתוח זיכרון

    מפו את המחסנית. מצאו את גודל החוצץ, כתובת החזרה, והפונקציה המסווגת. ה-header מכיל מידע על הגנות (Hex).

  3. שלב 3: ניצול

    שלחו payload עם padding נכון + כתובת חזרה לפונקציה המסווגת. הדגל מפוצל: body + header.

הגשת הדגל

ניסיונות: 0

יש להגיש את הדגל המלא בפורמט flag{...}, כולל הסוגריים.

טיפים לפתרון

  • פתחו DevTools (F12) → Network tab לפני כל בקשה
  • Base64 decode: פענחו את ה-header של הסטטוס כדי לגלות נתיבים נסתרים
  • Hex decode: ה-header של הזיכרון מכיל מידע על הגנות המחסנית
  • Buffer Overflow: מלאו את החוצץ (כמה בתים?) ואז שכתבו את כתובת החזרה
  • כתובת היעד: חפשו פונקציה שמעולם לא נקראת בביצוע רגיל
  • הדגל מפוצל: חלק בגוף התגובה, חלק ב-header (Base64)

אתגרים נוספים

לכל האתגרים ←