Page 79 - بسم الله الرحمن الرحيم
P. 79
محتويات الدرس:
-1ما هو الـ Buffer Overflow؟
<--------------------------
-2المعالجه)(Proccess
<-----------------
-3إدارة الذاكره )(Memory management
<--------------------------------
-4استغلل ماذكر في الـ Buffer Overflow
<----------------------------------
* ماذا يجب أن أعرف قبل أن أقرأ هذه المقالة؟
ليس الكثير ،،،فهذا دليل اساسي لك اذن فقط تصحتاج ان تصكون لديك معرفة أساسية بمفهو.م برامج الحاسوب
وإدارة الذاكرة
-1ما هو الـ Buffer Overflow؟
<>-----------------------
Buffer Overflowحالة تصحدث لبرنامج بسبب برمجة سيئة أو بمعنى اختر برمجة تصحمل أختطاء.
احدث ثغرة يمكنك أستغللها من نوع Buffer Overflowتصسمى فايروس ' ، 'code redالتي أستغلت
في ختاد.م IISلمايكروسوفت - MS web server-
عموما ،يحدث Buffer Overflowعندما يظهر برنامج ما متغ ّير بحجم ثابت )على سبيل المثال،حجم 20
بايت( و القيمة التي خت صّصت إلى هذه المتغ يّر أكبر من حجم المتغ يّر.
ختذ هذا المثال:
يظهر برنامجي على الشاشة هذه الجملة" :رجهاء إطبع اسمك الول" :ثم سيأختذ برنامجي من المستخد.م
البيانات التي سيدختلها وهي )اسمه الول( ثم تصوضع في متغير فتظهر في برنامجي او تصخزن.
المشكلة هنا تصكمن في انه إذا كان المتغ ّير مخصص لتخزين بيانات حجمها القصى يساوي 15بايت والبيانات
هنا)وهي اسم المستخد.م(حجمها 25بايت التي ستخزن في المتغير )يتضح لنا ان اسم المستخد.م وضع في
مكان اقل من حجمه (.
اذن ماذا سيحدث للبيانات الزائدة عن 15بايت من المؤكد انها سـ"تصطفح "Overflowعلى الذاكرة التي
خت صّصت لمتغ يّر السم.
عندما يبدأ البرنامج ،تصخ صّص الذاكرة :
><var1><var2><vname><Other things in memory
10b 6b 15b
) var 1و var 2متغ ّيرات ليست لها علقة بالسم المدختل vname,المتغ يّر الذي حجمه 15بايت
وهو الذي سيحتوي السم الذي سيدختله المستخد.م(
نفترض ان المستخد.م سيدختل السم " abcabcabcabcabcabcabcabca
"bcحينها ستبدو الذاكره هكذا:
somevalue2avalusabcabcabc
abcabcabcabcabcabc
><var1 ><var2><vname ><other things go here
اذا ماذا حدث ؟؟ المتغ يّر " vnameطفح "overflowedبسبب البيانات المدختلة عليه من قبل المستخد.م
79