תכנות: בדיקת אבטחת מידע במשחקי פלאש [מתחיל]

פורום זה יאגד בתוכו מאמרים ומדריכים בנושאים השונים שיכתבו על ידי חברי הקהילה. המאמרים יקבלו תיוג מילות מפתח, דירוג רמת קושי ודירוג הקהילה. תוכלו למצוא פה מדריך פלאש, ActionScript, MXML, מאמר בנושא תלת מימד, עיצוב, צד שרת וגם Mobile.

Re: תכנות: בדיקת אבטחת מידע במשחקי פלאש [מתחיל]

הודעהעל ידי Zohar Babin ב 11 מאי 2010, 16:24

יכול להיות מגניב מצדך, אני אשמח לנסות לפרוץ גם :)
קודם שחרר רק את ה swf וננסה כולנו לפרוץ אותו, כשנצליח לפרוץ או כשנוותר כולנו - שחרר את הקוד.
Zohar Babin | Kaltura Developer Relations and Community | skype:z.babin | http://www.zoharbabin.com | http://www.kaltura.org
סמל אישי של המשתמש
Zohar Babin
Site Admin
 
הודעות: 376
הצטרף: 10 מרץ 2010, 00:24
מיקום: Israel

Re: תכנות: בדיקת אבטחת מידע במשחקי פלאש [מתחיל]

הודעהעל ידי elad ב 11 מאי 2010, 16:31

מהי המטרה?
אם המטרה היא לשנות את הניקוד של השחקן במשחק לשחקן אחד, ללא שום תקשורת לשרת, אז אפשר לעבור שלבים או כל דבר אחר שמתקבל כתוצאה מניקוד גבוה, ללא שינוי הניקוד בזיכרון
אם המטרה היא לשלוח את הניקוד לשרת, אז גם אפשר לעשות את זה בצורה אחרת, ללא שינוי הניקוד בזיכרון
elad
 
הודעות: 242
הצטרף: 21 מרץ 2010, 12:43
מיקום: נס-ציונה

Re: תכנות: בדיקת אבטחת מידע במשחקי פלאש [מתחיל]

הודעהעל ידי IdoRosenthal ב 11 מאי 2010, 16:50

אתה יודע מה אומרים: A chain is only as strong as its weakest link

מה הטעם לעשות הצפנות, בידקות זמנים, בדיקות הצפה, הזרקת קוד ועוד שטויות אם הפורץ שלך יכול פשוט לשנות את הערכים אצלו לוקלית.
בתור מפתח אתה צריך לדאוג שהאפליקציה שלך תהיה מאובטחת ככל שאפשר בכל שלב.
סמל אישי של המשתמש
IdoRosenthal
 
הודעות: 180
הצטרף: 16 מרץ 2010, 20:42
מיקום: Tel Aviv, Israel

Re: תכנות: בדיקת אבטחת מידע במשחקי פלאש [מתחיל]

הודעהעל ידי elad ב 11 מאי 2010, 17:01

כן... חשוב לאבטח בכל הרבדים
elad
 
הודעות: 242
הצטרף: 21 מרץ 2010, 12:43
מיקום: נס-ציונה

Re: תכנות: בדיקת אבטחת מידע במשחקי פלאש [מתחיל]

הודעהעל ידי Zohar Babin ב 11 מאי 2010, 17:04

לכל בעיה יש כמה פתרונות.
אם תגן חזק על הצינור אבל לא תשמור על מה נכנס לתוכו, בסוף יהיו לך חרקים במים. (איזה משפט ערסי יצא פה :שחורלבן: ).
רוצה אומר, אם יש לך הגנה מאוד חזקה שאי אפשר לפרוץ בשליחת הניקוד, אבל לא השקעת בהגנה על תאי הזכרון, אז יהיה מאוד קל פשוט לשנות תאי זכרון ולתת לאפליקציה לשלוח ניקוד גבוה.
אם המצב הפוך, אז שוב תהיה בבעיה כי יהיה קל לייצר קוד נפרד ששולח נתונים.
אבל אם דאגת לייצר קוד שגם משתמש בצינור מאובטח (לדוגמא SSL) וגם דואג להצפין את הנתונים בתאים תו"כ ריצה ע"י משתנים רנדומליים שמוגרלים בתוך האפליקציה.. הפריצה כבר תהיה הרבה יותר מורכבת. (אם כי עדיין לא לחלוטין, כי לכל דבר יש פטיש מספיק גדול ;) ).
Zohar Babin | Kaltura Developer Relations and Community | skype:z.babin | http://www.zoharbabin.com | http://www.kaltura.org
סמל אישי של המשתמש
Zohar Babin
Site Admin
 
הודעות: 376
הצטרף: 10 מרץ 2010, 00:24
מיקום: Israel

Re: תכנות: בדיקת אבטחת מידע במשחקי פלאש [מתחיל]

הודעהעל ידי elad ב 11 מאי 2010, 18:20

דוגמא למשחקי פלאש מאובטחים:
http://www.888games.com/

