تعرفنا في المقالة السابقة على أخطاء XSS (Cross Site Scripting) والاستغلال الفعلي لـ XSS Reflected. هناك نوع آخر من XSS يعتبر أكثر خطورة وهو Stored XSS.
على عكس Reflected، الذي يهاجم بشكل مباشر عددًا قليلًا من الضحايا المستهدفين من قبل المتسللين، يستهدف Stored XSS عددًا أكبر من الضحايا. يحدث هذا الخطأ عندما لا يقوم تطبيق الويب بفحص بيانات الإدخال بدقة قبل حفظها في قاعدة البيانات (هنا أستخدم هذا المفهوم للإشارة إلى قاعدة البيانات أو الملف أو المناطق الأخرى التي تخزن بيانات التطبيق. الويب).
باستخدام تقنية Stored XSS، لا يستغلها المتسللون بشكل مباشر ولكن يجب عليهم القيام بذلك في خطوتين على الأقل.
أولاً، يستخدم المتسللون نقاط الإدخال غير المصفاة (النموذج، الإدخال، منطقة النص...) لإدراج تعليمات برمجية خطيرة في قاعدة البيانات.

بعد ذلك، عندما يصل المستخدم إلى تطبيق الويب وينفذ العمليات المتعلقة بهذه البيانات المحفوظة، سيتم تنفيذ كود الهاكر على متصفح المستخدم.
![Web8: عمليات استغلال XSS - الجزء 2: XSS المخزنة Web8: عمليات استغلال XSS - الجزء 2: XSS المخزنة]()
في هذه المرحلة، يبدو أن الهاكر قد حقق هدفه. لهذا السبب، تسمى تقنية XSS المخزنة أيضًا XSS من الدرجة الثانية.
يتم وصف سيناريو الاستغلال على النحو التالي:
![Web8: عمليات استغلال XSS - الجزء 2: XSS المخزنة Web8: عمليات استغلال XSS - الجزء 2: XSS المخزنة]()
هناك اختلافان رئيسيان في عملية الهجوم لـ XSS المنعكس وXSS المخزن.
- أولاً، لاستغلال Reflected XSS، يجب على المتسلل خداع الضحية للوصول إلى عنوان URL الخاص به. أما بالنسبة لـ Stored XSS فلا داعي للقيام بذلك، فبعد إدخال الكود الخطير في قاعدة بيانات التطبيق، ما على المتسلل سوى انتظار وصول الضحية إليه تلقائيًا. بالنسبة للضحايا، يعد هذا أمرًا طبيعيًا تمامًا لأنهم لا يعرفون أن البيانات التي يصلون إليها قد تعرضت للإصابة.
- ثانيًا، سيكون تحقيق هدف المتسلل أسهل إذا كانت الضحية لا تزال في جلسة تطبيق الويب وقت الهجوم. باستخدام Reflected XSS، يمكن للمتسلل إقناع الضحية أو خداعها لتسجيل الدخول والوصول إلى عنوان URL الذي يوفره لتنفيذ تعليمات برمجية ضارة. لكن Stored XSS مختلف، لأنه تم تخزين التعليمات البرمجية الضارة في قاعدة بيانات الويب، لذلك عندما يصل المستخدم إلى الوظائف ذات الصلة، سيتم تنفيذ التعليمات البرمجية الضارة، وعلى الأرجح تتطلب هذه الوظائف المصادقة، قم بتسجيل الدخول أولاً، لذلك من الواضح خلال هذا الوقت المستخدم لا يزال في الجلسة.
من هذه الأشياء، يمكن ملاحظة أن Stored XSS أكثر خطورة بكثير من Reflected XSS، ويمكن أن يكون الأشخاص المتأثرون جميع مستخدمي تطبيق الويب هذا. وإذا كان للضحية دور إداري، فهناك أيضًا خطر اختطاف الويب.