0Day.Today | Learn Exploit | Zero World | Dark web |
21.9K subscribers
1.26K photos
140 videos
551 files
1.35K links
☝️Iп Tнε Nαмε Oғ GOD☝️

Web Exploiting
& Server Hacking
Shell & Admin panel Access

priv8 Google hacking Dorks
new vul & bugs discovering & Tut


❗️0 day is today❗️

تبلیغات : @LearnExploitAds

IR0Day.Today
Download Telegram
📍 #LearnExploit #Ruls #IR0Day_Today #Boys

🖇 سلام خدمت دوستان عزیز
〽️ لطفا به گروه پرسش و پاسخ کانال
♻️ LearnExploit

جوین بدید.

📛قوانین :
✳️1 - لطفا سوالات و پاسخ خودتون رو در حد امکان در یک پیام بفرستید.
✳️2 - برای پرسیدن از #سوال و برای جواب دادن از #جواب استفاده کنید لطفا (از مدیران گپ هم خواهش میشود برای نظم بیشتر این موضوع را رعایت کنند.)
✳️3 - قابلیت ارسال مطلب هماهنگ با موضوع گپ موجود است (فقط تبلیغ ممنوع میباشد)
✳️4 - در صورت زیر سوال بردن هرگونه نژاد بدون استثنا از گروه حذف میشوید.

⚠️توجه :
دوستانی که تمایل به همکاری هستند (رکورد اموزشات کانال) پیام بدند.
برای حمایت از ما و کانال ،لطفا مطالب کانال رو نشر دهید با تشکر ادمین گروه اموزشی LearnExploit.

🌐کانال LeranExploit :
🆔 t.iss.one/LearnExploit
♏️ IR0Day.Today Boy's
💠لینک گروه LearnExploit :
⭕️ https://t.iss.one/joinchat/EZ1_aklcaz2WksX0aqevrw
📍 #LearnExploit #rules #IR0Day_Today #Boys

🖇 سلام خدمت دوستان عزیز
〽️ به گروه پرسش و پاسخ کانال
♻️ LearnExploit
خوش اومدین.


📛قوانین :
✳️1 - لطفا سوالات و پاسخ خودتون رو در حد امکان در یک پیام بفرستید.
✳️2 - برای پرسیدن از #سوال و برای جواب دادن از #جواب استفاده کنید لطفا (از مدیران گپ هم خواهش میشود برای نظم بیشتر این موضوع را رعایت کنند.)
✳️3 - قابلیت ارسال مطلب هماهنگ با موضوع گپ موجود است (فقط تبلیغ ممنوع میباشد)
✳️4 - در صورت زیر سوال بردن هرگونه نژاد بدون استثنا از گروه حذف میشوید.

⚠️توجه :
دوستانی که تمایل به همکاری هستند (رکورد اموزشات کانال) پیام بدند.
برای حمایت از ما و کانال ،لطفا مطالب کانال رو نشر دهید با تشکر ادمین گروه اموزشی LearnExploit.

🌐کانال LeranExploit :
🆔 t.iss.one/LearnExploit
♏️ IR0Day.Today Boy's
💠لینک گروه LearnExploit :
⭕️ @LearnExploit_Group
📍 #LearnExploit #rules #IR0Day_Today #Boys

🖇 سلام خدمت دوستان عزیز
〽️ لطفا به گروه پرسش و پاسخ کانال
♻️ LearnExploit

جوین بدید.

📛قوانین :
✳️1 - لطفا سوالات و پاسخ خودتون رو در حد امکان در یک پیام بفرستید.
✳️2 - برای پرسیدن از #سوال و برای جواب دادن از #جواب استفاده کنید لطفا (از مدیران گپ هم خواهش میشود برای نظم بیشتر این موضوع را رعایت کنند.)
✳️3 - قابلیت ارسال مطلب هماهنگ با موضوع گپ موجود است (فقط تبلیغ ممنوع میباشد)
✳️4 - در صورت زیر سوال بردن هرگونه نژاد بدون استثنا از گروه حذف میشوید.

⚠️توجه :
دوستانی که تمایل به همکاری هستند (رکورد اموزشات کانال) پیام بدند.
برای حمایت از ما و کانال ،لطفا مطالب کانال رو نشر دهید با تشکر ادمین گروه اموزشی LearnExploit.

🌐کانال LeranExploit :
🆔 t.iss.one/LearnExploit
♏️ IR0Day.Today Boy's
💠لینک گروه LearnExploit :
⭕️ @LearnExploit_Group
📍 #LearnExploit #rules #IR0Day_Today #Boys

🖇 سلام خدمت دوستان عزیز
〽️ لطفا به گروه پرسش و پاسخ کانال
♻️ LearnExploit

جوین بدید.

📛قوانین :
✳️1 - لطفا سوالات و پاسخ خودتون رو در حد امکان در یک پیام بفرستید.
✳️2 - برای پرسیدن از #سوال و برای جواب دادن از #جواب استفاده کنید لطفا (از مدیران گپ هم خواهش میشود برای نظم بیشتر این موضوع را رعایت کنند.)
✳️3 - قابلیت ارسال مطلب هماهنگ با موضوع گپ موجود است (فقط تبلیغ ممنوع میباشد)
✳️4 - در صورت زیر سوال بردن هرگونه نژاد بدون استثنا از گروه حذف میشوید.

⚠️توجه :
دوستانی که تمایل به همکاری هستند (رکورد اموزشات کانال) پیام بدند.
برای حمایت از ما و کانال ،لطفا مطالب کانال رو نشر دهید با تشکر ادمین گروه اموزشی LearnExploit.

🌐کانال LeranExploit :
🆔 t.iss.one/LearnExploit
♏️ IR0Day.Today Boy's
💠لینک گروه LearnExploit :
⭕️ @LearnExploit_Group
👍3
vless://[email protected]:43978?type=tcp&security=none#LearnExploit

آقا اینم بزنین عشق کنین ❤️‍🔥
۵۰ گیگه

——————
0Day.Today
@LearnExploit
@Tech_Army
❤‍🔥2👍1
𝗟 𝗲 𝗮 𝗿 𝗻 ‌ ‌ 𝗘 𝘅 𝗽 𝗹 𝗼 𝗶 𝘁
𝗥 ‌ ‌ ‌𝗬 ‌ ‌‌ 𝗦 ‌‌ ‌ 𝗢 ‌ ‌‌ 𝗡

رسیدیم دیگه به آخر داستان یعنی RAM ،
بیشتر نفوذ ها از همین جلو می‌ره ، حالا اصلا رم چی هست ؟ یه قطعه‌ی سخت‌افزاریه که روی مادربورد نصب میشه ، حالا چون توی گوشی قضیه فرق میکنه و مدار یکه هست روی مدار خورده شده ، و ظرفیتشون 4GB، 8GB، 16GB و… و این همون حافظه هست که برنامه‌ ها موقع اجرا استفاده می‌کنن ببین تو وقتی یه برنامه ای رو اجرا میکنی سیستم‌ عامل برنامه رو از حافظه داخلی همون استورج می‌خونه و اون رو داخل RAM کپی میکنه و CPU و GPU فقط از RAM داده‌ها رو می‌خونن، حالا برات سواله چرا اصلا رم ؟ چرا اس اس دی یا هارد یا چیز دیگه ای نه ؟ اگر سیستم بخواد مستقیم از حافظه داخلی کار بکنه برنامه‌ها چندین ثانیه تا یه دقیقه برای هر عملیات مکث می‌کردن و گوشی و کامپیوتر عملا غیرقابل‌ استفاده میشد ، حالا براتون سواله که SSD که سریعه ، ولی رم در لحظه چند ده نانو ثانیه سرعتشه و نکته دوم رم برای داده های لحظه ایه که در لحظه باید حساب شن در اصل RAM مثل یه دفتر یادداشت موقت سی پی یو هست و اطلاعاتی که در لحظه نیاز داریه ولی حافظه ی داخلی برای ذخیره سازی همیشگی و لحظه ای نیست و یعنی سرعت بالای RAM نتیجه همینه که داده رو موقت نگه میداره و بعد از خاموش شدن همه چی پاک میشه ولی storage باید داده رو برای همیشه نگه داره و این کار سرعت رو خیلی پایین میاره بعدشم اس اس دی یه حافظه بلند مدته و سرعتش کمتره این کاربرد و تعریف رم
حالا موقعی که ما یه برنامه رو ران میکنیم رم قسمتی از خودشو مثلا یه حجمی رو ، به اون برنامه میده برای بخش های مختلف برنامه ، توی ویندوز این قسمت ها به :
Thread Stack
Private Heap
Process Heap
Virtual Address Space
Code Segment (Text)
Initialized Data Segment
Uninitialized Data Segment (BSS)
PE Image Mapping
DLL Mapped Sections
Memory-mapped Files
Shared Memory Sections
Paged Pool
Non-Paged Pool
Kernel Stack
System Cache
Pagefile-backed Memory
Working Set
Session Space

