رایتاپ ها
زمان مطالعه :5 دقیقه
Mass Assignment Leads to HTML Injection for All Users
سلام من علیم توی این رایتاپ میخوام درباره ترکیب دوتا باگ صحبت کنم که اخیرا روی یکی از تارگتام زدم اول که تارگتو رو دریافت کردم نشستم باهاش مثل یک یوزر عادی با سایت کار کردم اما برپ هم بالا بود اون ریکوست هایی که بنظرم جذاب میومد رو میفرستادم توی ریپیتر که بعدا برم روش کار کنم. حالا نشستم از دیدگاه یک هکر به سایت نگاه کردم اولین قسمتی که تست کردم قسمت register بود که فلو لاگینو چک کردم قسمت فراموشی رمز عبور رو چک کردم ولی به چیزی نرسیدم. یک قسمتی داشت سایت که میتونستی عکس اپلود کنی برای طراحی تست های File_Upload رو روش تست کردم و کامل امن بود و باگی پیدا نکردم. نشستم یک مقداری جاوا اسکریپت سایتو خوندم کلی سایتو تست ها مختلف زدم اما به هیچی نرسیدم اینجا یکم احساس خستگی کردم که روش وقت گذاشتم اما به نتیجهای نرسیدم که دقیقا موقع خواب یهو یک چیزی به ذهنم رسید رفتم داخل قسمت personal-edit که اینجا اسمم رو به <h1> test تغییر دادم اما سامانه جلوشو میگرفت میخواستم از توی برپ درخواستو بگیرم و تغییراتو از اونجا اعمال کنم که میدیدم درخواستم توی برپ نمیاد اینجا فکر کردم برپم مشکل خورده و کلی رو ستینگش کار کردم اما درست نشد رفتم قسمت نتورک بروزرم از اونجا نگاه کردم دیدم بله از یک دامین دیگه داره درخواست میزنه اون درخواستو گرفتم و اسممو به همون پیلود تغییر دادم دیدم جایی رفلکت نشد. رفتم قسمت تغییر ایمیلو چک کنم دیدم توی ایمیل اون کد html رندر شد اما یک مشکلی داشت اونم این بود که فقط توی ایمیل قدیمی رندر میشد و برای ایمیل جدید رندر نمیشد و خب این یک باگ سلف میشد که ارزشی نداشت. اینجا باز یکم ناامید شدم اما بازم ادامه دادم رفتم دوباره توی قسمت personal-edit یک چیزی متوجه شدم که توی صفحه کاربر یکسری فیلد ها برای تغییر بود مثل نام نام خانوادگی تاریخ تولدت اما درخواستی که ارسال میشد داخلش فیلد ایمیل هم بود ایمیل رو تغییر دادم و دوباره درخواست رو ارسال کردم دیدم خطایی هم نداد رفتم چک کردم دیدم بله ایمیلم تغییر کرد تست کردم حتی به ایمیلی که حساب کاربری داره هم میشه تغییر داد اما محتویات اون اکانت رو نشون نمیداد. درخواست به این صورت بود:
{"accountDeleted":false,"accountId":"2b8f89e5d58vtds66d33f5e0a8", "email":"[email protected]", "firstName":"test", "middleName":"test1234", "lastName":"test", "createdAt":"2024-09-26T12:27:51.107+00:00", "lastModifiedAt":"2024-10-12T23:25:30.694+00:00", "paymentMethod":"Default", "status":"Default", "reviewStatus":"Default", "_requestState":"Finished", "changed":false,"salutation":""
حالا رفتم تست کردم قسمت تغییر ایمیلو که دیدم بله چون میتونم ایمیلم رو به ایمیلی که بخوام تغییر بدم html injection به هر ایمیل امکان پذیر بود
علی استدار
مشاهده مقاله های بیشتر