יכולות להיות בהם בעיות רק במימוש הקוד,
מבחינת סוג המשחקים, כולם כאלו שהשחקן לא מבצע פעולות מסויימות כדי לשפר את מצבו במשחק, אלא מצב השחקן (ניצחון/הפסד) נקבע בשרת.
נערך לאחרונה על ידי elad בתאריך 12 מאי 2010, 17:14, נערך פעם אחת בסך הכל.
elad
 
הודעות: 242
הצטרף: 21 מרץ 2010, 12:43
מיקום: נס-ציונה

Re: תכנות: בדיקת אבטחת מידע במשחקי פלאש [מתחיל]

הודעהעל ידי IdoRosenthal ב 11 מאי 2010, 18:30

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

ולמרות זאת עבדתי עם לקוחות גדולים כמו בנקים ואני יכול לומר לך שהם לא מוכנים למצב שמישהו אפילו יפרוץ אפליקציה שלהם "רק" בצד לקוח.
שאפילו שלא מדובר בפרסים גדולים ושאין בעיה לדעת שמישהו פרץ ולא לתת לו פרס. הם לא מעוניינים בפרסום השלילי שאיזה ילד "פרץ" לבנק את האפליקציה (אפילו אם זה רק בצד לקוח ואין לזה שום משמעות).

בכל מקרה כתבתי ככה מהר דוגמה והוספתי מאמר:
articles/programing-mediocre-memory-encrypting-hack-t356.html

אני אשמח אם תעבור עליו, תן דעה ואפילו אם תנסה לשנות את המשתנה המאובטח בזיכרון ;)
סמל אישי של המשתמש
IdoRosenthal
 
הודעות: 180
הצטרף: 16 מרץ 2010, 20:42
מיקום: Tel Aviv, Israel

Re: תכנות: בדיקת אבטחת מידע במשחקי פלאש [מתחיל]

הודעהעל ידי elad ב 11 מאי 2010, 19:11

מאמר מעניין, לא השתמשתי בתוכנה אבל אני מכיר את הרעיון, שלחתי בהודעה פרטית את מה שהכנתי שמאפשר לשנות את הערך בזיכרון
elad
 
הודעות: 242
הצטרף: 21 מרץ 2010, 12:43
מיקום: נס-ציונה

Re: תכנות: בדיקת אבטחת מידע במשחקי פלאש [מתחיל]

הודעהעל ידי elad ב 15 מאי 2010, 17:05

באתר http://www.king.com אפשר לשחק במשחקי כישורים על כסף אמיתי,

בכל המשחקים קיים מנגנון הגנה זהה:
1. כשהמשחק מתחיל, הגדרות המשחק נשלחות מהשרת
2. כשהמשחק מסתיים, תוצאת המשחק ביחד עם כל הפעולות שהגולש ביצע נשלחות לשרת
3. השרת מבצע בדיקה על סמך כל הנתונים שהתקבלו, האם לפי כל פעולות הגולש, התוצאה נכונה

מאחר ומשחק הפלאש שולח את הנתונים לשרת בסוף המשחק, אפשר לשנות את הנתונים לנתונים אחרים (לדוגמא תוצאה גבוהה יותר) אך בתנאי שכל הנתונים יתאימו וידמו משחק אמיתי של גולש.

לדוגמא:

תמונה
elad
 
הודעות: 242
הצטרף: 21 מרץ 2010, 12:43
מיקום: נס-ציונה

Re: תכנות: בדיקת אבטחת מידע במשחקי פלאש [מתחיל]

הודעהעל ידי elad ב 29 מאי 2010, 04:57

בדיקת אבטחת מידע למשחק בו הלוגיקה מבוצעת בשרת: http://sms2800.co.il/smsgame
במשחק זה אפשר לזכות בכל יום ב-2,800 ש"ח וגם ב-IPhones.

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

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

אם אי אפשר לדעת את התשובה לפני שעונים על שאלה, איך בכל זאת אפשר להגיע לאיזו תוצאה שרוצים?
משחק הפלאש מבקש מהשרת בכל פעם שאלה חדשה, ע"י ביצוע קריאות דומות אפשר לקבל בזמן קצר את כל השאלות (283).

אחרי שיש את כל השאלות, איך אפשר לדעת לאן צריך לגרור כל שאלה?
המשחק שולח לשרת שאלה מסויימת עם יעד הגרירה שהשחקן ביצע ומקבל מהשרת: "נכון" או "לא נכון",
אפשר לדעת לאן צריך לגרור כל שאלה ע"י ביצוע קריאות דומות עם כל הפעולות האפשריות עד שמתקבלת מהשרת הודעה שהפעולה שבוצעה היא נכונה.

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

קישור לקבצי הדוגמא שמכילים שתי אפליקציות, הראשונה מחזירה את כל השאלות והתשובות הנכונות והשניה מבצעת אוטומציה מלאה למשחק ומאפשרת להגיע לכל תוצאה:
http://www.2shared.com/file/wLpxTSyl/Sms2800.html
elad
 
