No Love - The Official Site | | Friends Team
هل تريد التفاعل مع هذه المساهمة؟ كل ما عليك هو إنشاء حساب جديد ببضع خطوات أو تسجيل الدخول للمتابعة.


No Love - The Official Site | | Friends Team
 
الرئيسيةالبوابةأحدث الصورالتسجيلدخول
بحـث
 
 

نتائج البحث
 
Rechercher بحث متقدم
المواضيع الأخيرة
» أكره امي وفي اليوم الذي ستموت فيه ساخرج للنزهه
" شرح معنى الـ Buffer Overflows" Emptyالجمعة فبراير 25, 2011 12:50 pm من طرف Dead Man

» أكره امي وفي اليوم الذي ستموت فيه ساخرج للنزهه أكره امي وفي اليوم الذي ستموت فيه ساخرج للنزهه كره امي وفي اليوم الذي ستموت فيه ساخرج للنزهه اكره امي وفي اليوم الذي ستموت فيه ساخرج للنزهه لسلام عليكم ورحمة الله وبركاته انا دخلت على احد المنتديات وشدني
" شرح معنى الـ Buffer Overflows" Emptyالجمعة فبراير 25, 2011 12:49 pm من طرف Dead Man

» بكم ايس كريم بالكاكاو
" شرح معنى الـ Buffer Overflows" Emptyالجمعة فبراير 25, 2011 12:48 pm من طرف Dead Man

» قصه واقعية 2011 , قصة الفتاه الي ماتت وهي تنمص حواجبها 2011
" شرح معنى الـ Buffer Overflows" Emptyالجمعة فبراير 25, 2011 12:47 pm من طرف Dead Man

» اقرؤا واحكموا بصدق وصراحه
" شرح معنى الـ Buffer Overflows" Emptyالجمعة فبراير 25, 2011 12:45 pm من طرف Dead Man

» قصص اغتصاب - قصة أغتصاب قصص اغتصاب - قصة أغتصاب بعد أيام من عودتها إلى المنزل الطفلة السودانية هند كرار (14 عاما) التي أدت حادثة خطفها والاعتداء عليها لمدة زادت عن 60 يوما إلى هز مشاعر المجتمع السعودي، وفي هذا اللقاء روت الفتاة وأسرتها لأول مرة تفاصيل م
" شرح معنى الـ Buffer Overflows" Emptyالجمعة فبراير 25, 2011 12:43 pm من طرف Dead Man

» ساعدت زوجها ليتزوج حبيبته
" شرح معنى الـ Buffer Overflows" Emptyالجمعة فبراير 25, 2011 12:42 pm من طرف Dead Man

» اللي عنده افكار أو قصص لإنتاج عمل
" شرح معنى الـ Buffer Overflows" Emptyالجمعة فبراير 25, 2011 12:41 pm من طرف Dead Man

» قصة الهواوي وبنت خالته
" شرح معنى الـ Buffer Overflows" Emptyالجمعة فبراير 25, 2011 12:39 pm من طرف Dead Man


 

 " شرح معنى الـ Buffer Overflows"

اذهب الى الأسفل 
كاتب الموضوعرسالة
YoungRJ
المدير العام للمنتدى



ذكر
عدد الرسائل : 18
تاريخ التسجيل : 07/11/2009

" شرح معنى الـ Buffer Overflows" Empty
مُساهمةموضوع: " شرح معنى الـ Buffer Overflows"   " شرح معنى الـ Buffer Overflows" Emptyالسبت نوفمبر 07, 2009 10:55 pm

اقدم لكم درس يشرح ما معنى الـ Buffer Overflows .. وانشالله تستفيدون منه

يله نبدأ

محتويات الدرس:

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" على الذاكرة التي خصّصت لمتغيّر الاسم.

عندما يبدأ البرنامج، تخصّص الذاكرة :

10b 6b 15b
(var 1 وvar 2 متغيّرات ليست لها علاقة بالأسم المدخل ,vname المتغيّر الذي حجمه 15 بايت
وهو الذي سيحتوي الاسم الذي سيدخله المستخدم)

نفترض ان المستخدم سيدخل الاسم " abcabcabcabcabcabcabcabca
bc" حينها ستبدو الذاكره هكذا:

somevalue2avalusabcabcabc
abcabcabcabcabcabc


اذا ماذا حدث ؟؟ المتغيّر vname "طفح overflowed" بسبب البيانات المدخلة عليه من قبل المستخدم و قيمة "other things in memory أشياء اخرى في الذاكره" تغيّرت بسبب فيض(overflow) الحروف من ادخال المستخدم.

اذن كيف أستغلّ هذا الخطأ؟؟؟
قبل أن نصل إلى الجواب، هناك بعض الأشياء الأساسية المهمة التي يجب علينا أن نعرفها حول تركيب وبنية الحاسوب .
في هذه المقالة سنناقش نظام لينكس linux، لكن المفهوم مماثل لباقي الأنظمة.


2-المعالجه(Proccess):
>----------------<

