רק 95 אנשים הצליחו לנצח את חידת בסמ"ח. עכשיו הפתרון נחשף

לאחר שלא נתנה לכם מנוחה לאורך שמונת ימי החג שהיא באוויר, סוף-סוף תדעו את הפתרון לחידת בסמ"ח 2025. בין אם אתם מהאחוז הבודד שצלח את האתגר, עדיין שוברים את הראש, או סתם סקרנים לראות אם זה מה שיצא לכם ב-AI - כך מביסים את תעלומת הסייבר, שלב אחר שלב

22.12.25
ליה אפשטין, מערכת את"צ

בתחילת חג החנוכה, פרסמנו כאן את החידה המיוחדת שיצרו בבסמ"ח. כעת, אחרי שמונה ימים ונרות, יותר מ-60,000 כניסות ורק 95 אנשים שצלחו את האתגר - אנחנו חושפים בפניכם את הפתרון.

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

The Big Apple is where I reside - 'התפוח הגדול' הוא כינוי מוכר לעיר ניו יורק, כלומר עלינו להתחיל לחפש שם. למשפט השני, נחזור בהמשך.

לאחר מכן, מגיעות השורות: Beware of the buildings along the crossroads, They may help you decrypt the code. כלומר, אנחנו מחפשים אחר בניינים בניו יורק, שיעזרו לנו לפצח את הקוד - מה שנראה כמו ג'יבריש בתחתית העמוד, הוא בעצם צופן סודי שדורש מפתח ייחודי.

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

משמאל למעלה, צורות ארבעת הבניינים

אם צורות הבניינים נראות לכם מוכרות - עליתם על השלב הבא. נזכר במשפט השני עליו דילגנו מקודם: In the Roman empire, I take pride, ונבין כי המבנים מזכירים צורות של ספרות רומיות, ומחיבור שלהם יחד לפי הסדר, נקבל את המספר - XCII שבתרגום רומאי חופשי לשיטת הספירה העדכנית של ימינו, נקבל 92. 

אך מה זה 92? ובכן, כשמדברים על דרכי הצפנה, במידה וניתנים מספרים, אחת מדרכי הקידוד הנפוצות היא מסוג basexx - שיטה שהופכת מידע בינארי, לסדרת אותיות. לפי שני המספר שיבואו אחרי base, יקבע הצופן הספציפי. לדוגמה, base64 לוקח 6 תווים בכל פעם, וממיר אותם ל-64 אותיות ייחודיות. אך במקרה שלנו - יש לנו עסק עם base92.

בשימוש במפצח קודים אונליין, בהגדר שמדובר בצופן מסוג base92, נוכל לפענח את המידע המוסתר, ולקבל את כתובת האתר: goramli.bsmch.idf.il אך אם נכנס אליו, נגלה רק כיתוב בערבית.

שוב נשתמש במתרגם, אך הפעם במילון ערבית מדוברת, ונגלה כי לא מדובר במשפט רגיל, אלא בפתגם המקביל לאמירה: 'אל תסתכל בקנקן, אלא במה שיש בתוכו'.

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

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

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

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

הפלא ופלא - נראה שלא רק שיש מידע אחריו, אלא שהוא מתחיל ב-MZ: אותיות המעידות על תחילתו של קובץ הרצה, בשונה מקובץ PNG בתמונה שגרתית. מפה, נוכל פשוט להעתיק את הביטים לקובץ חדש בHxD ולשמור אותו כקובץ הרצה.

נריץ את הקובץ! אך תקלה נוספת עומדת בדרכינו, כשההודעה הבאה קופצת על הצג: the program cannot run without C:/Message/Secret.txt אך משהו מרגיש לא אמיתי, אפילו מזויף בשגיאה הזו. לכן, ננסה ליצור את הקובץ המבוקש, ונריץ שוב.

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

חידה 1:

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

חידה 2:

כאן, מתואר אלמנט שהופך שמות למספרים, ומשמש כספר הטלפונים של האינטרנט. רמז נוסף שמופיע הוא צירוף המילים "world wide" - שמצביע על כך שזהו פרוטוקול DNS, שתפקידו תרגום כתובות IP לשמות דומיין. ננסה, נצליח, ונעבור לחידה האחרונה.

חידה 3:

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

כעת, יתגלה מולנו המסר הבא:

 

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

כלומר, ניתן להסיק כי על הקובץ הסודי שנדרש כדי להפעיל את הקובץ ההתחלתי, אולי מתחבא לנו ADS. מבדיקה קצרה, יעלה כי לא מסתתר לו רק אחד, אלא שניים. הראשון נקרא ENC_URL והשני DEC_ALG. נעיין בהם.

לפי השמות, נוכל להסיק שאחד מה-ADS מחזיק כתובת URL, והשני, את המפתח להצפנה שלה - שכפי שכתוב בתוכו, משתמש בשיטת הקידוד Rot47.

בחזרה למפצח הקודים אונליין, נעתיק את הכתובת המוצפנת, נפענח אותה לפי Rot47, ונקבל את הכתובת: whitelion.bsmch.idf.il נקליק, אך למראה עינינו תחשף דמות לא צפויה - רובוט.

 

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

לכן, נכנס ל-robots.txt של האתר, ובפנינו יחשף המסך הבא, בו שתי נקודות עיקריות. האחת, היא שמצאנו דגל, ושמו narniabale, והשניה, היא שלאתר דף נוסף, בשם login.php

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

אך אתרים שלא מאובטחים היטב, עלולים להפגע ממתקפה הנקראת SQL Injection, או בקיצור SQLI, המנצלת את הפשטות שבמערכת. אנחנו, נשתמש בדיוק באותו עקרון. בתיבת שם המשתמש, נציב למחשב תנאי, שבהכרח תמיד יהיה נכון, כמו למשל 1=1. אך לפני זה, נשים את הסימן * שיסיים את הפקודה של חיפוש המידע בטבלה.

לכן, מעתה, כל דבר שנכניס לתיבת שם המשתמש, יתן לנו סיסמא, וגישה לאתר, מכיוון שהתנאי 1=1 תמיד נכון. ובכך, איך אומרים - שברנו את המערכת.

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

כשנכנס לשלוש המשימות, נגלה כי כולן פותחות דף הנקרא task.php שמועבר אליו פרמטר של id. במשימה הראשונה id=1, בשניה 2, ובשלישית 3. לכן, על פי ההיגיון, ננסה להמשיך את הסדרה, עם id=4, וכך, נגיע למשימה הנעולה.

דפי המשימות עם פרמטרים id=1,2,3


המשימה הנעולה לאחר הצבת פרמטר id=4

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

כמו בכל אתר אינטרנט, גם כאן, קבצי ה-cookies מכילים וזוכרים את המידע שלנו, כמו למשל הרשאות גישה. אותם 'עוגיות', הם שיעזרו לנו להפוך למשתמש בכיר יותר. נלחץ שוב על מקש הF12 המהימן, ונפתח את קבצי ה-cookies של האתר. שם, נגלה ש'תפקיד' שלנו הוא באמת רק user, ולכן, נחליף אותו במילה admin.

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

כל שנותר, הוא לחבר את כל הדגלים, ליצירת הכתובת הסופית: narniabale.bsmch.idf.il ואיתה, כל הכבוד - פתרתם את חידת בסמ"ח 2025.

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