Sunday, Mar 10, 2024 at 4:24 PM
March 10, 2024•1,072 words
Test File Extensions Handling for Sensitive Information (fa-IR)
آزمایش مدیریت پسوند فایل برای اطلاعات حساس (فارسی)
شناسه |
---|
WSTG-CONF-03 |
خلاصه
پسوندهای فایل معمولاً در سرورهای وب استفاده میشوند تا به راحتی تعیین کنند که کدام فناوریها، زبانها و افزونهها باید برای انجام درخواست وب مورد استفاده قرار گیرند. در حالی که این رفتار با RFC ها و استانداردهای وب مطابقت دارد، استفاده از پسوندهای فایل استاندارد اطلاعات مفیدی را در مورد فناوریهای زیربنایی مورد استفاده در یک ابزار وب به آزمایش کننده نفوذ میدهد و کار تعیین سناریوی حمله برای استفاده در فناوریهای خاص را بسیار ساده میکند. علاوه بر این، پیکربندی نادرست سرورهای وب به راحتی می تواند اطلاعات محرمانه در مورد اعتبار دسترسی را آشکار کند.
بررسی پسوند اغلب برای تأیید اعتبار فایلهایی که باید آپلود شوند استفاده میشود، که میتواند منجر به نتایج غیرمنتظره شود زیرا محتوا آن چیزی نیست که انتظار میرود، یا به دلیل مدیریت غیرمنتظره نام فایل سیستم عامل.
تعیین نحوه رسیدگی سرورهای وب به درخواستهای مربوط به فایلهای دارای پسوندهای مختلف ممکن است به درک رفتار وب سرور بسته به نوع فایلهایی که به آنها دسترسی دارد کمک کند. به عنوان مثال، می تواند به درک این که کدام پسوند فایل به صورت متنی یا ساده در مقابل آنهایی که باعث اجرای سمت سرور می شوند، بازگردانده می شوند، کمک کند. مورد دوم نشاندهنده فنآوریها، زبانها یا افزونههایی هستند که توسط وب سرورها یا سرورهای برنامه استفاده میشوند و ممکن است بینش بیشتری در مورد نحوه مهندسی برنامه وب ارائه دهند. به عنوان مثال، یک پسوند "pl." معمولاً با پشتیبانی Perl سمت سرور مرتبط است. با این حال، پسوند فایل به تنهایی ممکن است فریبنده باشد و کاملاً قطعی نباشد. به عنوان مثال، منابع سمت سرور Perl ممکن است تغییر نام دهند تا این واقعیت پنهان شود که آنها واقعاً به Perl مرتبط هستند. برای اطلاعات بیشتر در مورد شناسایی فناوریها و مؤلفههای سمت سرور، به بخش بعدی در مورد "اجزای وب سرور" مراجعه کنید.
اهداف آزمایش
- پسوندهای فایل حساس، یا پسوندهایی که ممکن است حاوی دادههای خام باشند (مانند اسکریپتها، دادههای خام، اعتبار، و غیره).
- تأیید کنید که هیچ دور زدن چارچوب سیستمی در مجموعه قوانین وجود ندارد.
چگونه آزمایش کنیم
مرور اجباری (Forced Browsing)
درخواست هایی را با پسوندهای مختلف فایل ارسال کنید و نحوه رسیدگی به آنها را بررسی کنید. تأیید باید بر اساس هر فهرست وب باشد. دایرکتوری هایی که اجازه اجرای اسکریپت را می دهند را بررسی کنید. دایرکتوری های وب سرور را می توان با ابزارهای اسکن که به دنبال حضور دایرکتوری های شناخته شده هستند، شناسایی کرد. علاوه بر این، انعکاس ساختار وبسایت به آزمایشکننده اجازه میدهد تا درخت دایرکتوریهای وب ارائهشده توسط برنامه را بازسازی کند.
اگر معماری برنامه وب دارای بار متعادل باشد، ارزیابی همه سرورهای وب بسیار مهم است. این ممکن است آسان باشد یا نباشد، بسته به پیکربندی زیرساخت متعادل کننده. در یک زیرساخت با اجزای اضافی ممکن است تغییرات جزئی در پیکربندی سرورهای وب یا برنامه ها وجود داشته باشد. این ممکن است در صورتی اتفاق بیفتد که معماری وب از فناوریهای ناهمگن استفاده کند (مجموعهای از سرورهای وب IIS و آپاچی را در یک پیکربندی متعادل کننده بار در نظر بگیرید، که ممکن است رفتار نامتقارن جزئی بین آنها و احتمالاً آسیبپذیریهای متفاوت ایجاد کند).
مثال
آزمایش کننده وجود فایلی به نام connection.inc
را شناسایی کرده است. تلاش برای دسترسی مستقیم به آن محتویات آن را باز می گرداند که عبارتند از:
<?
mysql_connect("127.0.0.1", "root", "password")
or die("Could not connect");
?>
آزمایشکننده وجود یک بک اند MySQL DBMS و اعتبارنامههای (ضعیف) استفاده شده توسط برنامه وب برای دسترسی به آن را تعیین میکند.
پسوندهای فایل زیر هرگز نباید توسط وب سرور بازگردانده شوند، زیرا مربوط به فایل هایی هستند که ممکن است حاوی اطلاعات حساس باشند یا به فایل هایی که دلیلی برای ارائه آنها وجود ندارد.
.asa
.inc
.config
پسوندهای فایل زیر مربوط به فایلهایی هستند که در صورت دسترسی، نمایش داده میشوند یا توسط مرورگر دانلود میشوند. بنابراین، فایلهای دارای این پسوندها باید بررسی شوند تا تأیید شود که واقعاً قرار است ارائه شوند (و باقیمانده نیستند)، و حاوی اطلاعات حساس نیستند.
.zip
,.tar
,.gz
,.tgz
,.rar
, etc.: (فشرده) فایل های آرشیو.java
: دلیلی برای دسترسی به فایل های منبع جاوا وجود ندارد.txt
: فایل های متنی.pdf
: اسناد PDF.docx
,.rtf
,.xlsx
,.pptx
, etc.: اسناد اداری.bak
,.old
و سایر پسوندهای نشان دهنده فایل های پشتیبان (به عنوان مثال:~
برای فایل های پشتیبان Emacs)
فهرستی که در بالا ارائه شد، تنها چند نمونه را توضیح میدهد، زیرا پسوندهای فایل بسیار زیاد هستند که نمیتوان در اینجا به طور جامع به آنها پرداخت. برای یک پایگاه داده کاملتر از پسوندها به FILExt مراجعه کنید.
برای شناسایی فایل های دارای پسوند معین می توان از ترکیبی از تکنیک ها استفاده کرد. این تکنیکها میتوانند شامل اسکنرهای آسیبپذیری، ابزارهای عنکبوتی و آینهسازی (انعکاس)، بازرسی دستی برنامه (این کار بر محدودیتهای عنکبوتی خودکار غلبه میکند)، جستجو در موتورهای جستجو (به آزمایش: Spidering و Googling مراجعه کنید) باشد. همچنین به آزمایش فایلهای قدیمی، پشتیبانگیری و بدون مرجع مراجعه کنید که به مسائل امنیتی مربوط به فایلهای "فراموش شده" میپردازد.
آپلود فایل (File Upload)
گاهی اوقات می توان از مدیریت فایل های قدیمی ویندوز 8.3 برای از بین بردن فیلترهای آپلود فایل استفاده کرد.
مثال های استفاده:
file.phtml
به عنوان کد PHP پردازش می شود.FILE~1.PHT
ارائه می شود، اما توسط کنترل کننده PHP ISAPI پردازش نمی شود.shell.phPWND
را می توان آپلود کرد.SHELL~1.PHP
گسترش یافته و توسط پوسته سیستم عامل بازگردانده می شود، سپس توسط کنترل کننده PHP ISAPI پردازش می شود.
آزمایش جعبه خاکستری (Gray-Box Testing)
انجام آزمایش جعبه سفید در برابر مدیریت پسوند فایل به منزله بررسی پیکربندی سرورهای وب یا سرورهای برنامهای است که در معماری برنامههای وب شرکت میکنند، و تأیید نحوه ارائه دستورالعملهای آنها برای ارائه پسوندهای مختلف فایل.
اگر برنامه وب به یک زیرساخت ناهمگن و متعادل با بار متکی است، تعیین کنید که آیا این ممکن است رفتار متفاوتی را ایجاد کند یا خیر.
ابزارها
اسکنرهای آسیبپذیری، مانند Nessus و Nikto وجود فهرستهای وب معروف را بررسی میکنند. آنها ممکن است به آزمایشکننده اجازه دهند ساختار وبسایت را دانلود کند، که هنگام تلاش برای تعیین پیکربندی فهرستهای وب و نحوه ارائه پسوند فایلهای فردی مفید است. ابزارهای دیگری که می توان برای این منظور استفاده کرد عبارتند از: