PDA

View Full Version : سر ریز بافر



benyamin_pc
پنج شنبه 02 فروردین 1386, 03:14 صبح
این چی هست؟در چه هنگام رخ می ده؟چطوری میشه ازش استفاده کرد و به امکانات ویندوز به راحتی دست یافت؟

ICEMAN
جمعه 03 فروردین 1386, 03:45 صبح
did you ever use www.google.com
توی همین جا هم مقالات و اگه اشتباه نکنم فیلم های آموزشی هم هست

american_iran2006
جمعه 03 فروردین 1386, 11:10 صبح
سلام ::

سر ریزه بافر کی انجام میشه ::

این بر میگرده به پشته :: فکر کن ما یک ظرف 5 لیتری داریم وتوش 10 لیتر اب ذخیره کنیم

خوب معومه این اب بیرون میریزه :::: به این میگن سرریزه بافر

در مورده سوال اخرتون :: شما یا در حاله نوشتن شل کد هستید یا یه چیزی شبیه این ::

بگید تو چه زمینه ای می خواید شاید تونستم مقالشو بزارم (اگه اونی که میخوای پیدا کردم)

benyamin_pc
یک شنبه 05 فروردین 1386, 02:14 صبح
اینو که میدونم اما چه عاملی باعث میشه که پشته پر شه؟عملا" باید چی کار کنیم تا اینجوری شه بعدشم که شد حالا چطوری ازش استفاده کنیم؟

CodeMasterX
یک شنبه 05 فروردین 1386, 04:36 صبح
بیا عزیز این لینک ها رو بگیر و بخون خالی از لطف نیستن:

Buffer Overflow - Stack Overflow
http://doc.bughunter.net/buffer-overflow/

What is Buffer Overflow
http://searchsecurity.techtarget.com/sDefinition/0,290660,sid14_gci549024,00.html

McAfee Buffer Overflow - The Why And How
http://www.mcafee.com/us/local_content/white_papers/wp_ricochetbriefbuffer.pdf

Buffer Overflow - By Wikipedia
http://en.wikipedia.org/wiki/Buffer_overflow

american_iran2006
یک شنبه 05 فروردین 1386, 11:00 صبح
بیبن پشته بیشتر برای بار گ
ذاری توابع به کار می رن :: یعنی در هنگان اجرای برنامه :: زمانی که میرسه به یک تابع چی میشه

اون تابع در پشته بار گذاری میشه

خوب حالا چی جوری بارگذاری میشه :: اول از همه return هست که یعنی این که بعد از اتمام

تابع به اولین دستوره بعد در برنامه هدایت بشه ::: بعدیش ارگومان هاست و هر چی دیگه بمونه یک فضایی هست برای متغییر های محلی بکار برده میشه

حالا فکر کن این متغییر؛ارایه محلیه ما 10 تا اندیس داره :: خوب برای این که به سریز بوجود بیاد از توابعی استفاده می شه که در مدیریت ضعیفی داره تو کنترل متغییر ها مثل

strcat:::gets:::memcpy::scanf:::,................. ..................

خوب وقتی اندازه ارایه 10 باشه و متغییری که در اون کپی بشه 700 تا باشه چی میشه؟؟

سرریز اتفاق میافته :: یعنی فپایی که برای متغغیر ها در پشته در نظر گرفته شده پر میشه و بقیش وارد فضای ارگومان ها و قسمت return میشه و حالا فکر کن این ها که وارد میشن

یک سری دستورات ماشین باشه و به return بگه بعد از اتمام تابع این جا برو و این یکی برنامرو اجرا کن!!

دقیقن به همین صورت انجام میشه ::: حالا احتمال داره شما ادرسی که تو حافظه حدس زده اید

اشتباه باشه یعنی یکم خطا داشته باشه :: اون وقت میان برای از بین بردن این احتمال دستورات ماشین رو تو دستورات هرزه قرار میدن ::: دستورات هرزه دستوراتی هست که هیچ ضرری برای برنامه ندارن مثل nop که قدیما از همین دستور استفاده میکردن :::

اما از اون جایی که سیستم مزاحمت یاب IDS به nop هایی که پشتش دستورات ماشین باشه حساس شده اند و به اونوان مزاحمت در نظر میگیرند اومدن به جایه nop از دستورات هرزه دیگه مثل MOV EAX,EAX استفاده میکنند

میبینید که EAX رو در خودش cut کرده یعنی انگار هیچ کاری نکرده (دستورات هرزه)

با این روش خطایی که تو حدس زدنه ادرس حافظه داشتید از بین میبره

benyamin_pc
دوشنبه 06 فروردین 1386, 02:24 صبح
خوب ویندوز با توابعش در حال اجرا هستند اینجا اگه بخواهیم پشته رو سر ریز کنیم تو کدوم آرایه؟تو کدوم تابع؟چجوری می تونیم مقداری بریزیم؟آرایه کجاست که ما بخواهیم توش بیش از حد چیزی ذخیره کنیم؟
حالا سر ریز شد-اون تیکه کدی که گذاشتیم با زبان ماشین برنامه ویندوز را به کدوم خط برنامه بفرسته؟مگه ما می دونیم تو چه IP از دستورات چه برنامه ای هست؟که ip رو اون قرار بدیم؟

american_iran2006
دوشنبه 06 فروردین 1386, 11:50 صبح
تو ویندوز ها به dll ها مراجعه میکنند ::

یعنی شما یک باگ در dll ها پیدا میکنید و بعد با دستوره bind یک پورت رو دستگاهش باز میکنید و به اون باگ دستوراتتونو تزریق میکنید

اما تو لینوکس فرق داره

به این لینک هم یه سر بزن :: باری powerboy هستش

http://www.powerboy2988.persianblog.com/

Abalfazl
جمعه 28 فروردین 1388, 09:04 صبح
یک مقاله کامل 35 صحفه ای به زبان پارسی در مورد Buffer overflow

http://amir87.persiangig.com/document/Buffer%20Overflow.pdf
http://estakhrian.blogfa.com
شامل تشریح کامل نحوه ایجاد Buffer overflow ، کد مخرب ، جلوگیری از Buffer overflow و...