مرحبا ،  اليوم راح نتحدث عن ثغرة interger overflow ،    Odometer_rollover نبذة عن الثغرة : نعرف ان الكمبيوتر فيها بايتات و ان لكل بايت مساحة محدودة يمكن الحفظ فيها . مثلا في الصورة السابقة نشاهد ان الرقم 999999 اذا ما اضفنا عليها ١ قد يصعب على الجهاز ان يكتب 1000000 فيعود الى ٠ و هذا نفسها مثل البايتات اي لو قمنا بكتابة رقم اكبر من 2147483648 او 2147483648- قد يحدث crash في النظام ! كيف ؟ معلومات اكثر عن الثغرة في مستوى المواقع و السيرفرات: هذا النوع من الثغرة تكون دائما على سيرفرات الوندوز ! لماذا لان في لغة برمجة الphp كم كانت الرقم لن يحدث اي فرق لكن في لغة برمجة asp.net يقوم المبرمج بتعريفها كمتغير int او ما الى اخره … و هذا هو احد مشاكل او عيوب لغة برمجة asp.net لكن في لغة برمجة php لاتوجد مثل هذا الانواع من الثغرات لان php يقوم بغزن الارقام الكبيرة في مكانين او يقسمها $ لا اعرف بالتاكيد السر لكنها لا تآثر عليها !

كشف الثغرة في مستوى المواقع و السيرفرات؟ الثغرة موجودة في الاف و الاف المواقع الموجودة على سيرفرات الوندوز و يمكن الكشف عنها من خلال

١- يجب ان تكون السيرفر وندوز { كيف تعرف ؟ سهلة فقط اجلب اي بي السيرفر و حطها في اداة الnmap و راح يقول لك نظام السيرفر}

٢- حاول ان تكشف مكان يطلب منك ادخال رقمي او مثلا ناخد مثال :   لدينا موقع اسمه rsoz و رابطها www.example.com هذا الموقع عبارة عن مدورنة و عندما تدخل على مدونة الرابط يتغير الى مثلا : www.example.com/?readMore=12 اي هنا يطلب من السيرفر جلب الموضوع الذي الايدي الموضوع هي 12 ثم يعرضها لك ، لكن ماذا لو جربنا ان نقوم بكتابة رقم اكبر من 2147483648 ??  سنشاهد هذا :    Screen Shot 2014-05-18 at 7.11.05 PM

اخطار الثغرة في مستوى المواقع و الثغرات:  لو سبق و كشفت الثغرة و انزلت الصفحة سترى الكثير من الاكواد $ ، لغة الasp يقوم بعرض جميع السورس للملف الذي فيها الخطاء و يعطيك ياعتقاده انها ستساعدك لكن في php يعطيك سطر الخطئ . من هذا السورس من المحتمل الحصول على يوزر و اسم الداتابيس او معرفة بعض من سورس الموقع الذي قد تفيد ! و ايضا لو بحثت في قوقل حول server error ‘/’ applacation ستجد انها دلائل على وجود ثغرة SQL Injection (ليس في كل مرة !) و ايضا تساعدك هذا الثغرة في معرفة اصدار النظام و الفريم ورك الذي يكتب في اخر الصفحة & و اذا وجدت ثغرة في هذا الاصدار فمن الممكن اختراق السيرفر من خلال metaspliot او غيرها ! Screen Shot 2014-05-18 at 7.19.44 PM صور اكثر عن الثغرة :

 

Screen Shot 2014-05-18 at 7.22.03 PMScreen Shot 2014-05-18 at 7.22.09 PM

 

الحل  في مستوى المواقع و السيرفرات : ؟

 في الحقيقة لا توجد حل واضح و جيد لكن برمجيا فكرت و اتت في خيالي الحل الاتي :  ان تقوم بوضع if اذا كانت الرقم المدخلة اكبر من القدر او try يكون احسن و من ثم يكمل السكريبت عمله 🙂 او ان نغير المتغيرات من int الى long ! معلومات عن الثغرة

في مستوى البرامج : ان هذا الثغرة لا تشكل خطرا فقط على المواقع و انما على البرامج ايضا لكن تم حل المشكلة في اغلبية اللغات الحديدثة لكن اغلبية البرامج تم برمجتها من لغات قديمة و قد تشكل الثغرة خطر على حصول crash في البرنامج و ان الكراكيرز يستخدمون هذا الثغرة في تكريك او ما الى غيره .

 

الحل على مستوى البرامج :  تفس الحل السابق ان لا تكون اكبر من الرقم المشؤم 2147483648 ههه  او تغيرها الى long   بعض من المصادر الذي قد تساعدك : 

  1. http://goo.gl/Y8Owr
  2. http://goo.gl/L5P5vk
  3. http://goo.gl/tb1E4J

للتواصل : @RsozDance جميع الحقوق محفوظة لموقع isecur1ty © 2014