فایل آپلود امنیت در webapp – نمای کلی از راه اندازی

برای یک webapp بر اساس تصاویر آپلود شده توسط کاربر، من می خواهم بررسی کنم که کارهای من به اندازه کافی امن انجام می شود. در زیر یک طرح کلی از تنظیمات فعلی است.

  1. البته کاربران ثبت نام می توانند آپلود کنند، اما من می دانم که این چیزی نیست.
  2. سایت توسط nginx در معرض قرار گرفته است.
  3. دستگاهی که سرور میزبان میزبانی می شود تنها اتصالات ورودی را از دستگاه nginx پذیرفته است.
  4. لینک آپلود تصویر (دستورالعمل nginx) سرعت محدود است (به طریقی که سخاوتمندانه برای یک کاربرپرداخت مشروع کاربر حساب می شود).
  5. وب سرور تنها قالب های تصویر jpg / png / tiff / webp را می پذیرد (نوع MIME را با استفاده از کتابخانه جادویی به دست می آورد).
  6. هر دو nginx و وب سرور محدودیتی در اندازه فایل پذیرفته شده دارند.
  7. تمام فایل های آپلود شده با استفاده از یک نام فایل که هش محتویات ذخیره می شود ذخیره می شود.
  8. به طور پیش فرض، آنها تنها با مجوز RW ذخیره میشوند، نه rwx.
  9. تصاویر در همان سیستم به عنوان وب سرور ذخیره می شوند.
  10. آنها به طور مستقیم به مکان نهایی ذخیره می شوند (هیچ موقعیت مکانی متوسط ​​وجود ندارد) اما تصاویر برای مشاهده تا زمانی که یک ستون پایگاه داده خاص به روز نمی شود قابل دسترسی نیست (نگاه کنید به نقطه بعدی)
  11. فایل های تازه آپلود شده (و هر فایل مخرب به یک دایرکتوری متفاوتی منتقل می شود که سرورها آن را ندارند) و سپس ستون پایگاه داده فوق به روز می شود تا فایل ها برای مشاهده در دسترس باشد.
  12. در نهایت، تعداد کمی از سر و صدا تصادفی به هر تصویر اضافه شده با انجام کاری شبیه magick image.jpg -valuate اضافه کردن 0.1 image.jpg

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

کدام زبان برنامه نویسی برای آزمون نفوذ سرورها بهترین و برای آسیب پذیری های امنیتی در سیستم هایی مانند ویندوز، لینوکس یا Severs است؟

من نا امید هستم زیرا من پاسخ های خود را در گوگل پیدا نکردم، در حالی که بسیاری از موضوعات در آزمون نفوذ وجود دارد، اما آنچه من می خواهم این است که نفوذ سرورها را پیدا کرده و آسیب پذیری ها را در ویندوز و لینوکس پیدا کنم، می دانید که برای این نوع آزمون نفوذ برای زبان یاد می گیرم

ارزیابی آسیب پذیری – آیا نصب Xampp برای آزمایش امنیتی و نفوذ با استفاده از DVWA امن است؟

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

برنامه ی وب – سرور به درستی کاراکترهای یونیکد را اداره می کند؟

بنابراین من یک برنامه وب را به صورت دستی قلم می زنم. پس از ارسال برخی از داده ها، آن را در درخواست POST ارسال می کند که حاوی داده ها در یک شی JSON است. بنابراین در حالی که fuzzing آن را انجام دادم، برای کنترل نادرست رمزگذاری تست کردم. مطمئنا هنگام ارسال یک کاراکتر Unicode در قالب u2030 یک پاسخ از سرور دریافت می کنید که از داده های دروغین شکایت می کند.

با این حال، هنگامی که به من می گوید که من آن را به جای شخصیت فرستادم در مورد که چیزی است u2030 این شی JSON با سه کاراکتر جداگانه برای شخصیت یونیکد وارد شده است:

 {"success": false، "errorcode" : 1،
"errormessage": "بخش" init "یا عمل" ȃ0 "نامعتبر است"}

ȃ0 'نامعتبر است بخشی که بخشی از علاقه است. من کنجکاو هستم که آیا این ممکن است یک خطر بالقوه امنیتی را در قالب یک سرریز بافر نشان دهد، زیرا یکی از 3 بایت که شامل یک کاراکتر Unicode است، می تواند به عنوان یک بایت صفر تفسیر شود و پس از آن داده های بیشتری پس از آن بازنویسی شود حافظه.

هر گونه اطلاعات، مشاوره و غیره عالی خواهد بود. ممنون

EDIT: فقط برای من اتفاق افتاد که Burp، که من برای گرفتن پاسخ استفاده می کنم، ممکن است نادرست از کاراکتر Unicode در زمانی که سرور با آن پاسخ می دهد نمایش دهد. آیا این یک اشکال شناخته شده است؟

آزمون نفوذ – Fuzzing: به سرعت تعداد دقیق بایت را پیدا کنید

من در حال حاضر سرریز بافر را تمرین می کنم. و من یک سوال برای شما در مورد fuzzing دارم.

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

با این حال ارزش من از اسکریپت من لزوما اندازه "اجازه بازنویسی EIP" را نمی دهد. برای پیدا کردن این اندازه بافر من معمولا باید بپوشم …

مشکل این است که وقتی به دنبال تعداد دقیق بایت هستم، من مجبور هستم:

  1. شروع به راه اندازی اشکال زدائی (edb-debugger) روی کالی [19659007] برنامه را راه اندازی کنید
  2. اسکریپت من را با +1 یا -1 در اندازه بافر اجرا کنید
  3. بررسی کنید که EIP رونویسی شده است

اگر این مورد نیست، دوباره و دوباره شروع میکنم … [19659002] این یک عملیات است که زمان زیادی را صرف می کند . آیا می توانیم این مرحله را سریع تر کنیم؟ با تنظیمات اضافی در debugger که به طور خودکار برنامه را مجددا راه اندازی می کند تا زمانی که EIP رونویسی نشده باشد؟ یا با یک تنظیم خاص در یک اسکریپت؟

تمام راه حل ها با لذت پذیرفته می شوند!