آیا بهتر است قبل از بارگذاری تصاویر پسوند آنها تغییر کند؟

0

شرح دهید آیا بهتر است قبل از بارگذاری تصاویر پسوند آنها تغییر کند؟

حسین برخورداری سوال پاسخ داده شده اکتبر 12, 2020
گذاشتن نظر
0

شرح دهید آیا بهتر است قبل از بارگذاری تصاویر پسوند آنها تغییر کند؟

با تشکر از شما برای بازدید از OWASP.org. ما اخیراً انجمن خود را به یک بستر وب جدید منتقل کرده ایم و متأسفانه محتوای این صفحه باید به صورت برنامه نویسی از صفحه ویکی قبلی آن منتقل شود. هنوز چند کار برای انجام وجود دارد.

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

عواقب بارگذاری پرونده بدون محدودیت می تواند متفاوت باشد ، از جمله تصرف کامل سیستم ، سیستم پرونده یا پایگاه داده بیش از حد مجاز ، حملات حمل و نقل به سیستم های back-end ، حملات سمت مشتری یا آسیب رساندن ساده. این بستگی به این دارد که برنامه با فایل بارگذاری شده چه کاری انجام می دهد و به خصوص در جایی که ذخیره شده است.

در اینجا در واقع دو کلاس مشکل وجود دارد. اولین مورد با فراداده پرونده ، مانند مسیر و نام پرونده است. این موارد معمولاً از طریق حمل و نقل ، مانند رمزگذاری چند بخشی HTTP ، ارائه می شوند. این داده ها ممکن است برنامه را فریب دهد تا یک فایل مهم را رونویسی کند یا پرونده را در مکان بد ذخیره کند. قبل از استفاده از ابرداده باید با دقت بسیار زیادی اعتبار سنجی کنید.

طبقه دیگر مشکل مربوط به اندازه یا محتوای پرونده است. دامنه مشکلات در اینجا کاملاً بستگی به کاربرد پرونده دارد. برای چند ایده در مورد سو how استفاده از پرونده ها ، به مثال های زیر مراجعه کنید. برای محافظت در برابر این نوع حمله ، باید همه کارهایی که برنامه شما با پرونده انجام می دهد را تجزیه و تحلیل کنید و به دقت در مورد پردازش و تفسیر آن فکر کنید.
عوامل خطر

  • تأثیر این آسیب پذیری زیاد است ، کد احتمالی را می توان در متن سرور یا در سمت مشتری اجرا کرد. احتمال شناسایی برای مهاجم زیاد است. شیوع آن شایع است. در نتیجه شدت این نوع آسیب پذیری زیاد است.
  • برای بررسی صحیح خطرات ، مهم است که کنترل های دسترسی ماژول بارگذاری پرونده را بررسی کنید.
  • حملات سمت سرور: با بارگذاری و اجرای پوسته وب که می تواند دستورات را مرور کند ، به مرور فایل های سیستم بپردازد ، به منابع محلی بپردازد ، به سایر سرورها حمله کند یا از آسیب پذیری های محلی استفاده کند ، و غیره می تواند به سرور وب آسیب برساند.
  • حملات سمت مشتری: بارگذاری پرونده های مخرب می تواند وب سایت را در برابر حملات سمت مشتری مانند XSS یا Cross-site Content Hijacking آسیب پذیر کند .
  • هنگام استفاده از پرونده موجود در همان سرور یا یک سرور معتبر ، می توان از پرونده های بارگذاری شده برای سو exploاستفاده از سایر بخشهای آسیب پذیر یک برنامه سو استفاده کرد (دوباره می تواند منجر به حملات سمت کلاینت یا سمت سرور شود)
  • پرونده های بارگذاری شده ممکن است آسیب پذیری هایی را در کتابخانه ها / برنامه های خراب در سمت مشتری ایجاد کند (به عنوان مثال سرریز بافر iPhone MobileSafari LibTIFF).
  • پرونده های بارگذاری شده ممکن است باعث آسیب پذیری کتابخانه ها / برنامه های خراب در سمت سرور شود (به عنوان مثال نقص ImageMagick که ImageTragick نامیده می شود!).
  • پرونده های بارگذاری شده ممکن است باعث آسیب پذیری ابزارهای مانیتورینگ بلادرنگ (مثلاً سو eg استفاده از آنتی ویروس Symantec با بسته بندی یک پرونده RAR شود)
  • یک فایل مخرب مانند اسکریپت پوسته یونیکس ، ویروس ویندوز ، فایل اکسل با فرمول خطرناک یا پوسته معکوس می تواند بر روی سرور بارگذاری شود تا بعداً توسط مدیر یا مدیر وب سایت – در دستگاه قربانی ، کد اجرا شود.
  • یک مهاجم ممکن است بتواند یک صفحه فیشینگ را در وب سایت قرار دهد یا وب سایت را از بین ببرد.
  • ممکن است از سرور ذخیره سازی پرونده برای میزبانی از پرونده های دردسرساز از جمله بدافزارها ، نرم افزارهای غیرقانونی یا محتوای بزرگسالان سو استفاده شود. پرونده های بارگذاری شده همچنین ممکن است حاوی داده های کنترل و کنترل بدافزارها ، پیام های خشونت و آزار و اذیت یا داده های استگانوگرافی باشد که می توانند توسط سازمان های جنایی استفاده شوند.
  • پرونده های حساس بارگذاری شده ممکن است توسط افراد غیر مجاز قابل دسترسی باشد.
  • آپلودکننده های پرونده ممکن است اطلاعات داخلی مانند مسیرهای داخلی سرور را در پیام های خطای خود فاش کنند.

مثال ها
حملات به سیستم عامل

  • پرونده .jsp را در وب درخت بارگذاری کنید – کد jsp به عنوان کاربر وب اجرا می شود
  • پرونده .gif را بارگذاری کنید تا تغییر اندازه یابد – از نقص کتابخانه تصویر سوited استفاده شده است
  • پرونده های عظیم را بارگذاری کنید – فضای سرویس پرونده محروم است
  • پرونده را با استفاده از مسیر یا نام مخرب بارگذاری کنید – یک پرونده مهم را بازنویسی کنید
  • پرونده حاوی داده های شخصی را بارگذاری کنید – سایر کاربران به آن دسترسی پیدا می کنند
  • بارگذاری پرونده حاوی “برچسب” – برچسب ها به عنوان بخشی از “درج شده” در یک صفحه وب اجرا می شوند
  • پرونده .rar را بارگذاری کنید تا توسط آنتی ویروس اسکن شود – فرمان اجرا شده بر روی سروری که نرم افزار ضد ویروس آسیب پذیر را اجرا می کند

حمله به سیستم های دیگر

  • پرونده .exe را در وب درخت بارگذاری کنید – قربانیان قابل اجرا هستند Trojaned اجرایی
  • پرونده آلوده به ویروس را بارگذاری کنید – دستگاههای قربانیان آلوده شده اند
  • بارگذاری پرونده .html حاوی اسکریپت – تجارب قربانی برنامه نویسی بین سایت (XSS)
  • پرونده jpg را بارگذاری کنید که حاوی یک شی Flash است – بزه دیدگان محتوای مختلف را با هواپیما ربایی می کنند.
  • پرونده .rar را بارگذاری کنید تا توسط آنتی ویروس اسکن شود – فرمان اجرا شده بر روی کلاینتی که از نرم افزار ضد ویروس آسیب پذیر استفاده می کند

محافظت ضعیف و روشهای دور زدن
تکمیل پرونده های افزودنی لیست را رد کنید
این محافظت ممکن است توسط:

  • پیدا کردن برنامه های افزودنی فراموش شده که می توانند در سمت سرور اجرا شوند یا از طرف سرویس گیرنده خطرناک باشند (به عنوان مثال “.php5” ، “.pht” ، “.phtml” ، “.shtml” ، “.asa” ، “.cer” ، “.asax” ، “.swf” یا “.xap”).
  • یافتن اشکال در پیکربندی وب سرور هنگامی که پرونده ها را با پسوندهای دوتایی تجزیه می کند یا آنها را با ارائه یک پسوند حساس بعد از یک مرز جداکننده مانند “/” یا “؛” نویسه (به عنوان مثال “/file.jpg/index.php” وقتی فایل “file.jpg” حاوی کد PHP است و بارگذاری شده است)
    • در Apache ، یک پرونده php ممکن است با استفاده از تکنیک پسوند دوگانه مانند “file.php.jpg” هنگام مجاز بودن “.jpg” اجرا شود.
    • در IIS6 (یا نسخه های قبلی) ، می توان یک فایل اسکریپت را با استفاده از یکی از این دو روش اجرا کرد:
      • با اضافه کردن یک کاراکتر نیمه کولون بعد از پسوند ممنوع و قبل از مجاز مجاز (به عنوان مثال “file.asp؛ .jpg”)
      • با تغییر نام پسوند پرونده اسکریپت (به عنوان مثال “.asp”) به یک پسوند مجاز (به عنوان مثال “.txt”) در پوشه ای که نام آن با پسوند اسکریپت به پایان می رسد (به عنوان مثال “folder.asp \ file.txt”). در ویندوز می توان با استفاده از آپلود کننده پرونده و ADS (Alternate Data Stream) یک دایرکتوری ایجاد کرد. در این روش ، یک نام پرونده که با “:: $ Index_Allocation $” یا “: $ I30: $ Index_Allocation $” پایان می یابد باعث می شود که بارگذارنده پرونده به جای یک پرونده ، یک فهرست ایجاد کند (به عنوان مثال “folder.asp :: $ Index_Allocation” “پوشه .asp ”به عنوان دایرکتوری).
  • تغییر تعداد حروف به فرم های بزرگ آنها برای دور زدن قوانین حساس به حروف بزرگ (مثلا “file.aSp” یا “file.PHp3”).
  • با استفاده از ویژگی ویندوز 8.3 ، امکان جایگزینی پرونده های موجود با استفاده از نام کوتاه آنها وجود دارد (به عنوان مثال “web.config” می تواند با “web ~ 1.con” یا “.htaccess” با “HTACCE ~ 1” جایگزین شود)
  • یافتن کاراکترهایی که در طی فرایند بارگذاری پرونده به نویسه های مفید دیگر تبدیل می شوند. به عنوان مثال ، هنگام اجرای PHP بر روی IIS ، کاراکترهای “>” ، “<” و دو نقل قول “به ترتیب به”؟ “،” * “و” “تبدیل می شوند. نویسه هایی که می توانند برای جایگزینی پرونده های موجود استفاده شوند (به عنوان مثال “وب <<” می تواند جایگزین پرونده “web.config” شود). به منظور قرار دادن نویسه نقل قول مضاعف در نام پرونده در یک درخواست بارگذاری پرونده عادی ، نام پرونده در هدر “Content-Disposition” باید از نقل قول های منفرد استفاده کند (به عنوان مثال filename = “web” config “برای جایگزینی فایل” web.config “) )
  • یافتن نویسه های خنثی بعد از یک نام پرونده مانند فاصله ها و نقاط عقب مانده در سیستم فایل ویندوز یا نویسه های نقطه و برش در سیستم فایل لینوکس. این نویسه ها در انتهای نام پرونده به طور خودکار حذف می شوند (به عنوان مثال “file.asp……. .. ..” ، “file.asp” یا “file.asp.”). گرچه نویسه های اسلش یا اسلش معمولاً نویسه های مشکل آفرینی هستند ، اما می توان آنها را در یک درخواست بارگذاری پرونده معمولی نادیده گرفت ، قبل از اینکه این کاراکترها به عنوان نام دایرکتوری سمت سرور حساب شوند. که گفته شد ، آنها باید برای یک تست کامل (مثلا “test.php /” یا “test.php.”) امتحان شوند.
  • یافتن اشکال در تکنیک های تشخیص پسوند. یک وب سرور ممکن است از پسوند اول بعد از اولین نقطه (“.”) در نام پرونده ارائه شده استفاده کند یا از الگوریتم ناقص برای تشخیص پسوند در صورت عدم وجود چند کاراکتر یا چند نقطه استفاده کند (به عنوان مثال “file.txt.jpg.php”) .
  • استفاده از نویسه های کنترلی مانند نویسه null (0x00) پس از یک پسوند ممنوع و قبل از یک مجاز مجاز ممکن است منجر به بای پس شود. در این روش ، تمام رشته های بعد از نویسه Null هنگام ذخیره پرونده ها کنار گذاشته می شوند. هر دو نسخه رمزگذاری شده و رمزگذاری شده URL از نویسه خالی باید در یک درخواست بارگذاری پرونده برای یک آزمایش کامل امتحان شوند.
  • استفاده از جریان داده متناوب NTFS (ADS) در ویندوز. در این حالت ، یک شخصیت دونقطه “:” بعد از پسوند ممنوع و قبل از یک مجاز مجاز درج می شود. در نتیجه ، یک پرونده خالی با پسوند ممنوع در سرور ایجاد می شود (به عنوان مثال “file.asax: .jpg”). این پرونده ممکن است بعداً با استفاده از تکنیک های دیگر مانند استفاده از نام پرونده کوتاه ویرایش شود. الگوی “:: $ data” همچنین می تواند برای ایجاد پرونده های غیر خالی استفاده شود. بنابراین ، اضافه کردن یک کاراکتر نقطه بعد از این الگو ممکن است برای دور زدن محدودیت های بیشتر نیز مفید باشد (به عنوان مثال. “file.asp :: $ data.”)
  • نقص در مکانیسم محافظت وقتی که جایگزین برنامه های افزودنی خطرناک می شود. به عنوان مثال ، “file.p.phphp” ممکن است پس از گذراندن این قابلیت به “file.php” تغییر یابد.
  • نقص در استفاده از پرونده بارگذاری شده به عنوان مثال هنگامی که یک برنامه PHP از عملکرد “شامل” برای نمایش تصاویر بارگذاری شده استفاده می کند.
  • ترکیبی از تکنیک های فوق.

