نمیدونم جمعه صبح که از خواب بیدار شدم دیدم وب سایت آقای حسن روحانی رئیس جمهور کشور عزیزمان ایران داری باگ XSS Reflected هست . البته من بیشتر از یک سالی هست که به پشتیبانی وب سایت هم خبر دادم گفتم این مشکل امنیتی را برطرف کنند اما نمیدونم چرا برطرف نکردند.خوب من از گوگل سرچ میزنم که اشتباهی سایت شخص دیگری را تست نکرده باشم.
خوب درست بود سایت روی یکی از منو ها (رویداد ها) کلیک میکنم . یه فیلد جستجو دیدم مقدار salam”> را داخلش وارد میکنم بعد روی آیکون جستجو کلیک میکنم.
خوب نتیجه به شکل زیر شد .
دقیقا عبارتی که تزریق کردم تو خروجی نمایش داده شد فکر کنم آسیب پذیر نیست . خوب برای بهتر متوجه شدن موضوع میریم یه view source از صفحه میگیرم و عبارت را جستجو میکنیم. همانطور که در تصاویر زیر میبینید همه جاها را امن کرده.
خوب دید xss ندارد اما یک هکر ناامید نمیشه و ادامه میده.تو همین صفحه دنبال فیلد های hidden میگردیم.
این بدرد نیمخوره میریم بعدی!
همانطور که در تصویر بالا می بینید یه فیلد hidden با نام event هست من سعی میکنم آن را به url اضافه کنم و مقداری رو داخلش تزریق میکنم.
یه اتفاق های افتاد گویا مقدار من داخل صفحه تاثیر گذاشت. حالا سعی میکنم یه کد html تزریق کنم.
بله ما به آسیب پذیری HTML Injection رسیدیم حالا ببینیم میتونیم به xss تبدیل کنیم. من یه کد xss ساده تزریق میکنم.
Oh My God!
WAF جلوی ما را گرفت (ادامه این داستان در قسمت بعد ! نه نه شوخی کردم ادامه میدیم) خوب همینطور که دیدید WAF باعث شد که کد xss ما اجرا نشه و من سعی کردم با حالات های مختلف WAF را Bypass کنم خوب سخت بود اما شد در ادامه توضیح میدم . من میخوام یه alert را اجرا کنم.
این WAF خیلی گیر میداد من برای بای پس کد XSS را به معادل HTML Entities تبدیل میکنم.
خوب شاید براتون سوال باشه که اعداد بالا چه معنی دارند خیلی ساده است اعداد بالا معادل کد ASCII تابع alert میباشد.
تو html قانونی وجود دارد که اگر بخواهید یه کاراکتر خاص را نمایش بدید باید از فرمول زیر استفاده کنید.
#&ASCII_number;
من هم تمامی حرف های تابع alert را به کد اسکی تبدیل کردم . اما باز یه مشکلی هست اینکه کد های که نوشتیم در url کار نمیکند چون کاراکتر های خاص دارد باید آنها را url encode کنیم.
خوب درست شد میشه این رو تزریق کرد اما باز مشکل بعدی! این کد به تنهای قابل اجرا نیستند ! من از کد زیر استفاده کردم متاسفانه waf تمامی event ها مربوط به javascript رو بسته بود تنها رویداد onwheel باز بود پس در نهایت پایلود نهایی به شکل زیر در آمد.
یه فیلد textarea ایجاد کردیم با صفت autofocus فیلد را فوکس کردیم با رویداد onwheel کاربر با تکان دادن غلطک ماوس یا غلتک ماوس کد xss ما اجرا میشود.
لا نِعْمَةَ اَهْنَاءُ مِنَ الاَْمْنِ
هيچ نعمتى گواراتر از امنيت نيست
امام علی (ع)
از این جور موارد میشه بیشتر بگید ممنون میشم
یک سوال
الان ما این رو اجرا کردیم بعد از این مرحله باید چیکار کنیم اگه بخواهیم نفوذ کنیم