رایتاپ rfu شماره 1
سلام.من بهروز منصوری هستم و با رایتاپ rfu شماره 1 قصد دارم آسیبپذیری بسیار جالبی را به نمایش بگذارم که منجر به نشت اطلاعات مشتری (ایمیلها، رمزهای عبور plaintext، آدرس و غیره) شد.
وبسایت مورد نظر را از این به بعد «example.com» می نامیم.
این وب سایت به ما امکان می دهد به عنوان کاربر ثبت نام کنیم و مکان هایی را برای مناطق شارژ ایجاد کنیم.
در پایین صفحه، می بینید که ما گزینه ای برای آپلود تصویر داریم و همچنین یک شناسه خارجی بدون مقدار وجود دارد.
طبق معمول، من در حال آزمایش آسیب پذیری های مختلف مانند XSS، SQLi و غیره بودم، اما هیچ نتیجه ای نداشت.
بنابراین، تصمیم گرفتم یک تصویر آپلود کنم و ببینم چه اتفاقی می افتد.
من معمولاً یک تصویر تصادفی برای آپلود پیدا می کنم و هنگامی که تصویر را آپلود کردم موارد زیر را آزمایش می کنم:
- اضافه کردن یک پسوند معتبر قبل از پسوند اصلی (از پسوندهای قبلی نیز استفاده کنید): به عنوان مثال. file.png.php
- اضافه کردن کاراکترهای ویژه در انتهای نام فایل، به عنوان مثال: file.php%20، file.php%0a، file.php%00 و غیره
- افزودن داده های ناخواسته (null bytes) بین برنامه های افزودنی
- یک لایه دیگر از پسوندها را به بررسی قبلی اضافه کنید: file.png.jpg.php | file.php%00.png%00.jpg
- سعی کنید پسوند exec را قبل از فرمت معتبر قرار دهید و امیدوار باشید که سرور به اشتباه پیکربندی شده باشد.
- دور زدن فیلتر Content-Type با تنظیم مقدار هدر Content-Type روی: image/png, text/plain, application/octet-stream
- سعی کنید با اضافه کردن بایت های یک تصویر واقعی در ابتدای فایل خودتان،محدودیت را دور بزنید (سرور فایل را اشتباه بگیرد). بهترین منبع برای این مورد اینجاست.
- آپلود یک فایل با نام “.”، “..” یا “…”.
با این حال، هیچ یک از ترفندهای بالا عملاً کارساز نبود.
بنابراین در این مرحله کمی ناامید شدم. تصمیم گرفتم فقط کمی به عقب برگردم و درخواست آپلود تصویر را کامل بررسی کنم.
این باعث شد که چیز بسیار جالبی پیدا کنم.
شروع کشف آسیب پذیری
تصویری که آپلود می شود در واقع به عنوان شناسه ذخیره می شود نه خود تصویر.
چیزی که جالب به نظر می رسد این است که تصویر ذخیره شده به عنوان ID 12 از __media__[images][0] -> ذخیره شده که یک روش فهرست بندی است.
این باعث شد به این فکر کنم که قطعاً یک آسیب پذیری بالقوه در اینجا وجود دارد. بنابراین شناسه را از 12 به 1 تغییر دادم و…
در ابتدا فکر کردم که هیچ اتفاقی نیفتاده چون تصویر تغییر کرد، اما به نظر نمی رسید که کار کند.
بنابراین، به Burp Suite رفتم و پاسخ را به دقت بررسی کردم و …
فایل با شناسه 1 در واقع یک تصویر نبود، یک فایل CSV بود که برای وارد کردن کاربران استفاده می شد.
این شامل نام کامل، ایمیل، رمز عبور متن ساده و موارد دیگر بود…
من فوراً آن را گزارش کردم و این یک آسیبپذیری حیاتی بود – میتوانستم به هر یک از این حسابها دسترسی داشته باشم و هر کاری که بخواهم با آنها انجام دهم، زیرا ایمیلها و رمزهای عبور را همگی به صورت plaintext داشتم.
این رایتاپ rfu شماره 1 بود و قطعاً در آینده رایتاپ های بیشتری رو در این زمینه قرار خواهم داد.
اگر دوست داری وارد حوزه باگ بانتی بشه و شروع به گزارش باگ کنی دوره کلوپ امنیت ۱ و دوره کلوپ امنیت پیشرفته رو از دست نده.