הודעות: 242
הצטרף: 21 מרץ 2010, 12:43
מיקום: נס-ציונה

Re: תכנות: בדיקת אבטחת מידע במשחקי פלאש [מתחיל]

הודעהעל ידי פלג ב 29 מאי 2010, 11:51

אי אפשר להוריד את הקבצים אתה יכול להעלות למקום אחר?
פלג
 
הודעות: 546
הצטרף: 13 מרץ 2010, 16:07

Re: תכנות: בדיקת אבטחת מידע במשחקי פלאש [מתחיל]

הודעהעל ידי elad ב 29 מאי 2010, 12:03

העליתי ל-sendspace:
http://www.sendspace.com/file/4o1ka1
elad
 
הודעות: 242
הצטרף: 21 מרץ 2010, 12:43
מיקום: נס-ציונה

Re: תכנות: בדיקת אבטחת מידע במשחקי פלאש [מתחיל]

הודעהעל ידי פלג ב 29 מאי 2010, 17:13

אלעד עבודה יפה :חיוך:
פלג
 
הודעות: 546
הצטרף: 13 מרץ 2010, 16:07

Re: תכנות: בדיקת אבטחת מידע במשחקי פלאש [מתחיל]

הודעהעל ידי elad ב 02 יוני 2010, 19:54

תודה, במשחק הזה (sms2800) מיושמת שכבת הגנה נוספת, שליחת פעולות השחקן לכתובת:
http://213.8.137.51/Erate/eventreport.asp

ההערכה שלי שמדובר במוצר הזה:
http://www.metatron.co.il/articles.php?ArticleID=5

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

הבדיקה הבאה תהיה למשחק שמשתמש במוצר זה, שעל פי תיאורו:
"המערכת מתלבשת גם על צד השרת וגם על צד המשתמש של הקמפיין ובעזרתה כמעט בלתי אפשרי לרמות בקמפיינים וגם אם מצליחים המערכת מנטרת את הפעולה ומסמנת את המשתמש כרמאי."
elad
 
הודעות: 242
הצטרף: 21 מרץ 2010, 12:43
מיקום: נס-ציונה

Re: תכנות: בדיקת אבטחת מידע במשחקי פלאש [מתחיל]

הודעהעל ידי פלג ב 02 יוני 2010, 23:27

נשמע מעניין
השאלה רק עד כמה זה חזק בשטח
התחלת לבדוק את זה :משקפישמש:
פלג
 
הודעות: 546
הצטרף: 13 מרץ 2010, 16:07

Re: תכנות: בדיקת אבטחת מידע במשחקי פלאש [מתחיל]

הודעהעל ידי elad ב 02 יוני 2010, 23:33

זאת לא הגנה, זה המוצר הזה:
http://www.erate.co.il

דיווח הפעולות של השחקן משמש למדידת האפקטיביות של הקמפיין ולא לבדיקה האם השחקן מרמה או לא :חיוך:

המוצר במאמר בטח עובד בצורה דומה, אני לא מכיר משחק שמשתמש בהגנה הזאת, אם מישהו מכיר שירשום
elad
 
הודעות: 242
הצטרף: 21 מרץ 2010, 12:43
מיקום: נס-ציונה

Re: תכנות: בדיקת אבטחת מידע במשחקי פלאש [מתחיל]

הודעהעל ידי elad ב 07 יוני 2010, 01:38

בדיקת אבטחת מידע למשחק:
http://site.e-dologic.co.il/Neviot/energy0310/

רשימת ההגנות בשימוש:
- קובץ SWF מוצפן, AS2 גירסת נגן פלאש 8
- שימוש ב-SSL
- הצפנת הנתונים הנשלחים מהמשחק לשרת
- שליחת מספר נתונים פיקטיביים כדי לנסות לבלבל
- שליחת אישור מהשרת למשחק גם כאשר הנתונים שנשלחים מהמשחק לשרת לא תקינים
- בדיקת השדות Referer ו-User-Agent בצד השרת

הסבר על הנתונים המוצפנים שנשלחים לשרת (a,b,c,d,e):
a - מספר פיקטיבי מוצפן שנוצר ע"י החישוב הבא: Math.round((score + 90) / 2);
b - מספר פיקטיבי מוצפן שנוצר ע"י בחירת מספר אקראי בין 0 ל-999
c - תוצאת השחקן המוצפנת
d - מספר פיקטיבי שנוצר על ידי שימוש במספר הקפיצות של השחקן
e - פרק הזמן (בפורמט מסויים) המוצפן שהשחקן שיחק במשחק

