بنابراین من یک چالش سرریز ساده بافر را ایجاد کردم و سعی کردم آن را بر روی یک قطره دیجیتالیسی میزبانی کنم. منبع چالش در زیر آمده است ، و با استفاده از gcc Welcome.c -fno-stack-protection -no-pie -o Welcome .

 #include 
#includ 

int main (باطل)
    setvbuf (stdout، NULL، _IONBF، 0)؛
    نام کاراکتر [25]؛
    printf ("نام شما چیست؟")؛
    می شود (نام)
    printf ("خوش آمدید به pwn ،٪ s!  n" ، نام)؛
    بازگشت 0؛
}

پرچم خالی ()
    پرچم کاراکتر [50]؛
    FILE * stream = fopen ("flag.txt" ، "r")؛
    fjet (پرچم ، 50 ، جریان)؛
    printf ("٪ s" ، پرچم)؛
}

بطور محلی چالش در Docker در حال انجام است ، من می توانم از سوءاستفاده هایی که در اینجا دیده می شود استفاده کنم. تلاش برای استفاده از آن از طریق اتصال netcat ، اما کار نمی کند! تمام پرونده هایی که برای میزبانی چالش از آنها استفاده می کنم را می توان در اینجا یافت. از هرگونه کمک یا راهنمایی دیگری قدردانی می شود. من بخش بزرگی از روز را در این مورد گیج کرده ام.

سؤال پاداش ، چرا باینری بعد از اتمام روی سرور از راه دور آویزان می شود تا اینکه کاربر بازدید کند. ممکن است setvbuf نادرست باشد؟ اگر کسی می توانست این موضوع را توضیح دهد عالی خواهد بود! من نسبتاً با این چیزها تازه هستم.