FixVibe
Covered by FixVibehigh

کراس سائٹ اسکرپٹنگ (XSS) کمزوریوں کا پتہ لگانا اور روکنا

کراس سائٹ اسکرپٹنگ (XSS) اس وقت ہوتی ہے جب کوئی ایپلیکیشن کسی ویب صفحہ میں بغیر کسی مناسب توثیق یا انکوڈنگ کے ناقابل اعتماد ڈیٹا کو شامل کرتی ہے۔ یہ حملہ آوروں کو متاثرہ کے براؤزر میں بدنیتی پر مبنی اسکرپٹس پر عمل کرنے کی اجازت دیتا ہے، جس سے سیشن ہائی جیکنگ، غیر مجاز کارروائیاں، اور حساس ڈیٹا کی نمائش ہوتی ہے۔

CWE-79

اثر

ایک حملہ آور جو کراس سائٹ اسکرپٹنگ (XSS) کے خطرے کا کامیابی سے فائدہ اٹھاتا ہے وہ ایک متاثرہ صارف کے طور پر نقاب پوش ہو سکتا ہے، صارف کو انجام دینے کے لیے مجاز کسی بھی کارروائی کو انجام دے سکتا ہے، اور صارف کے ڈیٹا تک رسائی حاصل کر سکتا ہے [S1]۔ اس میں اکاؤنٹس کو ہائی جیک کرنے کے لیے سیشن کوکیز چوری کرنا، جعلی فارمز کے ذریعے لاگ ان کی اسناد حاصل کرنا، یا ورچوئل ڈیفیسمنٹ [S1][S2] شامل ہے۔ اگر متاثرہ شخص کو انتظامی مراعات حاصل ہیں تو حملہ آور درخواست اور اس کے ڈیٹا [S1] پر مکمل کنٹرول حاصل کر سکتا ہے۔

بنیادی وجہ

XSS اس وقت ہوتا ہے جب کوئی ایپلیکیشن صارف کے قابل کنٹرول ان پٹ وصول کرتی ہے اور اسے بغیر کسی غیر جانبداری یا انکوڈنگ کے [S2] کو ویب صفحہ میں شامل کرتی ہے۔ یہ متاثرہ کے براؤزر کے ذریعہ ان پٹ کو فعال مواد (جاوا اسکرپٹ) کے طور پر تشریح کرنے کی اجازت دیتا ہے، جس سے ویب سائٹس کو ایک دوسرے سے الگ کرنے کے لیے ڈیزائن کی گئی ایک ہی اصل کی پالیسی کو روکا جا سکتا ہے۔

خطرے کی اقسام

  • انعکاس شدہ XSS: نقصان دہ اسکرپٹ ایک ویب ایپلیکیشن سے متاثرہ کے براؤزر پر منعکس ہوتے ہیں، عام طور پر URL پیرامیٹر [S1] کے ذریعے۔
  • ذخیرہ شدہ XSS: اسکرپٹ کو مستقل طور پر سرور پر اسٹور کیا جاتا ہے (مثال کے طور پر، ڈیٹا بیس یا تبصرے کے سیکشن میں) اور بعد میں [S1][S2] صارفین کو پیش کیا جاتا ہے۔
  • DOM پر مبنی XSS: کمزوری مکمل طور پر کلائنٹ سائڈ کوڈ میں موجود ہے جو غیر محفوظ طریقے سے غیر بھروسہ مند ذریعہ سے ڈیٹا پر کارروائی کرتا ہے، جیسے innerHTML [S1] کو لکھنا۔

ٹھوس اصلاحات

  • آؤٹ پٹ پر ڈیٹا کو انکوڈ کریں: صارف کے قابل کنٹرول ڈیٹا کو رینڈر کرنے سے پہلے اسے محفوظ شکل میں تبدیل کریں۔ HTML باڈی کے لیے HTML entity انکوڈنگ اور ان مخصوص سیاق و سباق [S1][S2] کے لیے مناسب JavaScript یا CSS انکوڈنگ کا استعمال کریں۔
  • آمد پر ان پٹ فلٹر کریں: متوقع ان پٹ فارمیٹس کے لیے سخت اجازت دینے والی فہرستوں کو نافذ کریں اور ایسی کسی بھی چیز کو مسترد کریں جو [S1][S2] کے مطابق نہ ہو۔
  • سیکیورٹی ہیڈرز کا استعمال کریں: جاوا اسکرپٹ [S2] کے ذریعے رسائی کو روکنے کے لیے سیشن کوکیز پر HttpOnly پرچم سیٹ کریں۔ Content-Type اور X-Content-Type-Options: nosniff کو یقینی بنانے کے لیے استعمال کریں کہ براؤزر جوابات کو قابل عمل کوڈ [S1] کے طور پر غلط تشریح نہ کریں۔
  • مواد کی حفاظت کی پالیسی (CSP): ایک مضبوط CSP کو ان ذرائع کو محدود کرنے کے لیے تعینات کریں جہاں سے اسکرپٹس کو لوڈ اور عمل میں لایا جا سکتا ہے، جس سے ایک دفاعی پرت ZXCVFIXVIBETOKEN0ZXVXVIBETOKEN0ZXVXVXVICV1VCV

FixVibe اس کے لیے کیسے ٹیسٹ کرتا ہے۔

FixVibe XSS کو سکیننگ کے قائم کردہ طریقوں کی بنیاد پر کثیر پرتوں والے نقطہ نظر کے ذریعے تلاش کر سکتا ہے [S1]:

  • غیر فعال اسکینز: Content-Security-Policy یا X-Content-Type-Options جیسے غائب یا کمزور سیکیورٹی ہیڈرز کی نشاندہی کرنا جو XSS [S1] کو کم کرنے کے لیے بنائے گئے ہیں۔
  • ایکٹو پروبس: یو آر ایل پیرامیٹرز اور فارم فیلڈز میں منفرد، غیر نقصان دہ حروف عددی تاروں کا انجیکشن لگانا تاکہ یہ معلوم کیا جا سکے کہ آیا وہ [S1] کو مناسب انکوڈنگ کے بغیر رسپانس باڈی میں جھلکتی ہیں۔
  • ریپو اسکینز: کلائنٹ سائیڈ جاوا اسکرپٹ کا تجزیہ کرنا "سنکس" کے لیے جو ناقابل اعتماد ڈیٹا کو غیر محفوظ طریقے سے ہینڈل کرتے ہیں، جیسے innerHTML، document.write، یا setTimeout، جن میں سے عام ہیں XSS [S1]۔