TGViewer
Dagen | Security Dagen | Security @dagen_security · 856 subscribers
Post #288 1.05K
چجوری تونستم CTF فایل اپلود رو حل کنم و یه مفهوم امنیتی به دانشم اضافه کنم ؟

بیاین و فرض بگیرین زمانی که من یه عکس رو برای پست وبلاگم اضافه میکنم روی دکمه اپلود فایل کلیک کردم و توی چکی که با html داشت من اجازه داشتم فقط .png اپلود کنم .
درخواستمو با برپ رهگیری کردم و همچین درخواستی به سرور ارسال میشد با همچین بدنه ای :
form-data; name="file"; filename="photo.png"
content-type=image/png

PNG Byte


و در ریسپانس درخواست مسیری که فایل توی اون ادرس مینشست دقیقا به این حالت بود :

target/uploads/smfowmsfoeewofkewp.png


میخوام بدونم چک های امنیتی دقیقا کجاها هستند و چجوری میتونیم به نحوه ای اینارو بایپس کنیم ؟ سه نوع چک و تیک امنیتی توی اپلود فایل داریم :

1 - file extension name
2-content-type
3-magic byte


برای اولین قدم میخوام ببینم توی برپ سوییت اگه به جای png بزارم php ایا بایپس میشه ؟ نه
به من خطای اپلود رو میده و بهم ادرس فایل رو نمیده.

برای تست دوم سعی میکنم یه پسوند الکی بزارم مثل test و بله اپلود شد .
برنامه نویس از black list رو اجرا کرده که کار درستی نیست و نا امنه . چرا ناامنه ؟
چون برنامه نویس لیستی از اکستشن هایی که نباید اجرا بشه رو برای فایل اپلود گذاشته و من اگر بتونم اکستشنی توی بلک لیست نباشه و ولید باشه رو اپلود کنم میتونم یه سری دسترسی بگیرم .
برای تست سوم دست بردم به مجیک بایت (بایت عکس) و اگر بایتی رو از عکس کم یا زیاد میکردی اجازه اپلود نداشتی .


خب من جای خوبی برای تست دارم اولین کاری که میکنم سرچ میکنم که با چه پسوند هایی میتونم کد php رو اجرا کنم؟ یه لیست محدودی به من میده :

.php5 .php3 .phps .phtml .phar


دونه به دونه این اکستشن ها رو چک میکنم و تنها اکستشنی که دور میخورد این بود :
.phtml


خب من اسیپ پذیری رو زدم و کافی بود اخر مجیک بایت یه کد php بزارم و rce بگیرم .
ولی اینجا تموم نمیشه باید بریم سراغ ریشه .تمام سوال من اینه چرا فایل php با محتوای عکس اجرا میشه چه منطقی داره ؟

ببینید مرورگر چیزی به اسم اکستنشن رو نمیشناسه و براش فقط کانتنت تایپ و مجیک بایت مهمه پس چجوری فایل php اجرا میشه ؟
وب سرور فقط بر اساس اکستنشن چک میکنه و هر چیز اضافه تری رو نمیشناسه پس من وقتی زدم phtml وب سرور و انجین php متوجه شد که این یه پسوند ولید و معتبره و برای همین کامند اجرا شد و بایت عکس هم درون اون وجود داشت . دقت کنید اگر فایل شما درون داکیومت روت نشینه هیچوقت rce نداریم 🤌

همین نکته ریز و ساده میتونه به شما باگ بده و شما رو توی تحلیل فایل اپلود قوی تر کنه و اگر جایی برنامه نویس از بلک لیست برای چک اکستنشن استفاده کرده بود چشمتون رو تیز کنید 🌷

@Dagen_security
  • ❤ 33
  • 🔥 7
  • 👍 2
  • 👾 1
More from @dagen_security
  1. Sep 3, 2026کتابهای زیادی از سمت ما به لطف حمایت و همراهی تون ترجمه فارسی شده توی این پست براتون ۴ نقش…
  2. Jul 10, 2026چجوری با دستکاری لاگین تایپ(LoginType) 2factor رو دور زدم و اکانت تیک اور کردم سناریو این…
  3. Jul 2, 2026خب مثل اینکه انرژی برای یه برسی یه سناریو دیگه پایینه پایینه میتونیم کاتش کنیم ولی از اونج…
  4. Jul 1, 2026نام کتاب : IRAN'S Cyber Threat ✍مترجم : Typhon تاریخ انتشار : ۱۰ تیر ۱۴۰۵ #رایگان_برای_اعض…
  5. Jul 1, 2026اگه می‌خوای بدونی پشت پرده‌ی حملات سایبری منتسب به ایران چی می‌گذره، این کتاب دقیقاً همون…
  6. Jul 1, 2026ترجمه فارسی کتاب Iran Cyber Threats رو خوندم و عجیب و غریب به دل نشست ، کتاب کار درست و سن…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →