یک نقص امنیتی از نوع Stored Cross-Site Scripting (XSS) در نرمافزار Newbee Mall (نسخههای تا 1.0.0) شناسایی شده است. این آسیبپذیری در بخش Goods Save Endpoint و بهطور مشخص در فایل UploadController.java قرار دارد.
جزئیات فنی و مکانیسم حمله
مهاجمان میتوانند از طریق دستکاری پارامتر goodsName، کدهای جاوا اسکریپت مخرب را تزریق کنند. نکته کلیدی در این حمله، دور زدن مکانیزمهای کنترلی تصاویر است؛ متد ImageIO.read() در جاوا به دلیل ماهیت Format-agnostic، اجازه میدهد Payloadهای ترکیبی (Polyglot) مانند PNG| را به عنوان تصویر معتبر شناسایی کند.
زمانی که فایلهای آپلود شده از طریق مسیر استاتیک /upload/ سرو شوند، این کد تزریق شده در مرورگر کاربر قربانی اجرا میشود. این فرآیند منجر به اجرای اسکریپت در Context مرورگر کاربر شده و میتواند منجر به سرقت Session یا تغییر محتوای صفحه گردد.
شرایط بهرهبرداری (Exploitation)
- سطح دسترسی: مهاجم باید دارای یک حساب کاربری با سطح دسترسی پایین (Low-privileged) باشد.
- تعامل کاربر: اجرای کد مستلزم بازدید کاربر قربانی از محتوای آلوده است (UI:R).
- وضعیت اکسپلویت: کد اکسپلویت این آسیبپذیری بهصورت عمومی منتشر شده است.
ارزیابی ریسک
با وجود انتشار اکسپلویت، ریسک واقعی این آسیبپذیری در سطح پایین تا متوسط ارزیابی شده است. این موضوع به دلیل نیاز به احراز هویت اولیه، نیاز به تعامل کاربر و همچنین استفاده محدود از این پروژه در محیطهای عملیاتی (Demo-project) است.