ضرب و شتم getimagesize ()
تابع getimagesize () بررسی می کند که آیا یک تصویر است یا خیر و “mime” را برای تأیید نوع تصویر بررسی می کند.

تنظیمات ناامن:

 <FilesMatch ".+\.ph(p([3457s]|\-s)?|t|tml)">  SetHandler application/x-httpd-php  </FileMatch>

پیکربندی امن:

 <FilesMatch ".+\.ph(p([3457s]|\-s)?|t|tml)$">  SetHandler application/x-httpd-php  </FileMatch>

اگر سرویس با پیکربندی ناامن در حال اجرا باشد ، هر کسی می تواند عملکرد getimagesize را با نوشتن نظرات در پرونده GIF شکست دهد.

برای این منظور کاربر نهایی باید برنامه ای را در سیستم عامل کالی / اوبونتو به نام “gifsicle” نصب کند.

 For Kali Linux : apt-get install gifsicle  For Ubuntu : sudo apt-get install gifsicle

پس از نصب ، دستورات زیر به نوشتن دستورات در پرونده gif کمک می کنند.

 gifsicle < mygif.gif -- comment "

<؟ php echo ‘نسخه فعلی PHP:’. phpversion ()؛ ؟>

“> output.php.gif

دستور بالا فایلی را با نام “output.php.gif” ایجاد می کند که به سادگی باید بارگذاری شود تا بررسی آسیب پذیری آپلود پرونده انجام شود.
فهرست کردن برنامه های افزودنی پرونده مجاز است
برنامه هایی که با استفاده از روش فهرست مجاز ، پسوندهای پرونده را بررسی می کنند ، برای جلوگیری از هرگونه دور زدن بایستی نام کامل فایل را تأیید کنند.

  • لیست برنامه های افزودنی مجاز باید بررسی شود زیرا همچنین می تواند حاوی برنامه های افزودنی مخربی باشد. به عنوان مثال ، در صورت داشتن “.shtml” در لیست ، برنامه می تواند در برابر حملات SSI آسیب پذیر باشد.
  • برخی از تکنیک های بای پس برای روش های انکار لیست مانند استفاده از پسوندهای مضاعف در اینجا نیز قابل استفاده هستند و باید بررسی شوند.

اعتبار سنجی عنوان “نوع محتوا”
موجودی “نوع محتوا” در عنوان درخواست نوع رسانه اینترنتی محتوای پیام را نشان می دهد. بعضی اوقات برنامه های وب برای شناسایی یک پرونده به عنوان یک پرونده معتبر ، از این پارامتر استفاده می کنند. به عنوان مثال ، آنها فقط پرونده ها را با “نوع محتوا” از “متن / ساده” می پذیرند.

  • می توان با تغییر این پارامتر در هدر درخواست با استفاده از پراکسی وب ، این محافظت را دور زد.

با استفاده از ردیاب نوع پرونده
گاهی اوقات برنامه های وب به طور عمدی یا ناخواسته از برخی توابع (یا API) برای بررسی انواع پرونده ها برای پردازش بیشتر آنها استفاده می کنند. به عنوان مثال ، هنگامی که یک برنامه یک فایل تصویر را تغییر اندازه می دهد ، ممکن است هنگام بارگذاری پرونده های غیر تصویری بدون ذخیره آنها در سرور ، پیام خطایی را نشان دهد.

  • اگر چند نویسه اول (یا هدرها) را بخواند ، می توان با وارد کردن کد مخرب بعد از برخی از هدرهای معتبر یا در فراداده پرونده ، از آن عبور کرد.
  • درج کد در قسمت نظرات یا بخشهایی که هیچ تاثیری روی پرونده اصلی ندارند نیز می تواند منجر به بای پس شود.
  • اگر برنامه با استفاده از الگوها یا امضاهای خاص کد مخربی را شناسایی کند ، داده های درج شده می توانند مبهم یا رمزگذاری شوند.
  • پرونده بارگذاری شده می تواند در صورت فشرده شدن توسط برنامه ، کدی مخرب ایجاد کند.