و توی اندروید به :
Stack (Java)
Stack (Native)
Java Heap
Native Heap
Code Segment (Text)
Data Segment
BSS Segment
Memory-mapped Area (mmap)
Shared Libraries
Binder Buffers
Ashmem
ION Buffers
Gralloc Buffers
DMA Buffers
JIT Cache
ART / Dalvik Metadata
Zygote Shared Pages
Page Cache
Kernel Memory
Slab Allocator
vmalloc Area

اینا هر کدوم کارای بهش های مختلف اپلیکیشن و تابع هاشونو و ... هر کدوم کار خاص خودش رو میکنه اما کدوم مورد خطر شل کده ؟
توی اندروید فقط با
Native Stack
Native Heap

کار داریم و توی ویندوز فقط با
Thread Stack
Process Heap

کار داریم ، حالا این بخش هایی که در بالا گفتم در اصل زیرمجموعه ی 6 بخش هستند که در پارت بعدی میبینیم

@LearnExploit
@MR_RYSON
#LearnExploit
#RYSON
#shell
4❤‍🔥1
𝗟 𝗲 𝗮 𝗿 𝗻 ‌ ‌ 𝗘 𝘅 𝗽 𝗹 𝗼 𝗶 𝘁
𝗥 ‌ ‌ ‌𝗬 ‌ ‌‌ 𝗦 ‌‌ ‌ 𝗢 ‌ ‌‌ 𝗡

Part 2

ما توی اندروید 6 تا بخش رو داریم از جمله:
Text Segment
Data Segment
Heap
Memory-mapped Area
Stack
Kernel space

که کرنل اسپیس داخل فضای ادرس نیست ولی مصرف RAM سیستم هست
حالا این 6 بخش اصلی هر کدوم زیر مجموعه ای دارن که توی لیست زیر میتونید کل قسمت های رم رو نگاه کنید :

1 : Text Segment :
‌‌ ‌‌ ‌ ‌*App Code‌ ‌‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌‌ ‌‌ ‌ ‌ ‌
‌‌ ‌ ‌ ‌ ‌ ‌ ‌*Shared Libraries
‌‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌*ART / JIT Code
‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌*Read-Only Data (RODATA)
2 : Data Segment همون Global / Static
‌‌ ‌ ‌ ‌*Initialized Data
‌‌ ‌ ‌ ‌ ‌*BSS
‌ ‌ ‌ *Read-Only Data (RODATA)

3 : Heap
‌‌ ‌ ‌ ‌*Java Heap
‌‌ ‌ ‌ ‌ *Native Heap

4 : Memory-mapped Area
‌ ‌*mmap
‌‌ ‌ ‌*Ashmem
‌ ‌ ‌*Binder Buffers
‌ ‌ ‌‌ ‌ ‌ ‌*ION / DMA / Gralloc
‌‌ ‌ ‌ ‌ ‌ ‌ ‌‌ ‌*Zygote Shared Pages
‌‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌*Page Cache
‌‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ *JIT Cache

5 : Stack
‌ ‌*Java Stack
‌ ‌ ‌ ‌‌ ‌ ‌*Native Stack

6 : Kernel Space جزو فضای ادرس نیست
‌*Kernel Memory
‌‌ ‌ ‌ ‌*Slab Allocator
‌‌ ‌ ‌ ‌ ‌ ‌ *vmalloc Area

