c1337Shell

נכתב על ידי Narcissus

c1337Shell

הקישור מוביל לאתר עם כמה תיבות לקלט ופלט:

site

ניסינו פקודות קלאסיות כמו ls ו-cd, אבל כל פעם קיבלנו שגיאה: error: bad characters found.

הבנו שכנראה אסור להשתמש באותיות אז ניסינו תווי-מטא. * לא החזיר כלום, אבל /* החזיר /app /bin /boot /dev /etc /home /lib /lib64 /media /mnt /opt /proc /root /run /sbin /srv /sys /tmp /usr /var. כלומר אנחנו בכיוון.

באזור של הפרטים בחלק העליון של האתר כתוב בין היתר /app/, ננסה לראות אם יש שם משהו מעניין על ידי הפקודה /???/*. קיבלנו הרבה תוצאות, החשובה מבינהם: /app/f.

בדיקה בתוך התיקייה הזאת: /???/?/* נותנת /app/f/fl.

עוד כמה רמות פנימה: /???/?/*/*/* ומקבלים /app/f/fl/flag/flag_is_here /app/f/fl/flag/flag_is_not_here.

אוקיי יש פה פיצול שאנחנו צריכים להתמודד איתו: /???/?/*/*/????_??_????/* וקיבלנו /app/f/fl/flag/flag_is_here/flag.txt מעולה! עכשיו צריך למצוא ריך לקרוא את הקובץ.

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

אז אם נכניס /???/??? /???/?/*/*/????_??_????/* הפלט שנקבל הוא:

אפשר להריץ פקודות בעזרת echo על ידי עטיפה שלו עם backticks.

כפי שאנחנו רואים /bin/cat זו התוכנה הראשונה ברשימה, ולכן היא תרוץ, ותקבל את כל התוכנות האחרות ואת flag.txt כקלט.

אז עטפנו את הפקודה הזאת ב-backticks קיבלנו המון זבל אבל בסוף הופיע גם הדגל: BSidesTLV{1_l1k3_wildcards_&_r3g3x_but_h8_th3_cr34t0r}

(הפקודה הקצרה ביותר שאני מצאתי היא /*/??? /*/?/*/*/*_??_????/*)

Success