I'm Pickle Rick!

נכתב על ידי Narcissus

I'm Pickle Rick!

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

site

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

 

הרקע של האתר זה סרטון:

 

החלק החשוב פה זה התכונה onended.

מה שקורה באופן כללי באתר זה: העמוד נטען ומנגן את הסרטון ברקע. כשהסרטון מסתיים מתבצעת קריאה ל-pickleRick();. הפונקציה הזאת קוראת ל-anatomyParkMembers("morty");, שהוא בתורו שומר את התשובה מ-/getMembers.html?visitor=morty אל משהו שמקרא localStorage. לאחר מכן, כל 10 שניות מתבצעת קריאה לפונקציה statusAnatomyParkMembers(); אלא אם כן ה-localStorage אופס.

נסתכל בעמודים /getMembers.html ו-/statusMembers.html שניגשים אליהם מהפונקציות anatomyParkMembers() ו-statusAnatomyParkMembers בהתאמה.

ניקח את התוצאה מ-/getMembers.html?visitor=morty: eNrTSCkw5ApWL8sszizJLypW5yow4tLIKTDmCsvNLyqp5Cow4UosDlZPzS3Iya9MTQUpMAUpMANqCipNSs0DCphzJQarO%2BblZaYCORYgTkB%2BXnJGPpBnCeIF5aenFgE5hgZghTk5YF2GhkCT9QDJ4iXE ונשלח אל /statusMembers.html?data= ונקבל: {"visitors": ["morty"], "employees": ["Ruben", "Annie", "Poncho", "Roger", "Allen"]}.

נראה ש-/getMembers.html מוסיף את תוכן המשתנה visitor למערך json, מבצע לזה דחיסה כלשהי, ומחזיר את התוצאה. /statusMembers.html?data= לוקח את המידע הדחוס ופורס אותו ומחזיר את התוצאה.

רואים בהדרים של הפקטות שהדחיסה מתבצעת בעמצאות gzip, deflate. רצינו לראות מה יקרה אם נדחוס פקודה ונשלח ל-/statusMembers.html?data=. קצת קוד שניסינו:

 

יש! קיבלנו בתשובה:

 

עכשיו לקרוא את flag.txt:

 

והתשובה:

 

Success