برای ویندوز هم شبیه اندرویده حالا باید توضیحات این 6 رو بدونید که هر کدوم چیه و چه کار میکنه و . . .
توی پارت بعدی
@LearnExploit
@MR_RYSON
#LearnExploit
#RYSON
#shell
#RAM
#RAMoverflow
3
𝗟 𝗲 𝗮 𝗿 𝗻 ‌ ‌ 𝗘 𝘅 𝗽 𝗹 𝗼 𝗶 𝘁
𝗥 ‌ ‌ ‌𝗬 ‌ ‌‌ 𝗦 ‌‌ ‌ 𝗢 ‌ ‌‌ 𝗡

اول از همه شما باید 6 بخش اصلی رم رو بشناسید ، حالا زیرمجموعه هاشو توضیح بدم طولانی میشه ولی کاری که هر بخش انجام میده رو خیلی ساده میگم

بخش کد برنامه Text Segment چیه وقتی برنامه تبدیل به صفر و یک میشه همون کد ماشین و باینری این کد ها باید جایی تو RAM قرار بگیرن تا CPU اونارو اجرا کنه پس سیستم‌عامل اونارو تو یه بخش ثابت از RAM میزاره و کارش خلاصه اینه که CPU از اینجا دستور می‌خونه و این بخش تنها بخش قابل اجرا است حالا این برنامه ای که میگیم چیه یه سری دستوره که به گوشی و کامپیوتر میگه چه کاری انجام بده مثل برو جلو و برگرد عقب و عددها رو جمع کن و متن چاپ کن و رنگ صفحه رو عوض کن و .... این دستورها باید توسط CPU اجرا بشن حالا این بخش سه چهار تا گذینه داره که رید اونلی دیتا رو بدونید بد نیست ، بخش Read-Only Data همون چیز های ثابته مثلا : GAME OVER یا Version 1.0 این‌ها قرار نیست تغییر کنن پس سیستم میزارشون تو بخشی که فقط قابل خوندنه مثل نوشتن یک متن با خودکار روی یک کاغذ که پاک نمیشه ، حالا توی برنامه ها و بازی ها همینه ، همیشه توی همشون متن هایی تعریف شدن که قرار نیست تغییر کنن
حالا Data Segment چیه ببین یه بخش از حافظه‌ ی برنامست که مخصوص متغیرهای global و static ساخته میشه ، متغیرهای global / static اگه برنامه‌ای داشته باشی که یه عدد همیشه نگه داشته‌ بشه مثلا تعداد امتیاز = ۰ یا اسم کاربر = "Ali" این‌ها باید از اول تا آخر کار برنامه زنده بمونن و پویا باشن پس سیستم‌عامل این‌ها رو در بخشی ذخیره می‌کند که همیشه موجوده
حالا دیتا سگمنت دو تا بخش داره:
بخش Initialized Data برای متغیرهایی که مقدار اولیه دارن
و بخش BSS که برای متغیرهایی که مقدار اولیه ندارن در اصل سیستم خودش صفرشون میکنه
حالا هیپ چیه ؟ ، هیپ ناحیه‌ای از حافظست برای داده‌هایی که طول عمرشون و اندازشون معلوم نیست میخواد بمونه یا نه مثلا وقتی توی اینستا یه عکس باز می‌کنی اندازه‌اش معلوم نیست و بزرگه و عکسا دائم میان و میرن پس باید توی یه جای بزرگی ذخیره بشن که اونم هیپه ، و داده هایی که بین بخش‌های مختلف برنامه به اشتراک گذاشته میشن و اینم بگیم که اختصاص و ازادسازی حافظه روی هیپ دستی انجام میشه و هیپ انعطاف‌پذیره و بزرگ‌تر از استکه، ولی کندتر و مستعد fragmentation و memory leak هست و عمر داده مستقل از فراخونی توابعه
استک چیه ؟ استک حافظه ایه که به ازای هر فراخوانی تابع استفاده میشه و هر بار که تابع صدا زده می‌شه، یک Stack Frame ساخته می‌شه که شامل متغیرهای محلی و پارامترها و ادرس بازگشت میشه ، و وقتی وقتی تابع تموم می‌شه، کل فریم یک‌جا آزاد و پاک میشه ، و مدیریتش کاملا خودکاره، خیلی سریع و اندازه‌اش محدوده و به‌صورت LIFO رشد و جمع می‌شه و معمولا به سمت ادرس‌ های پایین‌تر رشد میکنه خیلی ساده برات بگم استک جای داده‌های کوچک و موقتیه مثل جمع دو عدد توی توابع یه بازی این‌ها فقط در لحظه استفاده میشن و چند میلی‌ثانیه بعد پاک می‌شن پس می‌رن روی استک یه فضای سریع و کوچیک ،
بخش Memory-mapped Area
که همون ناحیه‌ ی map شدست و این بخش جاییه که برنامه می‌تونه فایل‌ها یا منابع خارجی رو مستقیم به حافظه خودش وصل کنه و به زبون ساده فرض کن یه فایل داری مثلا یه عکس یا کتابخونه ی سیستمی ، به‌ جای اینکه کلش رو بخونی و توی RAM کپی کنی، سیستم‌ عامل میگه که اقا باشه، من این فایل رو مثل یه تیکه از حافظه بهت نشون می‌دم و این کار باعث میشه برنامه خیلی سریع‌ تر و بهینه‌ تر به داده‌ها دسترسی داشته باشه
بخش فضای کرنل ، Kernel Space
این بخش مخصوص خود سیستم‌ عامله، نه برنامه‌ ها و ساده بگم سیستم‌عامل همون کرنل باید کنترل کامل روی سخت‌افزار و مدیریت حافظه داشته باشه برای همین یه بخش جدا از حافظه داره که فقط خودش می‌تونه بهش دسترسی داشته باشه و برنامه‌های معمولی نمی‌تونن مستقیم وارد کرنل اسپیس بشن، چون خطرناکه و ممکنه کل سیستم کرش کنه حالا چرا جزو ۶ بخش حافظست ولی از رم جداست ؟ چون برای سیستم عامل کرنل هست و برنامه های مثل هیپ نمیتونن بهش دسترسی داشته باشن
اگر حافظه بندی تلگرام رو مثل بزنیم میتونیم بگیم
کدهای خود تلگرام میشه قسمتی از Text
کتابخونه های libwebp و libjpeg میشن جزوی از Memory-mapped
چت‌ها و نام‌ها و ... جزوی از Data/Heap هستن و عکس‌هایی که باز میشه از بخش Heap هست و متغیرهای موقت داخل توابع تلگرام جزوی از Stack هستن
توی پارت بعدی میریم سراغ مفاهیم ، اصطلاح ها ، انواع حمله و ....
@LearnExploit

