PDA

View Full Version : گفتگو: بهترین راه برای حل مشکل shell Upload



h.rezaee
شنبه 14 بهمن 1391, 19:33 عصر
سلام . از شما دوستان می خواستم بهترین روش رو برای جلوگیری از sheel Upload رو بگید. ممنون میشم

siavashsay
شنبه 14 بهمن 1391, 21:17 عصر
1- استفاده از یک Black List برای Extension فایل ها !
با استفاده از یک array میتونید پسوند فایلهایی رو که نمیخواید رو داخل اون بریزید و در موقع آپلود چک کنید ببینید اون پسوند داخل آرایه هست یا نه ! اگر نبود فایل آپلود شه !
2- استفاده از یک White List برای Extension فایل ها !
( گزینه 1 )
3 - استفاده از Mime فایل ها در موقع Upload
برای آپلود یک فایل باید به پسوند اون بسنده کرد ! چرا که پسوند رو میشه دستکاری کرد ! برای اینکار میتونید نوع Mime فایل رو گرفته و اون رو چک کنید که مثلا اگر image/png بود فایل آپلود شه در غیر اینصورت خیر !
4- Rename کردن فایل ها در هنگام آپلود !
بعد از آپلود کردن فایل میشه پسوند اون رو از نام اون جدا کرد! مثلا اگر فایلی به نام image.png دارید میتونید اون رو 2 تکه کنید !
image - png ! یک متغیر ساخته و Image ( نام فایل ) رو داخل اون ریخته و یک متغیر دیگه ساخته و png (پسوند ) رو داخل اون بریزید !
بعد چک کنید اگر مثلا
if($ext==png){$setExt==png}; و بعد اون رو به متغیر نام فایل بچسبونید
$newFile=$fileName.".".$setExt;
اینکار برای این هست که خیالتون راحتتر شه ! حتی میتونید نام فایل رو به طور دلخواه انتخاب کنید !
5- مشخص کردن سایز برای فایل های آپلودی !
مثلا برای عکسها حداقل 50 کیلوبایت ! چون یک فایل txt که حاوی کدهای مخرب هست به مقدار زیادی متن نیاز داره که به 50 کیلوبایت برسه
=======
البته این فقط اطلاعات بنده بود ! امیدوارم دوستان هم اطلاعات بهتری رو عنوان کنند :)
موفق باشید

eshpilen
شنبه 14 بهمن 1391, 22:16 عصر
sheel Upload چیه دیگه؟
منظورت Shell بوده؟

eshpilen
شنبه 14 بهمن 1391, 22:17 عصر
مثلا برای عکسها حداقل 50 کیلوبایت ! چون یک فایل txt که حاوی کدهای مخرب هست به مقدار زیادی متن نیاز داره که به 50 کیلوبایت برسه

محدودیت حداقل حجم ندیده بودیم تاحالا که دیدیم :لبخند:
بابا این چه ایده ای هست دیگه که دادی!!
کاملا اشتباه و ناشیانه میباشد.

siavashsay
شنبه 14 بهمن 1391, 22:21 عصر
کاملا اشتباه و ناشیانه میباشد. ممنون - تشکر :قهقهه:
دیگه عادت کردم بهت ! اگه جز این میگفتی ناراحت میشدم ! :قهقهه:
اما میخوام بدونم پس چرا توی فرم های آپلود یک حداقل سایز مشخص کردن ؟!
فک نمیکنی به خاطر همین موضوع باشه ؟!

MMSHFE
شنبه 14 بهمن 1391, 22:41 عصر
بحث حداقل اندازه که تقریباً غیرمنطقی هست (شرمنده اینجوری گفتم، قصد جسارت ندارم). اما یک مورد که فکر کنم برای امنیت آپلود فراموش کردین بگین، عدم اجازه آپلود فایلهایی با پسوند چندگانه هست. مثلاً virus.exe.jpg که بهتره اینجور فایلها رو به اسامی مثل virus-exe.jpg تغییر نام بدین و بعد ذخیره کنید.

