Ajax To Server Side Code

720 views

Published on

Published in: Technology
1 Comment
0 Likes
Statistics
Notes
  • Why it's not on Owasp yet??
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • Be the first to like this

No Downloads
Views
Total views
720
On SlideShare
0
From Embeds
0
Number of Embeds
17
Actions
Shares
0
Downloads
4
Comments
1
Likes
0
Embeds 0
No embeds

No notes for slide

Ajax To Server Side Code

  1. 1. ‫‪HACKING WEB APPLICATIONS‬‬ ‫‪NEW METHOD‬‬ ‫ניצול ‪ Ajax-Pro‬וגישה והרצת פונקציות לצד‬ ‫שרת‬ ‫נרקולייב שלומי פברואר ٨٠٠٢‬
  2. 2. ‫לאחר מחקר שערכתי, נמצא כי ניתן היה לגשת לקוד לצד השרת ובכך לבצע מהלכים‬ ‫עוינים.‬ ‫במקרה הנquot;ל קיבלתי את סיסמת ה – ‪ ,Admin‬אך זה כמובן רק להמחשת הפעולה.‬ ‫במציאות ניתן יהיה לשלוח פרמטרים שונים לפונקציות שונות.‬ ‫החשש העיקרי הוא ממפתחי המערכות, אך גם מהאקרים אשר יודעים איך להפעיל‬ ‫התקפה זו.‬ ‫מה צריך האקר לדעת לשם ביצוע ההתקפה:‬ ‫1(לשנות את הקריאה לפונקציה עם כלי ‪.Web Proxy‬‬ ‫2(לנחש את שמות הפונקציות לצד השרת ואת כמות וסוג הפרמטרים שהם‬ ‫מקבלות )ניתן להכניס גם ערכי ‪ Null‬בפרמטרים(.‬ ‫3(הרצת ההתקפה בצורה ידנית או עquot;י תוכנה ייעודית למטרת ניחוש שמות‬ ‫הפונקציה.‬ ‫הדגמת ההתקפה:‬ ‫השתמשתי במערכת שבניתי לפני מספר חודשים על מנת להדגים את ההתקפה.‬ ‫להלן תמונות מסך של דף ‪ Registration‬באפליקציה:‬
  3. 3. ‫להלן קוד לצד הלקוח המטפל ב – ‪ Event‬של לחיצת כפתור ה – ‪:Check Availability‬‬ ‫להלן קטעי הקוד שלצד השרת המטפלות ב – ‪ Event‬של לחיצת כפתור ה – ‪Check‬‬ ‫‪:Availability‬‬
  4. 4. ‫שימו לב ששני הפונקציות מאופשרות לעבודה ב – ‪ – Ajax‬תנאי הכרחי להצלחת‬ ‫ההתקפה.‬ ‫עד כה, הכל נראה תקין – לאחר לחיצת הכפתור, הקוד לצד הלקוח מקבל את המאורע כי‬ ‫נלחץ הכפתור ומפעיל את הפונקציה המתאימה בצד הלקוח.‬ ‫הפונקציה שלצד הלקוח מפעילה את הפונקציה ‪ CheckUserID‬שלצד השרת.‬ ‫ניתן לשנות את קריאת הפונקציה על ידי כלי ‪ ,Web Proxy‬מקריאה לפונקציה בשם‬ ‫‪ CheckUserID‬לפונקציה בשם ‪ .getAdminPass‬כפי שניתן לראות שניהם מקבלות פרמטר‬ ‫אחד מאותו הסוג.‬ ‫להלן קריאה תקינה:‬ ‫בשלב הבא נשנה את פרמטר ה – ‪ x-ajaxpro-method‬מ – ‪ CheckUserID‬ל –‬ ‫‪.getAdminPass‬‬
  5. 5. ‫התוצאה:‬ ‫- שמות הפונקציות בדרך כלל קלות לניחוש, לפרמטרים ניתן פשוט להכניס ‪.Null‬‬ ‫- ניתן להיעזר בהצגת שגיאות על מנת לאתר את הפרמטרים שהפונקציה מקבלת.‬ ‫- ניתן להריץ שאילתות לבסיסי נתונים, גישה לפונקציות של משתמשים בעלי הרשאות‬ ‫גבוהות.‬ ‫הפתרון:‬ ‫קיימים מספר פתרונות להגנה מפני התקפות מסוג זה, ההגנה הטובה ביותר היא לבצע‬ ‫‪ White List‬של פונקציות אליהם ניתן לגשת בעזרת פונקציות שלצד הלקוח.‬ ‫1.המפתח חייב לעשות הפרדה לשכבות.‬ ‫2.יש לאפשר גישה ב – ‪ Ajax‬לפונקציות רלוונטיות בלבד.‬
  6. 6. ‫נרקולייב שלומי‬ ‫מומחה תחום חוסן בחברת אבנת‬ ‫‪shlominar@gmail.com‬‬

×