نگاره‌هایی پیرامون امنیت، شبکه و رمزنگاری

25 فوریه 2024

سلام من میلاد هستم، این اولین رایتاپم توی این وبلاگ هست و امروز میخوام درباره دو آسیب‌پذیری XSS و Open Redirect که روی یکی از سامانه‌های بانکی پیدا کردم براتون بنویسم. به خاطر مسائل محرمانگی و امنیتی من اسم بانک رو Redacted میزارم.

شروع مرحله ریکان گسترده

Scope پروژه کل زیر دامنه‌های مربوط به اون بانک بود پس در مرحله اول شروع کردم با استفاده از ابزار subfinder و از طریق DNS brute force با ابزار shuffledns (دستور زیر) تعدادی زیادی زیردامنه پیدا کردم.

Subfinder -d domain -all
Shuffledns -m <path-massdns> -d domain.tld -w wordlist.txt -r resolver.txt

نکته: پیشنهاد می‌کنم حتما از سوییچ -all برای subfinder استفاده کنید و در فایل config مربوط به این ابزار هم حتما apiهای سایت های مختلف که خودش نوشته رو وارد کنید. (نتایج فوق العاده بیشتر میشه)

شروع مرحله ریکان عمقی

بعد از اینکه فرایند Wide Recon و پیدا کردن زیردامنه به پایان رسید با استفاده از ابزار httpx اون زیردامنه‌هایی که سرویس http روشون بالا بود رو جدا کردم و هرکدوم رو با توجه به تکنولوژیش مورد بررسی قرار دادم.

کشف آسیب‌پذیری XSS

در نتیجه یکی از زیردامنه‌ها به نام login.redacted.ir رو برای کار انتخاب کردم. بعد از ورود به این زیردامنه سامانه من رو به مسیر زیر منتقل کرد:

https://login.redacted/redacted/Sso/login/Login.aspx

خب در نگاه اول یه صفحه لاگین جلوی من بود و طبیعاتا منم شروع کردم به بررسی آسیب‌پذیری‌های احتمالی که توی صفحه لاگین میتونه وجود داشته باشه ولی خب چیز خاصی پیدا نکردم. در ادامه با توجه به متدولوژی که بعد از کلاس هانت درست کرده بودم شروع کردم با استفاده از ابزار x8 و با دستوری که همین زیر براتون گذاشتم دنبال پارامترهای موجود روی صفحه لاگین گشتم تا شاید بتونم یه چیزی پیدا کنم که بازم موفق نشدم.

x8 -w parameter-word-list.txt -u https://url -X GET POST -m 40

بعد با توجه به اینکه معماری سامانه سنتی یا اصطلاحاً Directory root base بود شروع به فاز دایرکتوری و فایل کردم تا شاید چیز بدرد بخوری پیدا بشه.

نکته: در سامانه‌هایی با معماری مدرن که اصطلاحاً Route base هستند و سامانه بر اساس Routeهای از پیش تعریف شدن کاربر رو ارجاع میده به بخش‌های مختلف، فاز کردن دایرکتوری جواب نمیده چون تا Route کامل رو ندیم خروجی نمیده بهمون.

مدتی که گذشت تونستم فایل زیر رو پیدا کنم:

https://login.redacted/redacted/redacted/login/Congratulation.aspx

که یک صفحه تبریک خام بود و ظاهرا اونو گذاشته بودن برای اینکه اگر سالروز استخدام یا تولد کاربر بود بهش تبریک نشون بدن. همینجا با خودم گفتم که حتما یه پارامتری چیزی اینجا وجود داره واسه همین دوباره شروع کردم به Parameter Discovery و تونستم یک پارامتر پیدا کنم به نام Return که هر مقداری که میگرفت رو یجایی داخل تگ script قرار می‌داد و بله همونطور که فکر می‌کنید با یه پیلود ساده Boom!! (تصویر سانسور شده)

Payload= milad%27-alert(1)-%27

کشف آسیب‌پذیری Open Redirect

بعد از ادامه دادن فاز یک فایل دیگه هم پیدا کردم به نام ViewCongratulation.aspx که وقتی کاربر وارد این صفحه ‌می‌شد بعد از مدتی به پنل کاربری منتقل می‌شد که خب چون من احراز هویت نشده بودم به صفحه لاگین منتقل شدم. وقتی اسم این صفحه رو دیدم گفتم شاید همون پارامتر قبلی اینجا هم باشه پس بررسی کردمش و بله اون پارامتر اینجا هم بود و باتوجه به مقداری که ‌می‌گرفت کاربر رو منتقل می‌کرد و به Open Redirect آسیب‌پذیر بود.

نکته‌ای که به نظرم باید بهش دقت بشه: استفاده مجدد از پارامترها در صفحات دیگه

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

توصیه من:

بالاخره از یجایی باید شروع کنین، بهانه‌هایی مثل فراهم نبودن امکانات و کامل نبودن دانش و … فقط شمارو عقب میندازه… منو که عقب انداخت …

1 پست نوشته شده
سلام من میلاد هستم، قصد دارم از این به بعد آسیب‌پذیری‌هایی که پیدا می‌کنم رو اینجا بنویسم تا شاید خوندنش بدرد بچه‌‌های تازه کار بخوره.
امیدوارم هرچقدم کوچیک مفید بوده باشه.
دوستان عزیز خوشحال میشم با هم تبادل نظر داشته باشیم.
  • به اشتراک بگذارید:
  1. عباس گفت:

    عالی

  2. کاربر وب گفت:

    بانتیم دادن؟

  3. cloudymoon گفت:

    عالی بود
    ممنون که دانش و تجربه ات را به اشتراک گذاشتی

  4. پدرام گفت:

    خیلی خوب بود، ممنون

  5. ََAmirhossein گفت:

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

  6. walkman گفت:

    آقا تبریک میگم عالی بود

  7. liveevildevil گفت:

    خیلی قشنگ توضیح دادی ممنون بابت نکات

  8. پ.من گفت:

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

  9. moein گفت:

    Pefect Mannnnnnnnnnnnnnn .

  10. mari گفت:

    عالی بود، مرسی

  11. Aworld گفت:

    مرسی از اشتراک دانش و تجربه خوبت

  12. Ngiveup گفت:

    سلام راهنمایی درمورد پیدا کردن information disclosure داری توی حوزه های مختلف مثل IIS و WordPress

  13. amir گفت:

    خیلی لذت بردم بیشتر بنویس 🙂

  14. alan گفت:

    تبریک میگم.