ב-ActionScript 3 אי אפשר להגדיר את השדות Referer ו-User-Agent לכן באמצעות פלאש אפשר להגיע עד למחרוזת שצריכה להישלח ולשלוח אותה באמצעות תוכנה אחרת שכן מאפשרות לשנות את השדות האלו (מצורפת תוכנית C# לדוגמא שמאפשרת להגיע לכל תוצאה).

AS3: http://www.sendspace.com/file/qb2cth
C#: http://www.sendspace.com/file/jyyk61

תמונה
elad
 
הודעות: 242
הצטרף: 21 מרץ 2010, 12:43
מיקום: נס-ציונה

Re: תכנות: בדיקת אבטחת מידע במשחקי פלאש [מתחיל]

הודעהעל ידי פלג ב 07 יוני 2010, 08:32

עבודה יפה כרגיל:)
אני מבין שהשתמשת ב VS כדי לראות את התעבורה?
ניסיתי להשתמש ב CHARLES לדוגמא ששם אתה יכול לעצור את התעבורה ולשנות הכל כולל HEADERS?
תנסה ותגלה שזה יעבוד או שלא, בגלל שיש ALERT SECURITY שיש בעיה כלשהיא עם החתימה
ולא בטוח שה SANDBOX של פלאש ייתן לך להתמודד עם זה (תנסה לעשות את זה סתם בגלישה לאתר עם SSL ותפעיל את
CHARLES ותבין מה קורה)
פלג
 
הודעות: 546
הצטרף: 13 מרץ 2010, 16:07

Re: תכנות: בדיקת אבטחת מידע במשחקי פלאש [מתחיל]

הודעהעל ידי elad ב 07 יוני 2010, 18:05

תודה, השתמשתי ב-HTTP Debugger Pro 4.2, כנראה שיש נתונים מבוססי זמן שנשלחים בבקשה כך ששולחים את אותה בקשה שוב רק עם שינוי Headers צד-השרת מזהה את זה ולא שולח תגובה
elad
 
הודעות: 242
הצטרף: 21 מרץ 2010, 12:43
מיקום: נס-ציונה

Re: תכנות: בדיקת אבטחת מידע במשחקי פלאש [מתחיל]

הודעהעל ידי elad ב 09 יוני 2010, 22:53

בדיקת אבטחת מידע באתר המשחקים: http://www.danpoalim.co.il

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

לכל שאלה יש ארבע אפשרויות, בעת לחיצה על כפתור השליחה, נקראת פונקציה ב-JavaScript ששולחת את הנתונים לעמוד ASP ומקבלת ממנו תשובה, האם הבחירה של הגולש היא התשובה הנכונה.

קישור לפונקציות ה-JavaScript:
https://www.danpoalim.co.il/js/functions.js

הנתונים נשלחים לעמוד setAnswer.asp בפרוטוקול GET עם שני משתנים:
sessionID - מופיע בעמוד HTML
ו-answerIDs - המזהים של התשובה או התשובות (אם יש יותר מאחת)

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

ההבדלים בבדיקה זו:
כשמבצעים קריאה לעמוד setAnswer.asp בפרוטוקול HTTP צריך לשלוח את ה-ASP Session Cookie, אפשר לזהות אותו ע"י Packet Sniffer לאחר ביצוע לוגין. אם ה-ASP Session Cookie לא נשלח לשרת אז השרת מחזיר תגובה ללא נתונים.
לאחר קבלה של 500 נקודות (או מספר נקודות קרוב ל-500 בגלל שהניקוד של כל שאלה שונה), לא ניתן לבצע עוד קריאות ל-setAnswer.asp עד סוף היום.

קישור לשתי אפליקציות-דוגמא:
http://www.sendspace.com/file/o3ojyj
הראשונה בודקת את השאלות והשנייה שולחת את התשובות הנכונות עבור משתמש מסויים.

תמונה
elad
 
הודעות: 242
הצטרף: 21 מרץ 2010, 12:43
מיקום: נס-ציונה

Re: תכנות: בדיקת אבטחת מידע במשחקי פלאש [מתחיל]

הודעהעל ידי פלג ב 09 יוני 2010, 23:50

טופס ה LOGIN הוא די פשוט
אתה יכול לעשות LOGIN כחלק מהקוד שכתבת ומשם הדרך שלך סלולה לזיוף התוצאות, ככה יש לך גם את ה ASP Session Cookie
ואתה לא צריך לחפש אותו.
פלג
 
הודעות: 546
הצטרף: 13 מרץ 2010, 16:07

Re: תכנות: בדיקת אבטחת מידע במשחקי פלאש [מתחיל]

הודעהעל ידי elad ב 09 יוני 2010, 23:58

כן, אז היה צריך לקרוא לדף של הלוגין, לקבל את ה-ASP Session Cookie ואז לבצע לוגין

אפשר לבצע אוטומציה להכל, שבלחיצת כפתור יירשמו משתמשים חדשים, יופעל הלינק שנשלח להם לאימייל, יבצעו בדיקות על השאלות (עד 500 נקודות) ואז עם המשתמש האחרון לענות על כל השאלות באופן אוטומטי אחת ליום (500 נקודות) עם תוכנית שפועלת ב-schedule, אבל המטרה שלי לא הייתה להכין משהו כזה... :)
elad
 
הודעות: 242
הצטרף: 21 מרץ 2010, 12:43
מיקום: נס-ציונה

Re: תכנות: בדיקת אבטחת מידע במשחקי פלאש [מתחיל]