colors
شنبه 14 بهمن 1391, 23:15 عصر
نمیدونم کدوم تاپیک بود، ولی eshpilen عزیز ایناهمشو بررسیو توضیح داده بود. شایدم سایت پی اچ پی ایران بود!

eshpilen
یک شنبه 15 بهمن 1391, 08:33 صبح
اما میخوام بدونم پس چرا توی فرم های آپلود یک حداقل سایز مشخص کردن ؟!
کدوم فرم آپلود؟ مال کدوم سایت؟
توی اینترنت پره از چیزهای ناشیانه و اشتباه. دلیل نمیشه چون کسی یا کسانی این کار رو کردن درست باشه یا هوشمندانه/راه اصولی/تنها راه باشه.

میزان حجم عکس هم فقط به سایزش ارتباط نداره. بلکه ممکنه یه تصویری سایزش هم استاندارد باشه ولی بخاطر طراح خاصی که داره و زیاد فشرده میشه، حجمش از 50 کیلوبایت هم کمتر باشه.
اونوقت چکار باید بکنن مردم؟ برن حجم فایلشون رو زیاد کنن؟ :لبخند:

ضمنا زیاد کردن حجم شل هم که کاری نداره. یه مقدار کامنت توش اضافه میکنیم حجمش بقدر کافی زیاد بشه!

siavashsay
یک شنبه 15 بهمن 1391, 09:57 صبح
عدم اجازه آپلود فایلهایی با پسوند چندگانه هست. مثلاً virus.exe.jpg که بهتره اینجور فایلها رو به اسامی مثل virus-exe.jpg تغییر نام بدین و بعد ذخیره کنید.
با تشکر از جناب شهرکی ! اما تو قسمت توضحیات جهت rename کردن فایل توضیح دادم :لبخندساده:

MMSHFE
یک شنبه 15 بهمن 1391, 13:49 عصر
بله دیدم ولی احساس کردم تأکید جداگانه روی بحث پسوندهای چندگانه بخصوص با ارتباطی که با موضوع تاپیک داره، لازم باشه.

h.rezaee
یک شنبه 15 بهمن 1391, 19:01 عصر
کدوم فرم آپلود؟ مال کدوم سایت؟
توی اینترنت پره از چیزهای ناشیانه و اشتباه. دلیل نمیشه چون کسی یا کسانی این کار رو کردن درست باشه یا هوشمندانه/راه اصولی/تنها راه باشه.

میزان حجم عکس هم فقط به سایزش ارتباط نداره. بلکه ممکنه یه تصویری سایزش هم استاندارد باشه ولی بخاطر طراح خاصی که داره و زیاد فشرده میشه، حجمش از 50 کیلوبایت هم کمتر باشه.
اونوقت چکار باید بکنن مردم؟ برن حجم فایلشون رو زیاد کنن؟ :لبخند:

ضمنا زیاد کردن حجم شل هم که کاری نداره. یه مقدار کامنت توش اضافه میکنیم حجمش بقدر کافی زیاد بشه!
دوست عزیز آقا/خانم eshpilen ممنون میشم اگر منبع ، مطلبی و .... که میدونید رو بگید.

