781
订阅者
无数据24 小时
-67 天
-3630 天
帖子存档
حرف از ایرانی بودن و اصالت وکوروش و کردار نیک و اینا میزنن
دروغ سیزده به در رو میگن دروغ 1 آوریل(همونایی که اعتراض میکردن میگفتن چرا ما نمیتونیم کریسمس و هالوین رو جشن بگیریم عید دیگه حال نمیده مثل قدیم)
این سورسو که چند وقت پیش گزاشتم الان چک کردم 102 تا پرایوت شیر خورده
دوست دارید اپدیتش بکنم؟
🟠مطمئنا وقتی یک برنامه به زبون سی داریم که داره یکسری محاسبات رو حل میکنه اولین چیزی که میاد تو ذهنمون چیه؟ overflow
💎 حالا صورت برنامه چیه؟
در برنامه، زمانی که میخوایم خرید کنیم، برنامه هزینه کل را محاسبه میکنه اگر تعداد "Sekkeh" ها بیشتر از ۱۰ باشه، دستور
system("cat /flag")
اجرا میشه و فایل flag رو نمایش میده بمون، اما برای اینکه بتونیم این آسیبپذیری رو بهرهبرداری کنیم، باید یک overflow در محاسبات بزنیم. این overflow باید باعث بشه که هزینه کل به اندازهای کوچک محاسبه بشه که برنامه اجازه خرید بده بمون.
💔 نحوه حمله چجوریه؟
1️⃣ قیمت "Sekkeh" برابر با 80000000 تومنه.
2️⃣ هدف ما اینه که تعداد "Sekkeh" را به شکلی وارد کنیم که حاصل ضرب قیمت در تعداد (۸۰۰۰۰۰۰۰ * تعداد) در سیستم به گونهای محاسبه بشه که هزینه کل صفر (یا عددی کمتر از اعتبار) شود.
3️⃣ در محاسبات برنامه، از نوع عددی int برای محاسبه هزینه استفاده کردند که به صورت معمول 32 بیتیه. بنابراین اگر حاصل ضرب قیمت در تعداد بزرگتر از 2^32 (42949672367) بشه، این مقدار overflow میکنه و در واقع به صورت ماژول ۲^۳۲ محاسبه میشه.
4️⃣ اگر تعداد "Sekkeh" را عددی وارد کنیم که حاصل ضرب قیمت آن(80000000 * تعداد) به مقدار صفر برسه، برنامه دور زده میشه و فکر میکنه ما خرید کردیم.
⚙️ حل دقیق حمله به چه شکل خاد بود؟
⭕️ برای اینکه overflow رخ بده، باید تعداد "Sekkeh" ها را طوری تنظیم کنیم که حاصل ضرب قیمت در تعداد در فضای ۳۲ بیتی overflow بکنه. این overflow به این معنیه که نتیجه حاصل ضرب بیش از حد بزرگ شده و صفر میشه.
اگر تعداد "Sekkeh" ها برابر با 4194304 باشه، حاصل ضرب به صورت زیر محاسبه میکنیم:
80000000 × 4194304 = 335544323200000و اگر این عددو در فضای 32 بیتی حساب کنیم، نتیجه نهایی برابر با صفر خواهد بود (چون 2^32 برابر با 42949672367 است) 😂 حالا کافیه فقط با نت کت وصل بشیم به سروری که بمون داده بود و محصول 7 رو انتخاب کنیم و مقدار 4194304 رو وارد کنیم سپس Checkout کنیم تا فلگ رو بهمون بده 👍 اگر دوست داشتید لینک کانال رو بدید به دوستاتون بیاریدشون گه گداری که تایمم خالیه سعی میکنم چیزای این مدلی بزارم
🔴 چلنج ما یک کد به زبون سی داده بهمون و ی ادرس سرور که بهش وصل شیم و این برنامه روش در حال اجراعه
🖥 این کدیه که بهمون داده
#include <stdio.h>
#include <stdint.h>
#include <stdlib.h>
#define NUM_SEENS 7
typedef struct {
char name[20];
int price;
} Seen;
int credit;
void displayMenu(Seen seens[]);
void addToBasket(Seen seens[], int quantities[]);
void checkout(Seen seens[], int quantities[]);
Seen seens[NUM_SEENS] = {
{"Sabzeh", 30000},
{"Senjed", 20000},
{"Seer", 20000},
{"Seeb", 10000},
{"Samanu", 35000},
{"Serkeh", 40000},
{"Sekkeh", 80000000}
};
void topup(){
puts("na bassete");
}
int main() {
int quantities[NUM_SEENS] = {0};
int choice;
credit = 1000000;
setbuf(stdin,NULL);
setbuf(stdout,NULL);
do {
puts("Shop Menu:");
puts("1. Add to Basket");
puts("2. Checkout");
puts("3. Top up");
puts("4. Exit");
printf("Enter your choice: ");
scanf("%d", &choice);
switch (choice) {
case 1:
addToBasket(seens, quantities);
break;
case 2:
checkout(seens, quantities);
break;
case 3:
topup();
case 4:
return 0;
default:
puts("Invalid choice. Try again.");
}
} while (choice != 3);
return 0;
}
void displayMenu(Seen seens[]) {
puts("Available 7 Seens:");
for (int i = 0; i < NUM_SEENS; i++) {
printf("%d. %s - %d Toman\n", i + 1, seens[i].name, seens[i].price);
}
}
void addToBasket(Seen seens[], int quantities[]) {
int item, qty;
displayMenu(seens);
printf("Enter item number to add (1-7): ");
scanf("%d", &item);
if (item < 1 || item > NUM_SEENS) {
puts("Invalid item.");
return;
}
printf("Enter quantity: ");
scanf("%d", &qty);
if (qty < 1) {
puts("Invalid quantity.");
return;
}
quantities[item - 1] += qty;
printf("Added %d %s(s) to your basket.\n", qty, seens[item - 1].name);
}
void checkout(Seen seens[], int quantities[]) {
int total = 0;
puts("Your Basket:");
for (int i = 0; i < NUM_SEENS; i++) {
if (quantities[i] > 0) {
printf("%s - %d item = %d Toman\n", seens[i].name, quantities[i], seens[i].price * quantities[i]);
total += seens[i].price * quantities[i];
}
}
printf("Total: %d\n",total);
if(total > credit){
puts("Not enough credit.");
exit(0);
}
if(quantities[6] > 10){
puts("oh... pole ke mirize...");
system("cat /flag");
}
puts("Thank you ~~ Have a nice Nowruz!");
exit(0);
}دیشب تا صبح ctf میزدم ی ctf ایرانی هم بود که هنوزم در حال برگزاریه تا ساعت 5 امروز هم در دسترسه به ادرس
https://1404.fmc.tf
چندتاشو حل کردم از همه قشنگ ترشون یدونه بافر اور فلو بود که بعد از اتمام تایم مسابقه رایت اپشو میزارم
خواستید هم میتونید تیممیت من بشید و حل کنید
https://1404.fmc.tf/login?token=OKYX56wC1w%2FC%2BgFp6WagQ2GOEtMs3iW8pHgPi6xWGJ8NcMUY7mpXw7IJiTxOTd%2FifrCBDV%2FQ76r1tN9eg4WKAu1bmYguGHl6DzHdkEOm%2FYpBf%2B5Bc%2Btu9oDOhtVN
Repost from 𝐒𝐄𝐍𝐀𝐓𝐎𝐑 𝐀𝐏𝐈 | تیم سناتور | سناتور وب | وب سرویس
ربات چالش اطلاعات ایران کویز 🆕
طراحی ربات بصورت اینلاین ➡️
امکان اجرای بازی در پیوی و گروه ها 🔗
امکان انتخاب دسته بندی سوال توسط کاربر➡️
امکان انتخاب تعداد سوال توسط کاربر❓
امکان انتخاب زمان هر سوال توسط کاربر⏱
امکان انتخاب سطح چالشی بودن سوال توسط کاربر👻
بدون محدودیت در تعداد اعضای بازی 🔸
امکان دریافت راهنما در بازی ⚠️
دریافت امتیاز با ارسال سوال در ربات 💰
توجه: به دلیل تعداد کم سوالات در دسته بندی ها، بطور موقت دسته بندی های (موسیقی-حیوانات) آماده بازی می باشند
همچنین امکان تعیین سطح چالش سوالات به دلیل تعداد کم سوالات امکان پذیر نیست
اگرم پیشنهاد برای ربات داشتید پیویم بگید
درصورت مشاهده مشکل پیوی مراجعه کنید
⚡️ ID : @IRQuizBot
Repost from 𝐒𝐄𝐍𝐀𝐓𝐎𝐑 𝐀𝐏𝐈 | تیم سناتور | سناتور وب | وب سرویس
ربات چالش اطلاعات ایران کویز 🆕
طراحی ربات بصورت اینلاین ➡️
امکان اجرای بازی در پیوی و گروه ها 🔗
امکان انتخاب دسته بندی سوال توسط کاربر➡️
امکان انتخاب تعداد سوال توسط کاربر❓
امکان انتخاب زمان هر سوال توسط کاربر⏱
امکان انتخاب سطح چالشی بودن سوال توسط کاربر👻
بدون محدودیت در تعداد اعضای بازی 🔸
امکان دریافت راهنما در بازی ⚠️
دریافت امتیاز با ارسال سوال در ربات 💰
توجه: به دلیل تعداد کم سوالات در دسته بندی ها، بطور موقت دسته بندی های (موسیقی-حیوانات) آماده بازی می باشند
همچنین امکان تعیین سطح چالش سوالات به دلیل تعداد کم سوالات امکان پذیر نیست
اگرم پیشنهاد برای برات داشتید پیویم بگید
درصورت مشاهده مشکل پیوی مراجعه کنید
⚡️ ID : @IRQuizBot