הודעהעל ידי elad ב 12 יוני 2010, 11:19

בדיקת אבטחת מידע למשחק המונדיאל של סניקרס:
http://www.webimage.co.il/Snickers/

פרס למקום הראשון:
כרטיס טיסה זוגי לדרום אפריקה, מימון שהייה של 4 לילות במלון בדרום אפריקה וזוג כרטיסי כניסה לגמר המונדיאל.

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

לאחר סיום כל משחק מבוצעת קריאה לעמוד:
http://www.webimage.co.il/snickers/setGameScore.asp
בשיטת Post עם הנתונים:
userID - מזהה ייחודי של הגולש, מורכב מהמחרוזת "OR_" ועוד עשרים וחמישה תווים רנדומליים, המזהה נוצר בצד-הלקוח בפלאש בעת הרישום, נשלח לשרת ונשמר ב-local shared object (flash cookie)
gameID - מזהה המשחק, מספר בין אחד לארבע
score - כל תוצאה

במידה והגולש שבר את שיאו במשחק, מתקבלת מהשרת התשובה:
details=OK&scoreUpdated=Yes
אחרת התוצאה הנוכחית לא מתעדכנת והתשובה המוחזרת מהשרת היא:
details=OK&scoreUpdated=No

את ה-userID של הגולש אפשר לזהות באמצעות Packet Sniffer או באמצעות קריאת ה-flash cookie שנשמר במחשב,
ב-Window Vista ה-userID נמצא בקובץ:
C:\Users\[YOUR-USERNAME]\AppData\Roaming\Macromedia\Flash Player\#SharedObjects\X23DCGLA\www.webimage.co.il\Snickers\BaseNew_10.swf
(את [YOUR-USERNAME] צריך להחליף לשם המשתמש במחשב)

קוד לדוגמא:

Syntax: [ Download ] [ Hide ]
Using actionscript3 Syntax Highlighting
var UrlVariables:URLVariables = new URLVariables();
UrlVariables.userID = "YOUR-USER-ID";
UrlVariables.gameID = "1";
UrlVariables.score = "0";
                       
var UrlRequest:URLRequest = new URLRequest("http://www.webimage.co.il/snickers/setGameScore.asp");
UrlRequest.method = URLRequestMethod.POST;
UrlRequest.data = UrlVariables;
                       
var UrlLoader:URLLoader = new URLLoader();
UrlLoader.load(UrlRequest);
Parsed in 0.030 seconds, using GeSHi 1.0.8.4


בעת הרישום, כדי לתת לגולש בונוס של 1000 נקודות, המשחק מבצע קריאה ל:
http://www.webimage.co.il/snickers/setB ... ID&score=2
elad
 
הודעות: 242
הצטרף: 21 מרץ 2010, 12:43
מיקום: נס-ציונה

Re: תכנות: בדיקת אבטחת מידע במשחקי פלאש [מתחיל]

הודעהעל ידי elad ב 12 יוני 2010, 15:32

בדיקת אבטחת מידע למשחק של Yellow:
http://www.yellow.co.il

במשחק צריך להבקיע עשרה שערים בזמן המהיר ביותר, אפשר לשלוח את התוצאה רק פעם אחת ביום.

שלושת הגולשים בעלי הדירוג היומי הגבוה ביותר זוכים בכדורגל נבחרות.

פירוט התקשורת בין השרת למשחק:
א. קריאה לקבלת נתונים לפני התחלת המשחק
ב. התחלת המשחק
ג. עדכון השרת בכל פעם שהגולש מבקיע גול
ד. סיום המשחק
ה. שליחת פרטים אישיים (אפשרי רק פעם אחת ביום)

כמו שהראיתי בבדיקות הקודמות אפשר לחקות את השאילתות שנשלחות לשרת ולבצע אוטומציה למשחק.
מכיוון שיש 15 שאילתות שצריכות להיבנות (כולל פונקציות הצפנה ופיענוח), אני אסביר על טכניקה אחרת, פשוטה וקצרה יותר:
יצירת קובץ SWF חדש שיטען את קובץ המשחק ויקרא לפונקציות בתוך קובץ המשחק. לדוגמא: במהלך המשחק הגולש בועט את הכדור והשוער יכול לעצור אותו או שלא, במידה והיה שער אז נקראת פונקציה מסויימת במשחק, למה לא לקרוא לפונקציה הזאת מה-SWF החיצוני שטען לתוכו את המשחק?
בנוסף למשחק יופיע כפתור בצד שמאל למעלה, בלחיצה עליו תיקרא הפונקציה במשחק שנקראת כאשר הגולש מבקיע גול. לאחר עשרה לחיצות על הכפתור המשחק ימשיך לפעול כרגיל ויאפשר לגולש לשלוח את פרטיו האישיים (במידה והגולש לא עשה זאת במהלך היום).

Syntax: [ Download ] [ Hide ]
Using actionscript Syntax Highlighting
System.security.allowDomain("*");

var Counter = 0;

var Container = _root.createEmptyMovieClip("Container", _root.getNextHighestDepth());
Container.loadMovie("http://www.yellow.co.il/flash/thegamework.swf");

GoalButton.onRelease = function()
{
        Counter++;
       
        _root.Container.scoreCount("in");
       
        if (Counter == 10) GoalButton.enabled = false;
}
Parsed in 0.014 seconds, using GeSHi 1.0.8.4

קישור לאפליקציית הדוגמא:
http://www.sendspace.com/file/x76t5q

כדי שקוד הדוגמא יעבוד, צריך להיות מוגדר במחשב Cookie, ה-Cookie מוגדר בכניסה לאתר http://www.yellow.co.il
ה-Cookie משמש לבדיקה, האם הגולש שיחק במהלך אותו יום, אם קובץ ה-Cookie יימחק, השרת ייתייחס לגולש כאל גולש חדש ויאפשר לו לשלוח את פרטיו האישיים בסיום המשחק שוב.
נערך לאחרונה על ידי elad בתאריך 13 יוני 2010, 08:28, נערך פעם אחת בסך הכל.
elad
 
הודעות: 242
הצטרף: 21 מרץ 2010, 12:43
מיקום: נס-ציונה

Re: תכנות: בדיקת אבטחת מידע במשחקי פלאש [מתחיל]

הודעהעל ידי elad ב 12 יוני 2010, 16:29

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

כמו ביתר המשחקים באתר, יש שימוש במערכת הניקוד של ScorePlug

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

תמונה
elad
 
הודעות: 242
הצטרף: 21 מרץ 2010, 12:43
מיקום: נס-ציונה

Re: תכנות: בדיקת אבטחת מידע במשחקי פלאש [מתחיל]

הודעהעל ידי פלג ב 13 יוני 2010, 10:47

מעניין למה לא משיקעים מספיק כדי להגן, או שאין מספיק מודעות לעניין, במיוחד שאחד משקיע בלפתור והשני משקיע בלנצח בדרכים לא בדיוק קשרות אבל יחסית קלות לביצוע.
מעניין לקבל את התגובה של אחד המפתחים, מה היו השיקולים והאם הם היו מודעים (במיוחד במקומות שיש תגמול כספי או אחר)
פלג
 
הודעות: 546
הצטרף: 13 מרץ 2010, 16:07

Re: תכנות: בדיקת אבטחת מידע במשחקי פלאש [מתחיל]

הודעהעל ידי elad ב 13 יוני 2010, 10:50

דרוש ידע וזמן בשביל להגן, כמו שאיתן כתב באחת התגובות הקודמות, משך זמן הפיתוח של משחק מאובטח גדול הרבה יותר
elad
 
הודעות: 242
הצטרף: 21 מרץ 2010, 12:43
מיקום: נס-ציונה

Re: תכנות: בדיקת אבטחת מידע במשחקי פלאש [מתחיל]

הודעהעל ידי פלג ב 13 יוני 2010, 11:03

אני מסכים
ואם תקרא את התנאים להשתתפות אתה גם תלגה שרמאות תביא לפסילתך, השאלה כמה באמת מישהו בודק את העניין,
וכמה חשוב למותג לשמר את שמו, וכמו שכבר נאמר בעבר פה או במפגש בנושא אבטחה שהיה - יש לקוחות שלא יסכימו לקבל
מצב שיזייפו להם נתונים.
פלג
 
הודעות: 546
הצטרף: 13 מרץ 2010, 16:07

Re: תכנות: בדיקת אבטחת מידע במשחקי פלאש [מתחיל]

הודעהעל ידי elad ב 13 יוני 2010, 11:15

ברור שפרס לא יינתן למישהו שרימה בהנחה שיודעים שהוא רימה :)
גם אם מישהו בודק את העניין, בכל אחד מהמשחקים שבדקתי אפשר לרמות מבלי שיגלו,
לא התייחסתי לנקודות האלו: אי-זיהוי שחקן שמרמה והתנהגות של שחקן ממוצע רגיל, בשביל לא לתת רעיונות לאנשים, אין בהם שום ערך ללמידה מלבד לרמות.
elad
 
הודעות: 242
הצטרף: 21 מרץ 2010, 12:43
מיקום: נס-ציונה

Re: תכנות: בדיקת אבטחת מידע במשחקי פלאש [מתחיל]

הודעהעל ידי elad ב 13 יוני 2010, 20:47

בדיקת אבטחת מידע במשחק:
http://berko.013netvision.net.il/

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

לכל סירטון יש ID מיוחד. המשחק מבצע קריאה לכתובת:
http://berko.013netvision.net.il/FlashS ... tTopVideos
בשביל להציג את המקומות הראשונים.

בכל פעם שמישהו צופה בסירטון מבוצעות קריאות לכתובות:
http://berko.013netvision.net.il/FlashS ... 1&source=1
http://berko.013netvision.net.il/FlashS ... 2&source=1

