PDA

View Full Version : سوال: آیا هکر می تونه اطلاعات فایل که داخل آرایه $_FILE قرار می گیره رو تغییر بده؟



idocsidocs
یک شنبه 11 دی 1390, 17:33 عصر
آیا هکر می تونه اطلاعات فایل که داخل آرایه $_FILE قرار می گیره رو تغییر بده؟

irGeek
یک شنبه 11 دی 1390, 17:43 عصر
بستگی داره تا منظورتون چی باشه؟
اگه هکر بتونه فایل آپلود کنه میتونه تغییرش بده.
یادمه تو شبگرد یکی با همین ترفند سایت یک زوج خواننده رو باین روش ترکوند(فکر کنم نیوک بود)!

idocsidocs
یک شنبه 11 دی 1390, 18:23 عصر
منظورم توی آپلود سنتر هست.

من برای تست کردن سایر تصاویر از این آرایه استفاده می کنم و وقتی فایل رو بخوام ذخیره کنم اسم فایل رو تغییر می دم. الان می خوام بدونم که سایز فایل رو چطور و از چه راهی بدست بیارم که مطمئن باشه؟

irGeek
یک شنبه 11 دی 1390, 22:02 عصر
در وبلاگ آقای کرامتی یک مقاله در مورد امنیت بود تونستی بخونش!

CsT
دوشنبه 12 دی 1390, 04:36 صبح
بله امکانش هست میتونید از پروکسی سرور هایی مثل Burp یا از پلاگین های Tamper Data یا Live HTTP Header مرورگر فایرفاکس استفاده کنید، اما معمولاً این کار در آپلود سنتر هایی که از اسکریپت های حاضر استفاده میکنند (اشاره به ریپلای irGeek در مورد هک شدن سایت 25Band) منوط به داشتن باگ در اون اسکریپته که در اون مورد خاص آپلودر برای مشهد تیم بود و آسیب پذیری داشت اما در کل این روش بسیار رایجه و مفید !!!!! D:

idocsidocs
دوشنبه 12 دی 1390, 11:18 صبح
دوستان مطالبی که گفتید درسته اما آرایه فایل وقتی مقادیر درونش قرار می گیرن که فایل توی سرور قرار بگیره و آپلودش تموم بشه.

در این صورت یه هکر چطور می تونه هدرها رو تغییر بده؟

CsT
دوشنبه 12 دی 1390, 11:36 صبح
اگه هاردکد نشده باشده میتونی Man In The Middle بزنی با همون برنامه ها یا پروکسی سرورها! دقیقاً چیو میخوای تغییر بدی؟ اگه به سایتت دسترسی داشته باشه میتونه اونم تغییر بده ! (اِ ِ ه ه !!!!)

idocsidocs
دوشنبه 12 دی 1390, 13:04 عصر
اگه هاردکد نشده باشده میتونی Man In The Middle بزنی با همون برنامه ها یا پروکسی سرورها! دقیقاً چیو میخوای تغییر بدی؟ اگه به سایتت دسترسی داشته باشه میتونه اونم تغییر بده ! (اِ ِ ه ه !!!!)

من برای امنیت آپلود سنتر، اسم و پسوند رو با توابع preag_match و ... چک می کنم، فقط برای سایز تصویر مشکل دارم.

برای سایز تصویر چه کار باید بکنم؟

CsT
دوشنبه 12 دی 1390, 13:18 عصر
والا من تو کارهای خوب سررشته ندارم، اما برعکسش رو چرا، برا عکس نمیدونم! شاید باید فایل فرمت عکس ها رو یه ورقی بزنی، یا چه بهتر که سورس یکی از همین آپلودر هارو نگاه کنی، ریگولارم مطمئن نیستم اما فکر میکنم قابلیت آسیب پذیر شدن رو داشته باشه.

امیـرحسین
دوشنبه 12 دی 1390, 14:26 عصر
من می‌دونم با سوکت میشه هر جور هدری ارسال کرد ولی اطلاعات زیادی ندارم. به هر حال...

برای فایلهای لوکال مثل فایلهای آپلودی این کد با اینکه سنگینه ولی مطمئنه:

$file = './a.php';
$realSize = strlen( file_get_contents($file) );
برای فایلهایی که براشون URL وجود داره (مثل فایل روی سرورهای دیگه یا فایلهای عمومی لوکال) این راه سریعه:

$url = 'http://example.com/a.ext';
$headers = get_headers($url);
$length = array();
foreach($headers as $header)
if(substr($header, 0, 16) == 'Content-Length: ')
$length[] = substr($header, 16);
$realSize = max($length);
علت استفاده از آرایه برای گرفتن بیشترین مقدار استفاده شده به عنوان Content-Length بوده (برای هدرهای تکراری یا دستکاری شده) وگرنه کد زیر ساده‌تر عمل میکنه:

$url = 'http://example.com/a.ext';
$headers = get_headers($url, true);
$realSize = $headers['Content-Length'];