@MR_RYSON

#LearnExploit
#RYSON
#shell
#RAM
#RAM_overflow
3
𝗟 𝗲 𝗮 𝗿 𝗻 ‌ ‌ 𝗘 𝘅 𝗽 𝗹 𝗼 𝗶 𝘁
𝗥 ‌ ‌ ‌𝗬 ‌ ‌‌ 𝗦 ‌‌ ‌ 𝗢 ‌ ‌‌ 𝗡

Part 3

رسیدیم به پارت سه اینجا باید با اصطلاحایی که مربوط به آدرس ها و حملات و نوع حمله و ... آشنا بشید و معنی هاشون رو بدونید
بریم سراغ بافر
بافر یا Buffer یعنی یه فضای موقت تو حافظه که برنامه برای ذخیره داده ازش استفاده می‌کنه مثلا وقتی یک رشته string وارد برنامه می‌کنی، برنامه اون رو داخل یه بافر ذخیره می‌کنه ،
حالا اورفلو یعنی چی ، یعنی سرریز کردن ، زیاد شدن ، بیش از حد شدن ، بیرون ریختن داده

ببین حالا Buffer Overflow چیه اینجوری بگم که وقتی داده‌ای که وارد بافر می‌کنی بیشتر از ظرفیتش باشه باعث میشه که داده از بافر سرریز کنه و وارد بخش‌های دیگه‌ ی حافظه بشه اقا مثل اینکه بافر مثل یه لیوانه و داده زیاد همون آب اضافست وقتی بریزی سرریز میشه و این سرریز می‌تونه داده‌های دیگر برنامه یا حتی جریان اجرای برنامه رو خراب کنه پس بافراور فلو یعنی سرریز شدن داده و بیشتر شدنش از اون حافظه ای که براش تعیین شده یه مثال بزنم از بافر اورفلو
مثلا یه بافر ده بایتی داریم مثلا :
[A][B][C][D][E][F][G][H][I][J]
اگر 30 بایت داخلش بریزیم
[A][B][C][D][E][F][G][H][I][J][X][X][X][X]و...
این ۲۰ بایت اضافه وارد بخشای دیگه ی RAM می‌شه، مثل متغیرهای دیگر یا حتی ادرس‌ های استک این همون سرریز دیتا توی حافظه ی رمه،،
حالا ما دو نوع اورفلو داریم که در زیرتمومش رو توضیخ میدیم
1 : Buffer Overflow