FastCode
یک شنبه 15 بهمن 1391, 19:03 عصر
با file (http://en.wikipedia.org/wiki/File_%28command%29) جلوی script ها رو بگیر
یه چیزی به اسم پرمیشن هم تقریبا 40 سال قبل اختراع شده که میتونی 0600 یا 0400 بزاری

محدودیت حجم یه مقدار خیلی مسخرست
کسی که شل أپلود میکنه معمولاً آدمه و آدم ها پیغام خطا رو میخونن
افرادی هم که شل مینویسن کامنت هم بلدن بنویسن


Edit:
chroot
LXC
SELinux
inetd
setuid
setgid
suhosin
....
فراموش نشه

OS ه سرور چیه؟
lsb_release -a
uname -a


این یکی رو یادم رفت:
http://oss.digirati.com.br/fkdepth/

h.rezaee
یک شنبه 15 بهمن 1391, 19:18 عصر
با file (http://en.wikipedia.org/wiki/File_%28command%29) جلوی script ها رو بگیر
یه چیزی به اسم پرمیشن هم تقریبا 40 سال قبل اختراع شده که میتونی 0600 یا 0400 بزاری

محدودیت حجم یه مقدار خیلی مسخرست
کسی که شل أپلود میکنه معمولاً آدمه و آدم ها پیغام خطا رو میخونن
افرادی هم که شل مینویسن کامنت هم بلدن بنویسن


Edit:
chroot
LXC
SELinux
inetd
setuid
setgid
suhosin
....
فراموش نشه

OS ه سرور چیه؟
دوست عزیز بنده هیچ چیز از این مطالب شما نفهمیدم ممنون میشم یک کم واضح تر بگید!

siavashsay
یک شنبه 15 بهمن 1391, 19:21 عصر
یه چیز دیگه !
شما میتونید با استفاده از htaccess جلوی اجرای یه سری فایلهای دلخواه رو بگیرید !
نمونه کدش رو این تاپیک گذاشتم :
http://barnamenevis.org/showthread.php?382322-10-%DA%A9%D8%AF-%D9%85%D9%81%DB%8C%D8%AF-%D8%A8%D8%B1%D8%A7%DB%8C-htaccess-!-%28-%D9%82%D8%B3%D9%85%D8%AA-%D8%AF%D9%88%D9%85-%D9%85%D8%B3%D8%A7%D8%A6%D9%84-%D8%A7%D9%85%D9%86%DB%8C%D8%AA%DB%8C-%29

MMSHFE
یک شنبه 15 بهمن 1391, 22:21 عصر
دوست عزیز آقا/خانم eshpilen ممنون میشم اگر منبع ، مطلبی و .... که میدونید رو بگید.
یکم با برنامه Advanced JPEG Compressor کار کنید متوجه میشین. یک عکس رو با پروفایل Screenshot فشرده کنید. میبینید بدون افت کیفیت و با همون اندازه، حجمش تا کمتر از نصف کاهش پیدا میکنه.

SlowCode
یک شنبه 15 بهمن 1391, 23:03 عصر
سلام
دوستان میشه فایل رو به صورت متنی باز کنیم و اگه توش کدهای php بود خطا بدیم. این از لحاظ امنیتی مشکلی ایجاد میکنه به نظرتون؟

behz4d
دوشنبه 16 بهمن 1391, 00:39 صبح
تمامی این کارهای بالا یه طرف، اینکه توی دایرکتوری که میخوای فایلهایتو آپلود کنی این htaccess رو بزاری یک طرف دیگه!

php_flag engine 0
RemoveHandler .phtml .php .php3 .php4 .php5 .php6 .phps .cgi .exe .pl .asp .aspx .shtml .shtm .fcgi .fpl .jsp .htm .html .wml
AddType application/x-httpd-php-source .phtml .php .php3 .php4 .php5 .php6 .phps .cgi .exe .pl .asp .aspx .shtml .shtm .fcgi .fpl .jsp .htm .html .wml
حتی اگر طرف بتونه تمامی راه‌ها رو دور بزنه و بالاخره فایل php رو آپلود کنه، این htaccess بالا نمیزاره توی اون دایرکتوری فایلهای php تفسیر بشن...

siavashsay
دوشنبه 16 بهمن 1391, 10:09 صبح
سلام
دوستان میشه فایل رو به صورت متنی باز کنیم و اگه توش کدهای php بود خطا بدیم. این از لحاظ امنیتی مشکلی ایجاد میکنه به نظرتون؟
نیازی نیست !
خدمتتون عرض کردم که از MIME فایل استفاده کنیم بهتره ! اگر اون فایل تکست یا فایلی به جز عکس بود آپلود نشه ( توجه شه که MIME فایل با Extension پسوند فایل فرق میکنه )

eshpilen
دوشنبه 16 بهمن 1391, 10:29 صبح
اشپیلن داداشی بیا یه کاری کنیم :
شما با تمام تلاش امنیتیت یه فرم آپلود عکس توی یه فولدر از سایت وردپرس ت بذار و منم با تمام تلاشم داخلش شل آپلود می کنم.(خودت بنویس)
حالا چرا همون سایت ورپرسم؟
مشکوک میزنی :متفکر:
نه باید روی یه هاست دیگه بذارم بدون وردپرس.
احتمالا از حفرهء وردپرس میخوای نفوذ کنی :چشمک:
هاست دیگه هم ندارم.
به کسی هم اعتماد ندارم.
بعدم از کجا معلوم از راه دیگه مثل خود سرور نفوذ نکردی؟
دلیل نمیشه که!
شما راه نفوذ داری خب مطرح کن بررسیش کنیم.
وگرنه با این هکر بازیها چیزی عاید کسی نمیشه.
یا شایدم از برنامه ای چیزی استفاده میکنی بدون اینکه خودت ازش سردربیاری!

راستی همون روشی که آقای شهرکی قبلا گفته بود بنظرم امنیت زیادی میده.
منظورم همون عبور دادن محتویات فایل از داخل کتابخانهء GD هست.
البته من خودم یک فایل ساختم که از این روش هم عبور کرد، ولی فرمتش معمولا توی فرمتهای آپلودی نیست.

FastCode
دوشنبه 16 بهمن 1391, 10:36 صبح
http://httpd.apache.org/docs/2.2/suexec.html
این هم خیلی موثره
اگر به هر شکلی کدی اجرا بشه
با این روش نمیتونه تاثیری بزاره
یه کار دیگه هم که باید بکنید غیر فعال کردن شل کاربرهای ... www-data mysql pgsql..... از فایل ه /etc/passwd
اگر میخوای خیلی به طرف حال بدی ゛/dev/urandom یزار

S.ahmad.mirzai
یک شنبه 06 اسفند 1391, 00:14 صبح
به نظر بنده حقیر :
به این دلیل حجم فایل ها رو چک می کنن که:
یکی از راه های هک کردن سایت ها از طریق پر شدن حافظه هارد میشه که باعث میشه سایت Down بشه.به این دلیل چک میکنن حجم زیادی رو سرور آپ نشه

FastCode
یک شنبه 06 اسفند 1391, 00:41 صبح
به نظر بنده حقیر :
به این دلیل حجم فایل ها رو چک می کنن که:
یکی از راه های هک کردن سایت ها از طریق پر شدن حافظه هارد میشه که باعث میشه سایت Down بشه.به این دلیل چک میکنن حجم زیادی رو سرور آپ نشه
ربطی به مینیمم اندازه نداره.
من هنوز نشنیدم هارد سرور رو با تعداد بالای inode بشه DoS کرد

رضا قربانی
یک شنبه 06 اسفند 1391, 23:03 عصر
عدم اجازه آپلود فایلهایی با پسوند چندگانه هست. مثلاً virus.exe.jpg که بهتره اینجور فایلها رو به اسامی مثل virus-exe.jpg تغییر نام بدین و بعد ذخیره کنید.
با تشکر از جناب شهرکی ! اما تو قسمت توضحیات جهت rename کردن فایل توضیح دادم :لبخندساده:
ما شاالله - بعد از چند روز چقدر پست پاک شد ، مدیران کم است و کاربر زیاد
بگذریم
به نظر شما شل رو تغییر نام بدید شل اجرا نمیشه ؟؟؟؟؟؟؟
با یه افزونه کوچیک موزیلا با این راهنمایی هایی که کردی طی مدت زمان 30 ثانیه میشه شل آپلود و بعد اجراش کرد (میدونم این پیام هم حذف میشه) :لبخند:




پ . ن : لطفا قوانین فعالیت در سایت را مطالعه نمایید : کدوم قسمت از قانون رو باید بخونم ؟ ممنون میشم موقع حذف کردن شماره قانون هم بذارید.

siavashsay
دوشنبه 07 اسفند 1391, 10:09 صبح
با یه افزونه کوچیک موزیلا با این راهنمایی هایی که کردی طی مدت زمان 30 ثانیه میشه شل آپلود و بعد اجراش کرد
حتی بعد از rename کردن فایل ؟!

e601
دوشنبه 07 اسفند 1391, 14:56 عصر
سلام

سوال من اینه که فرض کنید سایتی داریم که برای درج مطلب توسط اعضا از یک ادیتور متن مثل tinymce استفاده کنه و در اون امکان درج تصویر هم وجود داشته باشه. آیا امکان داره که یک هکر توسط قرار دادن آدرس یه تصویر(که فرض کنیم شل هست) سایت رو هک کنه و یا مورد حمله قرار بده؟

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

به نظر خودم از این طریق کسی نمیتونه حمله خطرناکی انجام بده چون اگه آدرس تصویر در یه سایت دیگه ای باشه که به سایت ما مربوط نیست و برای ما مشکلی نمیتونه ایجاد کنه. اگر هم تصویر رو قبلا در سایت خودمون آپلود کرده باشه و الان بخواد آدرسش رو در ادیتور قرار بده که باز هم مشکلی نمیتونه داشته باشه چون ما قبلا زمان آپلود موارد امنیتی رو رعایت کردیم.(یعنی انشالله که رعایت کردیم :چشمک:)

SlowCode
دوشنبه 07 اسفند 1391, 22:26 عصر
سلام

سوال من اینه که فرض کنید سایتی داریم که برای درج مطلب توسط اعضا از یک ادیتور متن مثل tinymce استفاده کنه و در اون امکان درج تصویر هم وجود داشته باشه. آیا امکان داره که یک هکر توسط قرار دادن آدرس یه تصویر(که فرض کنیم شل هست) سایت رو هک کنه و یا مورد حمله قرار بده؟

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

به نظر خودم از این طریق کسی نمیتونه حمله خطرناکی انجام بده چون اگه آدرس تصویر در یه سایت دیگه ای باشه که به سایت ما مربوط نیست و برای ما مشکلی نمیتونه ایجاد کنه. اگر هم تصویر رو قبلا در سایت خودمون آپلود کرده باشه و الان بخواد آدرسش رو در ادیتور قرار بده که باز هم مشکلی نمیتونه داشته باشه چون ما قبلا زمان آپلود موارد امنیتی رو رعایت کردیم.(یعنی انشالله که رعایت کردیم :چشمک:)
فرمت شل اگه اجرایی نباشه یعنی htm,html,php نباشه اجرا نمیشه! و حتما باید رو هاست قربانی آپلود بشه.
فکر نکنم از این راه بشه(البته به نظر من:متفکر:)

حتی بعد از rename کردن فایل ؟! افزونه ای که آقای قربانی گفتن اسمش http live header هست، اگه امنیت کد شما پایین باشه هکر میاد اول فرمت شل رو مثلا به gif تبدیل میکنه بعد با این افزونه فرمت php رو عوض gif میفرسته بعد اگه شما آدرس فایل آپلود شده رو بهش بدی کار تمومه:لبخند:
ولی اگه شما سمت سرور فایل رو چک کنی مشکلی پیش نمیاد، روش های مقابله باهاش رو هم خیلی بهتر از من بلدین.

h.rezaee
چهارشنبه 05 تیر 1392, 19:36 عصر
سلام. دوستان ممنون از همه شما که در این زمینه راهنمایی هاتون رو انجام دادید. بنده چنتا سوال دارم . یکی از اونا اینه :
1. همون جوری که دوستمون گفتن چه جوری میشه با file جلو اسکریپت ها رو گرفت؟

رضا قربانی
یک شنبه 09 تیر 1392, 10:09 صبح
ما که هر راهنمایی کردیم پستمون پاک شد . الکی وقت گرفتنه :لبخند:

h.rezaee
یک شنبه 09 تیر 1392, 10:41 صبح
ما که هر راهنمایی کردیم پستمون پاک شد . الکی وقت گرفتنه :لبخند:
سلام آقا رضا. ممنونم . آره ولی نمیدونم چرا. :متفکر:
شاید باهاتون دشمنی دارن!!!!!!!!!!!!!!!!!!!!!:عصبانی:
ممنون میشم باز هم راهنمایی بفرمایید.