موارد تست جالب دیگر

  • وقتی پرونده دیگری با همین نام از قبل وجود دارد ، پرونده را بارگذاری می کنید. این ممکن است پیام های خطای جالبی را نشان دهد که می تواند منجر به افشای اطلاعات شود. اگر برنامه نام فایل جدید را تغییر دهد تا روی سرور باقی بماند ، نقص منطقی پیدا می شود.
  • هنگامی که پوشه دیگری با همین نام از قبل وجود دارد ، پرونده را بارگذاری می کنید. این ممکن است پیام های خطای جالبی را نشان دهد که می تواند منجر به افشای اطلاعات شود.
  • بارگذاری فایلی با نام طولانی. این ممکن است پیام های خطای جالبی را نشان دهد که می تواند منجر به افشای اطلاعات شود.
  • بارگذاری همزمان یک پرونده چند بار این ممکن است پیام های خطای جالبی را نشان دهد که می تواند منجر به افشای اطلاعات شود.
  • بارگذاری پرونده های معتبر و نامعتبر در قالب های مختلف مانند پرونده های فشرده یا XML برای شناسایی هرگونه پردازش احتمالی در سمت سرور.
  • در حال بارگذاری پرونده ای با نام “.” ، “..” یا “” به عنوان نام آن. به عنوان مثال ، در Apache در ویندوز ، اگر برنامه پرونده های بارگذاری شده را در فهرست “/ www / uploads /” ذخیره کند ، “”. نام پرونده فایلی به نام “uploads” را در فهرست “/ www /” ایجاد خواهد کرد.
  • بارگذاری پرونده هایی که ممکن است به راحتی پاک نشوند مانند “…: .jpg” در NTFS که پرونده “” را ایجاد می کند (این پرونده با استفاده از خط فرمان قابل حذف است). این ممکن است پیام های خطای جالبی را نشان دهد که می تواند منجر به افشای اطلاعات شود.
  • بارگذاری پرونده در Windows با نویسه های نامعتبر مانند | <> *؟ ” به نام آن این ممکن است پیام های خطای جالبی را نشان دهد که می تواند منجر به افشای اطلاعات شود.
  • بارگذاری پرونده در ویندوز با استفاده از نام های ذخیره شده (ممنوع) مانند CON ، PRN ، AUX ، NUL ، COM1 ، COM2 ، COM3 ، COM4 ، COM5 ، COM6 ، COM7 ، COM8 ، COM9 ، LPT1 ، LPT2 ، LPT3 ، LPT4 ، LPT5 ، LPT6 ، LPT7 ، LPT8 و LPT9. این ممکن است پیام های خطای جالبی را نشان دهد که می تواند منجر به افشای اطلاعات شود. اگر برنامه نام را حفظ کند و بخواهد آن را با پسوند دیگری ذخیره کند (بارگذاری اشتباه یک فایل به عنوان یک پرونده موجود) ، بارگذاری پرونده ای با نام رزرو شده ممکن است منجر به انکار سرویس شود.
  • با بارگذاری فایلی با نام و پسوند مجاز اما با محتویات Flash ، PDF یا Silverlight ، می توان از مشکلات مربوط به ربودن محتوای بین سایت استفاده کرد.
  • بارگذاری پرونده “crossdomain.xml” یا “clientaccesspolicy.xml” می تواند یک وب سایت را در برابر حمله محتوای بین سایت آسیب پذیر کند. این پرونده ها باید برای کار در ریشه وب سایت بارگذاری شوند. با این حال ، پرونده “crossdomain.xml” تا زمانی که در پرونده اصلی “crossdomain.xml” مجاز باشد ، می تواند در یک زیر شاخه باشد.

نکات مهم در آزمایش بارگذاری پرونده

  • در هنگام آزمایش سعی نکنید فایلهای موجود را جایگزین کنید ، مگر اینکه ادامه کار ایمن باشد. به عنوان مثال ، جایگزینی فایلهای پیکربندی مانند پرونده “web.config” یا “.htaccess” می تواند منجر به انکار سرویس برای کل وب سایت شود.

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

  • IIS 6.0 بهترین شیوه های امنیتی [ http://technet.microsoft.com/en-us/library/cc782762(WS.10 ) .aspx]
  • امنیت سایت ها با مجوزهای وب سایت [ http://technet.microsoft.com/en-us/library/cc756133(WS.10 ) .aspx]
  • راهنمای عملیاتی IIS 6.0 [ http://technet.microsoft.com/en-us/library/cc785089(WS.10 ) .aspx]
  • بهبود امنیت برنامه وب: تهدیدها و اقدامات متقابل 1
  • درک حساب کاربری داخلی و کاربری داخلی در IIS 7.0 2
  • IIS Security Checklist 3

و برخی توصیه های ویژه برای توسعه دهندگان و مدیران سایت:

  • انواع پرونده های مجاز برای بارگذاری باید فقط به مواردی که برای عملکرد تجاری لازم هستند محدود شود.
  • هرگز بدون داشتن فیلتر لیست مجاز ، نام پرونده و پسوند آن را مستقیماً نپذیرید.
  • برنامه باید فیلتر کردن و بررسی محتوا را بر روی هر پرونده ای که در سرور بارگذاری شده است ، انجام دهد. پرونده ها باید قبل از اینکه در دسترس سایر کاربران قرار بگیرند ، کاملاً اسکن و تأیید شوند. در صورت تردید ، پرونده باید کنار گذاشته شود.
  • داشتن لیستی از فقط برنامه های افزودنی مجاز در برنامه وب ضروری است. و ، پسوند پرونده را می توان از لیست انتخاب کرد. به عنوان مثال ، می تواند یک ترکیب “انتخاب مورد” باشد (در صورت داشتن VBScript) برای انتخاب پسوند پرونده با توجه به پسوند واقعی پرونده.
  • همه کاراکترهای کنترل و موارد Unicode باید بدون هیچ استثنا از نام پرونده ها و پسوندهای آنها حذف شوند. همچنین ، نویسه های خاص مانند “؛” ، “:” ، “>” ، “<” ، “/” ، “\” ، اضافی “.” ، “*” ، “٪” ، “$” و غیره روشن نیز باید کنار گذاشته شود. اگر قابل اجرا باشد و نیازی به نویسه های Unicode نباشد ، توصیه می شود فقط نویسه های Alpha-Numeric و فقط 1 نقطه به عنوان ورودی برای نام پرونده و پسوند بپذیرید. که در آن نام پرونده و همچنین پسوند اصلاً نباید خالی باشد (عبارت منظم: [a-zA-Z0-9] {1،200} \. [a-zA-Z0-9] {1،10}).
  • طول نام پرونده را محدود کنید. به عنوان مثال ، حداکثر طول نام یک پرونده به علاوه پسوند آن باید کمتر از 255 نویسه (بدون هیچ دایرکتوری) در یک پارتیشن NTFS باشد.
  • توصیه می شود برای تعیین نام پرونده ها از الگوریتم استفاده کنید. به عنوان مثال ، یک نام فایل می تواند یک هش MD5 از نام پرونده به همراه تاریخ روز باشد.
  • دایرکتوری بارگذاری شده نباید اجازه “اجرا” داشته باشد و همه اسکنرهای کنترل کننده باید از این فهرست ها حذف شوند.
  • برای جلوگیری از حملات انکار سرویس (در فضای فایل یا سایر عملکردهای برنامه وب مانند تغییر اندازه تصویر) ، اندازه پرونده را به حداکثر مقدار محدود کنید.
  • پرونده های با اندازه کوچک را محدود کنید زیرا می تواند منجر به انکار سرویس شود. بنابراین ، حداقل اندازه پرونده ها باید در نظر گرفته شود.
  • از روشهای محافظت از جعل درخواست Cross Site Request استفاده کنید.
  • در صورت داشتن هش یکسان برای هر دو ، از رونویسی پرونده جلوگیری کنید.
  • از ویروس یاب در سرور استفاده کنید (در صورت قابل اجرا بودن). یا اگر محتویات پرونده ها محرمانه نباشد ، می توان از وب سایت اسکنر ویروس رایگان استفاده کرد. در این حالت ، پرونده باید ابتدا با نام تصادفی و بدون هیچ پسوندی در سرور ذخیره شود و پس از بررسی ویروس (بارگذاری در وب سایت اسکنر ویروس رایگان و بازگرداندن نتیجه) ، می توان به نام خاص خود تغییر نام داد و افزونه.
  • سعی کنید به جای PUT از روش POST استفاده کنید (یا GET!)
  • فعالیتهای کاربران را ثبت کنید. با این حال ، مکانیسم ورود به سیستم باید در برابر جعل ورود به سیستم و تزریق کد خود ایمن باشد.
  • در صورت داشتن توابع استخراج فایل فشرده ، محتوای فایل فشرده شده باید یکی یکی به عنوان یک پرونده جدید بررسی شود.
  • در صورت امکان ، ذخیره فایل ها را در پایگاه داده به جای سیستم فایل در نظر بگیرید.
  • اگر پرونده ها باید در سیستم فایل ذخیره شوند ، استفاده از یک سرور جدا شده با دامنه دیگر را برای سرویس دادن به پرونده های بارگذاری شده در نظر بگیرید.
  • درصورت امکان ، بارگذاران پرونده فقط باید برای کاربران تأیید شده و مجاز مجاز باشند.
  • اجازه نوشتن باید از پرونده ها و پوشه های دیگری غیر از پوشه های بارگذاری حذف شود. پوشه های بارگذاری هیچ کدام خدمت نمی کنند
  • اطمینان حاصل کنید که فایلهای پیکربندی مانند “.htaccess” یا “web.config” با استفاده از آپلودکننده های فایل جایگزین نمی شوند. اطمینان حاصل کنید که تنظیمات مناسب برای نادیده گرفتن پرونده های “.htaccess” یا “web.config” در صورت بارگذاری در فهرست های بارگذاری ، در دسترس هستند.
  • اطمینان حاصل کنید که فایلهای دارای پسوند دو برابر (به عنوان مثال “file.php.txt”) به ویژه در Apache قابل اجرا نیستند.
  • اطمینان حاصل کنید که کاربران غیر مجاز به پرونده های بارگذاری شده دسترسی ندارند.
  • افزودن عناوین “Content-Dispose: Attachment” و “X-Content-Type-Options: nosniff” به پاسخ پرونده های استاتیک ، وب سایت را در برابر حملات ربای محتوایی میان سایت مبتنی بر Flash یا PDF محفوظ می دارد. توصیه می شود این روش برای همه پرونده هایی که کاربران باید در همه ماژول های مربوط به بارگیری فایل بارگیری کنند ، انجام شود. اگرچه این روش وب سایت را در برابر حملات با استفاده از سیلورلایت یا اشیا similar مشابه به طور کامل ایمن نمی کند ، اما می تواند خطر استفاده از اشیا Ad Adobe Flash و PDF را کاهش دهد ، به خصوص هنگامی که بارگذاری پرونده های PDF مجاز است.
  • در صورت عدم استفاده از پرونده های سیاست بین حوزه ای ، Flash / PDF (crossdomain.xml) یا Silverlight (clientaccesspolicy.xml) باید حذف شوند و برای برنامه های Flash یا Silverlight برای برقراری ارتباط با وب سایت نیازی به تجارت نیست.
  • حافظه پنهان کننده مرورگر باید برای پرونده های crossdomain.xml و clientaccesspolicy.xml غیرفعال شود. این وب سایت را قادر می سازد تا پرونده را به راحتی به روز کند یا در صورت لزوم دسترسی به خدمات وب را محدود کند. پس از بررسی پرونده سیاست دسترسی مشتری ، برای جلسه مرورگر همچنان پابرجاست ، بنابراین تأثیر عدم ذخیره سازی برای کاربر نهایی حداقل است. این می تواند بر اساس محتوای وب سایت هدف و امنیت و پیچیدگی پرونده (های خط مشی) به عنوان یک مسئله کم خطر یا اطلاعاتی مطرح شود.
  • سرصفحه های CORS باید بازبینی شود تا فقط برای داده های استاتیک یا در دسترس عموم فعال شود. در غیر این صورت ، سرصفحه “Access-Control-Allow-Origin” فقط باید حاوی آدرس های مجاز باشد. سرصفحه های دیگر CORS مانند “دسترسی به کنترل-اجازه-اعتبار” فقط در موارد مورد نیاز باید استفاده شوند. موارد موجود در عناوین CORS مانند “کنترل دسترسی-روشها-اجازه” یا “دسترسی-کنترل-مجاز-هدرها” باید بررسی و حذف شوند در صورت عدم نیاز.

حملات مرتبط

  • مسیر عبور
  • دستکاری مسیر
  • پیمایش مسیر نسبی
  • ویندوز _ :: جریان_داده_ DATA_alternate

آسیب پذیری های مرتبط

  • : دسته: آسیب پذیری اعتبار ورودی

کنترل های مرتبط

  • : دسته: اعتبار سنجی ورودی

عامل تهدید مرتبط

  • : دسته: عامل تهدید خارجی
  • : دسته: عامل تهدید داخلی
  • : دسته: مهاجم اینترنتی
  • : دسته: مهاجم اینترانت

تأثیرات فنی مرتبط

  • دسترسی به سیستم
  • بای پس امنیتی
  • قرار گرفتن در معرض اطلاعات سیستم
  • قرار گرفتن در معرض اطلاعات حساس
  • تهدید سمت مشتری

منابع

  • بهبود محافظت از بارگذاران پرونده – روشهای بای پس – Rev. 1.0
  • 8 قانون اساسی برای اجرای بارگذاری پرونده های ایمن – SANS – 4
  • IIS6 / ASP و بارگذاری پرونده برای سرگرمی و سود 5
  • بارگذاری امن پرونده در برنامه های وب PHP 6
  • انواع پرونده های خطرناک بالقوه 7
  • لیست امن بارگذاری پرونده را با PHP 10 امن کنید
  • NTFS در ویکی پدیا 11
  • جریانهای NTFS [ http://msdn.microsoft.com/en-us/library/ff469210(v=PROT.10 ) .aspx]
  • NTFS – واژه نامه 12
  • IIS 6.0 بهترین شیوه های امنیتی [ http://technet.microsoft.com/en-us/library/cc782762(WS.10 ) .aspx]
  • امنیت سایت ها با مجوزهای وب سایت [ http://technet.microsoft.com/en-us/library/cc756133(WS.10 ) .aspx]
  • راهنمای عملیاتی IIS 6.0 [ http://technet.microsoft.com/en-us/library/cc785089(WS.10 ) .aspx]
  • بهبود امنیت برنامه وب: تهدیدها و اقدامات متقابل 13
  • درک کاربر داخلی و حسابهای گروه در IIS 7.0 14
  • IIS Security Checklist 15
  • Microsoft IIS ASP Multiple Extensions Security Bypass 16
  • CVE-2009-4444 17
  • CVE-2009-4445 18
  • CVE-2009-1535 19
  • MSDN – نامگذاری پرونده ها ، مسیرها و فضاهای نامی [ https://msdn.microsoft.com/en-gb/library/windows/desktop/aa365247(v=vs.85 ) .aspx]
  • حتی بارگذاری پرونده JPG می تواند منجر به Cross-Site Content Hijacking (حمله سمت مشتری) شود 20
  • پروژه PoC Hijacking محتوای بین داده ای (داده ای) (XSCH) 21
  • آیفون MobileSafari LibTIFF بافر سرریز 22
  • ImageMagick Is On Fire-CVE-2016–3714 23
  • سیمانتیک آنتی ویروس با خرابی حافظه از راه دور چندین بسته RAR CVE-2016-2207 24
  • پرونده در سوراخ – HackPra نوامبر 2012 25
  • پوسته های وب و حملات دیگر از طریق پرونده های .htaccess شامل 26
  • یک فایل web.config را برای سرگرمی و سود 27 بارگذاری کنید
  • 28. بردارهای حمله سیستم سیستم فایل PHP – Take Two 28
  • بارگذاری پرونده و PHP در IIS:> =؟ و <= * و “=. 29

منبع : owasp.org

حسین برخورداری سوال پاسخ داده شده اکتبر 12, 2020
گذاشتن نظر
پاسخ خود را بنویسید .
  • فعال
  • بازدیدها3010 times
  • پاسخ ها1 پاسخ
ورود به متاورس | متاورس ایرانی
ورود به متاورس ایران یا همان متاورس ملی

علامت ذره بین Tutorials سمت راست به رنگ قرمز به شما کمک خواهد کرد .

جدید ترین سوالات پرسیده شده

منقضی شدن سم بتانال 1 پاسخ | 0 آرا
ایا ایدز گزفتم؟ 0 پاسخ ها | 0 آرا
انتخاب ورزش رزمی 0 پاسخ ها | 1 رای
وزارت تعاون کار و رفاه اجتماعی نماد اعتماد الکترونیک اسناد و املاک کشور مرکز آموزش ویدیویی انجمن حم فروشگاه ملی تولید کنندگان مدیریت بر مدیران حم سامانه حیوانات رسانه ملی اخبار متا دانشگاه متاورس استخدام | دانش فروشگاه حم تبلیغات ملی بازار NFT متاورس رنگ نقشه ملی سه بعدی متا املاک و مستغلات