מכל כתובת IP אחת אפשר להעלות את הדירוג רק פעם אחת לכל סירטון כך שאם מישהו עם אותה כתובת IP יצפה באותו סירטון שוב ושוב הוא לא יעלה את הדירוג שלו. ע"י כתיבת תוכנית אוטומטית שתבצע את הבקשות מכתובות IP שונות אפשר לנטרל את מנגנון האבטחה ולהגיע למקום הראשון.
elad
 
הודעות: 242
הצטרף: 21 מרץ 2010, 12:43
מיקום: נס-ציונה

Re: תכנות: בדיקת אבטחת מידע במשחקי פלאש [מתחיל]

הודעהעל ידי elad ב 16 יוני 2010, 20:45

בדיקת אבטחת מידע במשחק:
http://www.4girls.co.il/newsite/mothernature/

אחרי מילוי הפרטים האישיים אפשר לשחק במכונת המזל, מהשרת מתקבלים מספר המתנות שעדיין לא חולקו ואז בצד הלקוח מתבצעת הבדיקה האם השחקן זכה (במידה ונשארו מתנות) או לא. בתום המשחק הפרטים האישיים וגם משתנה שקובע האם הגולש זכה או לא נשלחים לשרת.
יכול להיות שבשרת מתבצעת בדיקה האם יש מתנות שלא חולקו ורק אז ניתנת מתנה לגולש שזכה.
ע"י הכנה של סקריפט שיפעל אחת לפרק זמן קצר אפשר לבצע קריאה לדף בשרת שמחזיר כמה מתנות עדיין לא חולקו (אחת ליום מאופס) ואז לשלוח פרטים אישיים של זוכה מסויים עם המשתנה שקובע שהייתה זכייה.
elad
 
הודעות: 242
הצטרף: 21 מרץ 2010, 12:43
מיקום: נס-ציונה

Re: תכנות: בדיקת אבטחת מידע במשחקי פלאש [מתחיל]

הודעהעל ידי elad ב 19 יוני 2010, 15:54

בדיקת אבטחת מידע במשחק:
http://apps.facebook.com/vitaminchick/

בסוף המשחק יש קריאה לכתובת:
http://vitamin.inmanage.info/users/score

עם שלושה פרמטרים:
sid - session key ניתן לזיהוי ע"י packet sniffer
uid - מזהה המשתמש בפייסבוק, ניתן לזיהוי ע"י packet sniffer
score1 - תוצאת השחקן

אפשר לבצע את הקריאה מכל דפדפן עם שני הנתונים היחודיים (userid ו-sid) ולהגיע לכל תוצאה:
http://vitamin.inmanage.info/users/scor ... =123456789
elad
 
הודעות: 242
הצטרף: 21 מרץ 2010, 12:43
מיקום: נס-ציונה

Re: תכנות: בדיקת אבטחת מידע במשחקי פלאש [מתחיל]

הודעהעל ידי elad ב 27 יוני 2010, 12:25

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

בתפוז משתמשים במוצר הזה בשביל שרות הצ'אט:
http://www.webmaster.com/cr.htm
הצ'אט מבוסס IRC.

שידורי האודיו והוידאו מבוססים Flash Media Server.

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

מצורפת תוכנה שמתחברת לערוץ מסויים ועבור כל משתמש שנכנס, יוצרת NetStream עם שם ה-NetStream הייחודי של המשתמש שנכנס, כך בעצם התוכנה משתלטת על כל השידורים.

קישור לקוד המקור:
http://www.sendspace.com/file/mjrr8p


תמונה
elad
 
הודעות: 242
הצטרף: 21 מרץ 2010, 12:43
מיקום: נס-ציונה

Re: תכנות: בדיקת אבטחת מידע במשחקי פלאש [מתחיל]

הודעהעל ידי פלג ב 27 יוני 2010, 12:42

יפה מאוד!
עכשיו צריך לבדוק מה קורה בנושא "שם בדוי" של המשתמש מול הזיהוי האמיתי לו בתפוז.
פלג
 
הודעות: 546
הצטרף: 13 מרץ 2010, 16:07


Re: תכנות: בדיקת אבטחת מידע במשחקי פלאש [מתחיל]

הודעהעל ידי פלג ב 03 יולי 2010, 18:08

ועל זה נאמר
let the games begin
:P
פלג
 
הודעות: 546
הצטרף: 13 מרץ 2010, 16:07

Re: תכנות: בדיקת אבטחת מידע במשחקי פלאש [מתחיל]

הודעהעל ידי elad ב 05 יולי 2010, 19:01

בדיקת אבטחת מידע במשחק SummerSale:
http://www.summersale.co.il/summersale/game/index.html

בסוף המשחק הניקוד ביחד עם הפרטים האישיים של השחקן נשלחים לעמוד:
http://www.summersale.co.il/summersale/SetScoreFullDetails.ashx

אפשר לשלוח כל ניקוד שרוצים מבלי לשחק במשחק.

רשימת הפרמטרים:
UPDATES - האם לקבל עידכונים לתיבת הדואר האלקטרוני או לא
BirthDate - תאריך לידה
ID - מספר תעודת זהות
Address - כתובת
CellPhone - מספר טלפון נייד
LastName - שם משפחה
FirstName - שם פרטי
Score - ניקוד
Email - כתובת דואר אלקטרוני

לדוגמא:
http://www.summersale.co.il/summersale/SetScoreFullDetails.ashx?UPDATES=true&BirthDate=20090201&ID=123456789&Address=address&CellPhone=0501234567&LastName=last&FirstName=first&Score=2000&Email=e@mail.com
elad
 
הודעות: 242
הצטרף: 21 מרץ 2010, 12:43
מיקום: נס-ציונה

Re: תכנות: בדיקת אבטחת מידע במשחקי פלאש [מתחיל]

הודעהעל ידי פלג ב 05 יולי 2010, 21:10

אלעד עבודה יפה כרגיל:)
בתקנון לא מצויין שזכיית לא חוקיות ייפסלו
זה הזמן שלך לנסוע לחופשה ;)
פלג
 
הודעות: 546
הצטרף: 13 מרץ 2010, 16:07

Re: תכנות: בדיקת אבטחת מידע במשחקי פלאש [מתחיל]

הודעהעל ידי elad ב 05 יולי 2010, 22:10

קודם כל אני צריך לחזור מהיורודיסני
elad
 
הודעות: 242
הצטרף: 21 מרץ 2010, 12:43
מיקום: נס-ציונה

Re: תכנות: בדיקת אבטחת מידע במשחקי פלאש [מתחיל]

הודעהעל ידי elad ב 27 אוגוסט 2010, 01:53

בדיקת אבטחת מידע במשחק 'על כל הקופה' בפייסבוק

תמונה

המשחק על כל הקופה הוא משחק פופולרי בפייסבוק עם מעל ל-300,000 משתמשים. מטרת המשחק היא לענות נכונה על מספר השאלות הגבוה ביותר, ברגע ששחקן טועה, המשחק נגמר. במידה והשחקן בוחר בתשובה הנכונה הוא מתקדם לשאלה הבאה, לכל שאלה מופיעות מספר תשובות כאשר רק אחת מהן נכונה (בדומה לשעשועון הטריוויה 'מי רוצה להיות מיליונר'). למשחק יש שתי גירסאות: גירסא בה משחקים בשביל כיף וגירסא בה משחקים בשביל כסף אמיתי. בגירסת הכסף האמיתי, עלות כל משחק היא חמישה שקלים. חלק מחמשת השקלים מתווסף לקופה. אחת לחודש, השחקן שענה על מספר השאלות הגבוה ביותר בגירסת הכסף האמיתי זוכה בקופה ולאחר מכן הקופה מתאפסת והמשחק מתחיל מחדש.

המשחק מבוסס על טכנולוגיית AJAX ויוצר קשר עם השרת כדי להודיע על תחילת משחק, קבלת שאלה חדשה, שליחת תשובה לשאלה וסיום משחק. ההודעות לשרת נשלחות בפרוטוקול HTTP תוך שימוש במתודה GET. בכל הודעה לשרת נשלחת קבוצת נתונים זהה המייצגת את ה-Session של השחקן כדי שהשרת יזהה את השחקן ששלח את ההודעה.

באמצעות כניסה למשחק בפייסבוק והפעלת Packet Sniffer, אפשר לזהות אחת מההודעות ולשלוף ממנה את משתני ה-Session. לאחר מכן, באמצעות תוכנה ייעודית לשלוח לשרת הודעות המכילות בקשות לקבלת שאלות חדשות, במקביל לשלוח את כל התשובות האפשריות לכל שאלה וכשרוצים לסיים לענות תשובות נכונות - לשלוח לשרת את הודעת סיום המשחק. ע"י ביצוע פעולות אלו אפשר להגיע לכל תוצאה, הן בגירסא בה משחקים בשביל כיף והן בגירסא בה משחקים בשביל כסף אמיתי.

בהודעה שנשלחת לשרת כשמתחיל משחק חדש, יש פרמטר בוליאני (מכיל 'כן' או 'לא') שמגדיר האם המשחק הוא בשביל כיף או על כל הקופה. כדי להתחיל משחק בגירסת הכסף האמיתי, צריך לעבור את תהליך ההרשמה במשחק (כרוך בהזנת מספר הטלפון הנייד וכתיבת הקוד שיישלח בהודעת SMS) ולאחר מכן בכל פעם שתישלח לשרת הודעה על תחילת משחק בגירסת הכסף האמיתי (כפי שנקבע בפרמטר הבוליאני), המשחק יעלה חמישה שקלים.

קישור לאפליקציה לדוגמא עם קוד-מקור
קישור למאמר המקורי
elad
 
הודעות: 242
הצטרף: 21 מרץ 2010, 12:43
מיקום: נס-ציונה

הקודםהבא

חזור אל מאמרים ומדריכים לפלאש ומעבר

 


  • שרשורים בנושאים דומים
    תגובות
    צפיות
    הודעה אחרונה

מי מחובר

משתמשים הגולשים בפורום זה: אין משתמשים רשומים ואורח אחד