سلام من میلاد هستم، این اولین رایتاپم توی این وبلاگ هست و امروز میخوام درباره دو آسیبپذیری 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 آسیبپذیر بود.
نکتهای که به نظرم باید بهش دقت بشه: استفاده مجدد از پارامترها در صفحات دیگه
امیدوارم خوشتون اومده باشه، من زیاد اهل نوشتن نیستم ولی هدفم از نوشتن این رایتاپ این بود که بچههایی که نوشته منو میخونن بدونن با همین پیلودهای ساده و ورد لیستهای عمومی هم میشه آسیبپذیری پیدا کرد فقط باید دیدتون رو نسبت به سامانه تغییر بدید و طوری بهش نگاه کنید که دیگران نگاه نکردن. از این بعد قصد دارم آسیبپذیریهایی که پیدا میکنم رو براتون اینجا بزارم و آخرشم یه جمله هدیه بدم بهتون که خودم تجربش کردم.
توصیه من:
بالاخره از یجایی باید شروع کنین، بهانههایی مثل فراهم نبودن امکانات و کامل نبودن دانش و … فقط شمارو عقب میندازه… منو که عقب انداخت …
امیدوارم هرچقدم کوچیک مفید بوده باشه.
دوستان عزیز خوشحال میشم با هم تبادل نظر داشته باشیم.
عالی
مرسی
none_
بانتیم دادن؟
خیر چون توی پروژه تست و نفوذ بود
عالی بود
ممنون که دانش و تجربه ات را به اشتراک گذاشتی
ممنون از نظرت
خیلی خوب بود، ممنون
مرسی از نظرت
سلام،عالی بود.
فقط اینکه methodology شما چطور هست؟روش خاص خودتون رو دارید یا نه؟چطوریه؟
از کجا آموزش دیدید؟
ممنون از نظرت … من تا یجاییش رو خودم خوندم و دوره هانت یاشارم شرکت کردم
آقا تبریک میگم عالی بود
ممنون
خیلی قشنگ توضیح دادی ممنون بابت نکات
ممنون
سلام ، جالب بود برام ، جدا از مسایل تکنیکی که توضیح دادی و بلد نیستم مساله مهمی که موجب شد کامنت بزارم در واقع خلاقانه نگاه کردن به موضوع بود و نگاه (به فارسی شاید بشه بازیگوشانه) به مساله است . خوشحالم این متن رو خوندم ، و امیدوارم موفق باشید
ممنون از نظرت
Pefect Mannnnnnnnnnnnnnn .
Thanks bro
عالی بود، مرسی
مرسی از اشتراک دانش و تجربه خوبت
سلام راهنمایی درمورد پیدا کردن information disclosure داری توی حوزه های مختلف مثل IIS و WordPress
خیلی لذت بردم بیشتر بنویس 🙂
تبریک میگم.
سلام روز بخیر ممنون بابت وبلاگ خوبتون من میخواستم نظرتون رو در رابطه با منبع خوب برای یادگیری حرفه ای بصورت آنلاین چیه ؟