* : Stack Buffer Overflow
همونطور که از اسمش معلومه روی Stack اتفاق میوفته جایی که متغیرهای محلی و پارامترهای تابع ذخیره میشن حالا دقیقا چه اتفاقی میوفته ؟ ببین وقتی داده‌ای بیشتر از اندازه‌ی بافر مثلا آرایه ، روی استک نوشته بشه، داده‌های اضافی می‌تونن روی بخش‌های دیگه‌ی استک مثل آدرس برگشت تابع که در ادامه میگیمش ، بریزن و وقتی ریخته شد ما میتونیم مسیر اجرای برنامه رو تغییر بدیم مثلا مسیر اجرای کد مخرب اگر هم بخوام براتون مثال بزنم این کد سی رو نگاه کن

char buf[10];
gets(buf); همینجا اگه بیشتر از ده تا کاراکتر وارد بشه باعث بافر اورفلو میشه

* : Heap Buffer Overflow
این حمله هم روی Heap اتفاق میوفته جایی که حافظه‌ی دینامیک با malloc/new گرفته میشه و وقتی داده‌ای بیشتر از اندازه‌ی حافظه‌ی تعیین شده نوشته بشه، داده‌های اضافی می‌تونن روی بخش‌های دیگه‌ی Heap یا Metadata بریزن و باعث خراب شدن ساختار مدیریت حافظه یا دسترسی به داده‌های دیگه میشه کد C زیر رو نگاه کن

char *buf = malloc(10);
strcpy(buf, "خب اگر نگاه کنی میفهمی که اینجا این رشته خیلی طولانیه"); که در نهایت باعث بافر اورفلو میشه

* Global / Static Overflow
این نوع بافر اورفلو روی Data Segment اتفاق میوفته جایی که متغیرهای global و static ذخیره میشن حالا اگه داده‌ ای بیشتر از اندازه‌ی تعریف‌شده برای متغیر global/static نوشته بشه، می‌تونه روی داده‌های دیگه تو Data Segment که قبلا توضیح دادیم بریزه و باعث تغییر داده‌های مهم برنامه یا ایجاد رفتار غیرمنتظره مثل

static char msg[5] = "ry";
strcpy(msg, "Ryson"); اینجا باعث بافر اورفلو روی بخش استاتیک میشه

* : Off-by-One Overflow
ببین وقتی برنامه‌نویس به اشتباه یه واحد بیشتر یا کمتر از اندازه‌ی واقعی آرایه یا بافر استفاده کنه بهش Off-by-One میگن که در واقع یه خطای مرزی به نام Boundary Error هست که این خطا می‌تونه باعث بشه حتی فقط ی بایت خارج از محدوده نوشته بشه و همین یک بایت اضافه می‌تونه داده‌های مجاور رو خراب کنه این نوع خطا معمولا روی Stack یا Heap اتفاق میوفته چون بافرها اغلب اونجا ذخیره میشن به این صورت :

char buf[10];
for (int i = 0; i <= 10; i++) {
buf[i] = 'A';
}

اینجا اشتباهه
چون اندیس‌های مجاز این بافر از 0 تا 9 هستن
و شرط حلقه باید کمتر از اندازه‌ی واقعی بافر باشه
@LearnExploit

@MR_RYSON

#LearnExploit
#RYSON
#shell
#RAM
#RAM_overflow
2🔥1
𝗟 𝗲 𝗮 𝗿 𝗻 ‌ ‌ 𝗘 𝘅 𝗽 𝗹 𝗼 𝗶 𝘁
𝗥 ‌ ‌ ‌𝗬 ‌ ‌‌ 𝗦 ‌‌ ‌ 𝗢 ‌ ‌‌ 𝗡

رسیدیم به نوع دوم و اخر اورفلو
2 : Arithmetic Overflow

اریتیمتیک اورفلو به سرریز شدن تو عملیات‌ های ریاضی گفته میشه مثل جمع، تفریق، ضرب و .... وقتی نتیجه‌ ی یه محاسبه از محدوده ای که نوع داده می‌تونه نگه داره بیشتر یا کمتر بشه ، اریتیمتیک اورفلو اتفاق میوفته ، این نوع اورفلو می‌تونه روی متغیرهای عددی signed یا unsigned هم رخ بده و توی متغیرهای unsigned
وقتی مقدار از حداکثر یا حداقل رد میشه عدد به صورت wrap around برمی‌گرده اما توی متغیرهای signed اریتیمتیک اورفلو میتونه باعث رفتار نامشخص یا Undefined Behavior بشه و حالا این نوع اورفلو علاوه بر اینکه باعث محاسبات اشتباه میشه می‌تونه تو محاسبه‌ ی اندازه‌ی بافر، offset یا تعداد تکرار حلقه‌ها و ... باعث ایجاد بافر اورفلو یا آسیب‌پذیری‌های دیگه بشه مثلا

unsigned int x = 4000000000;
x = x + 10;

که نتیجه‌ی محاسبه از محدوده‌ی نوع داده خارج شده
و باعث اریتیمتیک اورفلو میشه
حالا اریتیمتیک اورفلو یه نوع اصلی داره اونم اینتجر اورفلو هست که :
* Integer Overflow
خب اینتجر اورفلو زیرمجموعه ی اریتیمتیک اورفلو که مربوط به سرریز عددی هست اما بافراورفلو مربوط به سرریز بافر هست
این هم دو نوع داره که :
نوع اول Signed Integer Overflow که مربوط به سرریز اعداد علامت‌داره
ولی نوع دوم Unsigned Integer Overflow مربوط به سرریز اعداد بدون علامت یا wrap around هست و یه نکته داره اینه که علاوه بر سرریز عددی می‌تونه باعث بافر اورفلو هم بشه این نوع توی عملیات ریاضی روی متغیرهای عددی اجرا میشه که وقتی نتیجه‌ ی محاسبه بزرگ‌تر از محدوده‌ی نوع داده باشه، مقدار به اصلاح می‌پیچه که بهش میگن wrap around که در نهایت می‌تونه باعث محاسبات اشتباه یا حتی اسیب‌پذیری بشه مثلا تو محاسبه‌ ی اندازه‌ی بافر برای این هم مثال بزنیم که قابل فهم تر باشه

unsigned char x = 255;
x = x + 1; که مساوی صفر میشه و نتیجش اورفلو شدنه

@LearnExploit

@MR_RYSON

#LearnExploit
#RYSON
#shell
#RAM
#RAM_overflow
11🔥1
این سه تا باگ و خطا رو ببینید که میتونن به حملات تبدیل بشن ، که بعدش بریم سراغ اینکه که دقیقا چه اتفاقی میوفته بعد از اجرای شل کد
Format String Bug
ببین وقتی رشته‌ی فرمت مثل printf, scanf و ...به صورت مستقیم از ورودی کاربر گرفته بشه این اتفاق میوفته و توی Stack هست چون پارامترهای تابع روی استک ذخیره میشن و میتونیم با %x, %n و ... داده‌های حافظه رو بخونیم یا تغییر بدیم مثل

char input[100];
gets(input);
printf(input);
اینجا الان داستانه چون باید
printf("%s", input)
باشه

Use-After-Free
مخففش میشه UAF و وقتی برنامه بعد از آزاد کردن حافظه free دوباره از اون اشاره‌گر استفاده کنه اتفاق میوفته توی Heap هم هست چون حافظه‌ی دینامیک اونجا مدیریت میشه و میتونه داده‌های قدیمی یا داده‌های جدید برنامه‌های دیگه رو بخونه و بنویسه مثل :

char *p = malloc(10);
free(p);
strcpy(p, "RYSON");
اینجا هم مشکله استفاده بعد از ازادسازی هستش

Double Free
وقتی یه اشاره‌گر دوبار آزاد بشه همون free به وجود میاد این هم توی Heap هست و باعث میشه که ساختار مدیریت حافظه خراب بشه و میتونه باعثه اجرای شل کد بشه مثل

char *p = malloc(10);
free(p);
free(p);
اینجا دوباره آزاد شده

اینا همشون همگی جزو Memory Safety Bugs هستن یعنی باگ هایی که باعث میشن برنامه خارج از محدوده‌ی امن حافظه کار بکنه

به صورت کلی این ها :
Stack Buffer Overflow
Heap Buffer Overflow
Integer Overflow
Off-by-One
Global / Static Overflow
Format String Bug
Use-After-Free
Double Free

بیشتر هیپ و استک رو خراب میکنن

@LearnExploit

@MR_RYSON

#LearnExploit
#RYSON
#shell
#RAM
#RAM_overflow
❤‍🔥21
𝗟 𝗲 𝗮 𝗿 𝗻 ‌ ‌ 𝗘 𝘅 𝗽 𝗹 𝗼 𝗶 𝘁
𝗥 ‌ ‌ ‌𝗬 ‌ ‌‌ 𝗦 ‌‌ ‌ 𝗢 ‌ ‌‌ 𝗡

Underflow

اینم بگم بعد میریم سراغ شل کده
اورفلو رو گفتیم میریم سراغ اندرفلو
قبلا گفتیم اورفلو یعنی داده بیش از ظرفیت وارد میشود و به جلو سرریز می‌کنه ولی اندرفلو دقیقا برعکسشه حالا یعنی چی ؟ ببین توی اندرفلو داده یا اشاره‌گر کمتر از حد انتظار میشه و به عقب حرکت میکنه و برمیگرده حالا توی هر دو حالت هم اور هم اندر دسترسی به بخش‌های مختلف حافظه رو داریم ولی اور یکم شناخته شده تره
مثل اورفلو ما چند نوع اندرفلو داریم که خیلی سریع و خلاصه بهتون میگم :

1 : Buffer Underflow
وقتیه که برنامه انتظار داره داده‌ ای توی بافر باشه اما کمتر از اون رو میگیره و دریافت میکنه خوندن از قبل بافر باعث دسترسی به حافظه‌ی خارج از محدوده میشه
2 : Integer Underflow
وقتی یه عدد صحیح مثلا unsigned int کمتر از صفر بشه و به مقدار خیلی بزرگ تبدیل بشه انتجر اندرفلو اتفاق میوفته و این می‌تونه باعث تخصیص حافظه‌ ی اشتباه یا محاسبات نادرست و اشتباه بشه
3 : Stack Underflow
برای وقتیه که از Stack داده‌ ای برداشته میشه در حالی که چیزی توی اون وجود نداره و می‌تونه باعث دسترسی به ادرس‌ های محدود شده بشه یا باعث بازنویسی داده‌ های کنترلی بشه
4 : Heap Underflow
این وقتی اتفاق میوفته که اشاره‌گر یا عملیات روی Heap به عقب حرکت بکنه و برگرده و داده‌های متادیتا یا بلوک‌های دیگر را تغییر بده و این تغییر میتونه باعث نوشتن یا خوندن توی ادرس‌ های دلخواهمون بشه

البته میتونیم بگیم دقیقا مثل اورفلو میمونه هیپ و استک هم زیرمجموعه ی بافراورفلو هستن اینم بگم هم از اورفلو هم اندرفلو انواع خیلی بیشتری داریم ولی اینا معروف ترین و اصلی ترینشونه
@LearnExploit

@MR_RYSON

#LearnExploit
#RYSON
#shell
#RAM
#RAM_overflow
1👍1👏1