إنّ الوحدة الوظيفية الأساسية في حاسوب يعمل هي عملية المعالجه (Proccess).في الحاسوب هنالك العديد من العمليات ونظام التشغيل مسؤول عن تقسيم القوّة التي تجعل العديد من العمليات تعمل في نفس الوقت في الحاسوب.
ليس هناك شيء إسمه "متعددالعمليات Multi- proccesses" صحيح... كيف اذن؟؛ انَّ وحدة المعالجة المركزية(CPU) تنتقل بين العمليات كلُُ على حده بسرعة كبيره بحيث تبدو مثل العديد من المهام التي تعمل في وقت واحد،
اذا تبدو لنا كأن العمليات تعمل في وقت واحد وهذه من خدع الحاسوب التي يؤديها علينا Smile ..
كلّ عملية لها عنوان فاضي من الذاكره ، ولايمكن لأي عمليةآخرى تدخل في هذا المكان الفاضي من الذاكرة. وهذا يرشدنا الى شي اخر يجب ان تفهمه وهو:



3-إدارة الذاكره (Memory management):
>------------------------------<

تدير أنظمة التشغيل-operating systems-الحديثة ذاكرة افتراضية virtual memory(تخيلية).
ذلك يعني بأنّه لايمكن لأي تطبيق (برنامج مثلا) الوصول مباشرة إلى الذاكرة الحقيقية.لماذا؟؟
انظمة التشغيل Operating System تمتلك جدول تخطيط "تحويل العناوين الحقيقية من الذاكرة الى عناوين افتراضية(تخيلية)" .
وعندما تقوم ذاكرة الـ OS (نظام التشغيل)بتحديد مكان في الذاكرة لبرنامج معين لتشغيله ،يأخذ البرنامج العنوان التخيليّ فقط ، وليس العنوان الطبيعي.
و هنالك استخدام اخر للذاكرة الإفتراضية(التخيليّة) وهي انه من المعلوم أن الذاكرة الحقيقية لا ترتبط مباشرة بكل عملية (أو برنامج)، فنظام التشغيل يستخدم مساحة على القرص الصلب كذاكرة،
والتطبيق لا يمكنه أبدا معرفة مكان الذاكرة ( مكان الذاكرة الحقيقة )،ذلك لأن المساحة المخصصة للذاكرة في القرص الصلب تتبدل وتتغير.

توضيح :. ان الذاكرة لا تنقسم الى ذاكرة حقيقة وذاكرة افتراضية بل أنهما ينتميان لذاكرة واحد
اذن ما فائدة التسمية الى حقيقية وافتراضية ؟؟ الجواب هو للمتييز فقط ، حيث ان الذاكرة الحقيقة تمثل مساحة معينة من القرص الصلب (ومكان هذه المساحة في تغير مستمر) لذلك سميت حقيقية او بمعنى اخر طبيعية (اي بأستطاعتك لمس مكان الذاكرة الطبيعية بيدك على القرص الصلب)
وفائدة الذاكرة الإفتراضية هي إعطاء عنوان افتراضي (غير حقيقي ) للذاكرة الحقيقية اي يعطي عنوان كأسم فقط لمكان مساحة الذاكرة الطبيعية في القرص الصلب ، وإن تغير مكان المساحة المخصصة للذاكرة يظل العنوان الإفتراضي(التخيلي) ثابت.


4-استغلال ماذكر في الـ Buffer Overflow
>---------------------------------<
الآن نصل إلى الجزء الأهم والمرح
كيف نستفيد من الذي قلنا عن المعالجة وإدارة الذاكرة للوصول والدخول الى الجذر (Root) وأختراق النظام؟ تذكّر نحن قلنا في وقت سابق بأنّه عندما يكون الإدخال(البيانات) من المستخدم أكبر حجما من الذاكرة التي خصّصت لهذه البيانات، البيانات الزائدة ستفيض (overflow) في الذاكرة التي بعد الاسم المتغيّر؟ هذا المكان من الذاكرة هو المكان الذي نستفيد منه في الأختراق.
ماذا نعمل في ذلك المكان: داخل خط (مكان) البيانات التي يدخلها المستخدم (في المثال السابق وهو الاسم الأول الذي يطلب من قبل البرنامج ثم أدخلناه ) نضع الأوامر الأكثر شعبية للحاسوب، حيث هذه الأوامر تجعل الحاسوب يحدث(ينتج) هيكل نستطيع استخدامه فيما بعد للقيام بالسيطرة الكاملة للنظام المستغلّ. القيام بهذا العمل ليس بيسطا كما يبدو لك، إذن لو أردت معرفة كيف يعمل ، أنت يجب أن تقرأ المقالة القادمة حول Buffer Overflows، الذي سيصف بالضبط كيف لإستغلال واحده من الـBuffer Overflows في الإختراق.

اخيرا اتمنى انكم فهمتوا الدرس زين وعرفتوا ايش معنى Buffer Overflow واللي فهم الدرس نص نص يعيد قرائته اكثر من مرة مع التدقيق وانشالله يفهم.

انتهى،،،
الرجوع الى أعلى الصفحة اذهب الى الأسفل
 
" شرح معنى الـ Buffer Overflows"
الرجوع الى أعلى الصفحة 
صفحة 1 من اصل 1
 مواضيع مماثلة
-
» " شرح مختصر لإدارة الشبكة بإستخدام الامرNET "
» " برنامج تدمير المواقع WinSmurf "
» " تدمير المواقع بدون برامج "
» "الإختراق ببرنامج MungaBunga "
» " معلومات عن Routing in the Internet "

صلاحيات هذا المنتدى:لاتستطيع الرد على المواضيع في هذا المنتدى
No Love - The Official Site | | Friends Team :: •·.·´¯`·.·•Hackers•·.·´¯`·.·•-
انتقل الى: