تقنية

ما هو XSS؟ تم توضيح هجمات البرمجة عبر المواقع

ما هو XSS؟ تم توضيح هجمات البرمجة عبر المواقع

 

في حالة هجوم XSS ، يقوم المهاجمون بحقن تعليمات برمجية ضارة في نموذج ويب أو عنوان URL لتطبيق ويب لإجباره على القيام بشيء لا ينبغي القيام به.


 
 

البرمجة النصية عبر المواقع (XSS) هي هجوم إلكتروني يقوم فيه أحد المتطفلين بإدخال تعليمات برمجية ضارة في نموذج ويب أو عنوان url لتطبيق ويب. يمكن لهذه الشفرة الضارة ، المكتوبة بلغة برمجة نصية مثل JavaScript أو PHP ، أن تفعل أي شيء من تدمير الصفحة التي تحاول تحميلها إلى سرقة كلمات المرور الخاصة بك أو بيانات اعتماد تسجيل الدخول الأخرى.

يستخدم XSS جانبًا مهمًا من الإنترنت الحديث ، وهو حقيقة أن معظم صفحات الويب يتم إنشاؤها أثناء تحميل الصفحات ، أحيانًا عن طريق تنفيذ التعليمات البرمجية في المتصفح نفسه. هذا يمكن أن يجعل من الصعب منع مثل هذه الهجمات.

تحقق أيضًا من:

كيف يعمل هجوم XSS

يمكن لأي شخص إنشاء موقع ويب يحتوي على تعليمات برمجية ضارة. في حالة هجوم البرمجة النصية عبر المواقع ، يقوم المهاجم بترتيب كل شيء بحيث تصل شفرته إلى كمبيوتر الضحية عندما يزور موقع الويب الخاص بشخص آخر. هذا هو المكان الذي يأتي منه “الصليب” في الاسم. تحقق هجمات XSS هذا دون الحاجة إلى وصول مميز إلى خادم ويب لوضع رمز عليه خلسة. بدلاً من ذلك ، يستفيد المهاجمون من طريقة عمل مواقع الويب الحديثة.

إذا طلب منك شخص ما شرحًا بسيطًا وأساسيًا لكيفية عمل الويب ، فمن المحتمل أن تخبره بشيء مثل هذا: الشخص الذي يريد إنشاء صفحة ويب يكتب مستند HTML ويضعه على خادم ويب ؛ عندما يريد المستخدم الوصول إلى هذه الصفحة ، فإنه يوجه متصفحه إلى عنوان الخادم ، ويقوم المتصفح بتنزيل كود HTML وتفسيره ، وبناء نسخة من صفحة الويب للمستخدم.

هذا الوصف ليس خاطئًا ، لكن بعض الجوانب قديمة (وهي موجودة منذ أكثر من عشر سنوات). أولاً ، العديد من صفحات الويب ، إن لم يكن كلها ، ديناميكية اليوم – أي أنها لا تعرض نفس HTML الثابت لكل زائر ، بل يتم إنشاؤها على الفور من المعلومات الموجودة في قاعدة بيانات الخادم عندما يطلب المستعرض الوصول. غالبًا ما تعتمد الصفحة التي يتلقاها المتصفح من الخادم على المعلومات المرسلة مع الطلب – المعلومات التي تتخذ أحيانًا شكل المعلمات في عنوان URL المستخدم للوصول إلى الموقع. لا تتكون مواقع الويب فقط من HTML و Cascading Style Sheets (CSS) التي تصف كيفية عرض النص والرسومات ، ولكنها تحتوي أيضًا على تعليمات برمجية قابلة للتنفيذ مكتوبة بلغات البرمجة النصية ، وعادةً ما تكون JavaScript.

في هجوم XSS ، يستخدم المتسلل هذا التفاعل بين المستخدم والموقع الإلكتروني لتنفيذ تعليمات برمجية ضارة على كمبيوتر المستخدم. ولكن كيف؟ ضع في اعتبارك عنوان URL التالي:

https://www.google.com/search?q=CSO+online

أدخل هذا في شريط العنوان في متصفحك وسترى نتائج بحث Google عن “CSO Online”. في الواقع ، تبدو الصفحة التي ستراها مماثلة تمامًا كما لو قمت بإدخال “CSO Online” في شريط البحث في متصفحك أو في صفحة Google الرئيسية. ستلاحظ ، من بين أشياء أخرى ، أن هذه العبارة تظهر في عدة أماكن في الصفحة ، بما في ذلك شريط البحث في الجبال:

ما هو XSS؟ توضيح هجمات البرمجة النصية عبر المواقع

ماذا لو ، بدلاً من عبارة “CSO online” البريئة والناجحة ، احتوى عنوان URL هذا على شفرة JavaScript ضارة مثل هذه؟

https://www.google.com/search?<script>doEvil()</script>

doEvil () يقوم بوظيفة سيئة حقًا هنا. قد تشعر بالقلق من أن Google ، بدلاً من عرض “CSO Online” على الصفحة التي تعيدها من عنوان url هذا ، ستقوم بدلاً من ذلك بدمج جافا سكريبت السيئ في الصفحة التي تعرضها ديناميكيًا ، وأن هذا البرنامج النصي يتم تنفيذه في متصفحك ، مما يتسبب في فوضى. ستكون مخاوفك بلا أساس ، لأن Google لديها عدد كبير جدًا من المتخصصين الموهوبين في مجال أمن تكنولوجيا المعلومات بين موظفيها وقد نفذت إجراءات علاجية سنتحدث عنها بعد قليل. ومع ذلك ، ليس كل موقع حريصًا جدًا وهذا يمنحك فكرة عن كيفية عمل مثل هذه الهجمات.

أتاكي XSS

تنقسم هجمات XSS إلى عدة فئات: الهجمات المنعكسة ، والهجمات المستندة إلى DOM ، والهجمات المخزنة. إليك كيف تختلف:

  • الهجمات المنعكسة: المعروفة أيضًا باسم الهجمات الضعيفة ، يتم إرسال شفرة جافا سكريبت الضارة من متصفح الضحية إلى Google ، ثم تنعكس مرة أخرى في شكل قابل للتنفيذ ، ولا يتم تخزينها نهائيًا على خوادم Google. غالبًا ما تكون هذه الهجمات جزءًا من عملية احتيال تصيد ، حيث يتم إخفاء الرابط الضار على أنه شيء أكثر إمتاعًا ويتم إرساله إلى الضحية عبر البريد الإلكتروني أو الرسائل القصيرة.
  • الهجمات المستندة إلى DOM: هذا هو نوع من الهجوم المنعكس المسمى باسم Document Object Model ، وهو واجهة برمجة تطبيقات معيارية تحدد كيفية إنشاء المتصفحات لصفحة ويب من التعليمات البرمجية الأساسية لـ HTML أو JavaScript. تتشابه معظم هجمات DOM مع الهجوم المنعكس الموصوف سابقًا ، مع اختلاف عدم إرسال الشفرة الضارة أبدًا إلى الخادم: بدلاً من ذلك يتم تمريرها كمعامل لبعض وظائف JavaScript التي يتم تنفيذها في المتصفح نفسه ، مما يعني أن الآليات تحمي على جانب الخادم غير قادرة على حماية المستخدم. إذا كنت مهتمًا بالتفاصيل ، فإن PortSwigger لديه وصف أكثر تفصيلاً لكيفية عمل هجمات DOM.
  • الهجمات المخزنة: بخلاف ذلك تكون مستمرة ؛ يستخدم المهاجم الميزات التفاعلية لموقع الويب لحفظ التعليمات البرمجية الضارة على خادم الويب. في مثال نموذجي ، يترك المهاجم تعليقًا على منشور مدونة يحتوي على JavaScript ضار. في المرة التالية التي يقوم فيها شخص ما بتحميل هذه الصفحة ، سيتم تنفيذ الكود.
  • قابلية التعرض لهجوم XSS

ما الذي يجعل موقع الويب عرضة لهجوم XSS؟ نأمل أن تكون مناقشتنا قد قدمت حتى الآن بعض الإرشادات. إذا كان تطبيق الويب الخاص بك يأخذ مدخلات المستخدم بسذاجة ، ولا يتحقق منه بحثًا عن تعليمات برمجية ضارة قابلة للتنفيذ ، ويستخدم هذه البيانات لعرض صفحة أو تنفيذ عمليات أخرى ، فإنه يكون عرضة لهذا النوع من الهجوم.

والمخاطر كبيرة. الجانب الرئيسي لأمان المتصفح هو ما يسمى ب سياسة نفس الأصل ، والتي تنص على أن البرنامج النصي الذي يتم تنفيذه على صفحة واحدة يمكنه الوصول إلى البيانات الموجودة على الصفحة الأخرى فقط إذا كان لكلا الجانبين نفس الأصل (يُعرّف على أنه مجموعة من مخطط URI واسم المضيف ورقم المنفذ). ومع ذلك ، إذا كان من الممكن تشغيل JavaScript ضار في المتصفح أثناء وصول الضحية إلى موقع الويب ، فسيسمح المتصفح لجافا سكريبت بالوصول إلى البيانات من مواقع الويب الأخرى التي تشارك مصدرًا مع موقع الويب الضعيف. يمكن لـ JavaScript الوصول إلى ملفات تعريف الارتباط ومعلومات جلسة الملكية الأخرى ، وهي وصفة جيدة لاختراق حسابات الإنترنت الخاصة بالضحية.

الحمولات XSS

في لغة البرمجيات الخبيثة ، الحمولة هي رمز قابل للتنفيذ ينفذ الإجراءات المطلوبة من قبل المهاجم. في حالة هجوم XSS ، فإن الحمولة عبارة عن رمز نصي يديره المهاجم لخداع متصفح الضحية ليتم تنفيذه.

توجد قائمة ضخمة من نماذج حمولات XSS في مستودع Payloadbox على GitHub. إذا كنت معتادًا على JavaScript ، فقد تعطيك مراجعتها فكرة عن كيفية قيام مهاجمي XSS بعملهم القذر. ومع ذلك ، فإن هجوم XSS يتجاوز قطع الحمولة ولصقها في عنوان URL: يحتاج المهاجم إلى فهم الوظائف المحددة ونقاط الضعف لتطبيق الويب الذي يريد استغلاله للتخطيط للهجوم. إذا كنت تريد التعمق أكثر ورؤية بعض الأمثلة على هجمات XSS ، فراجع موقع OWASP XSS على الويب للحصول على نظرة متعمقة على كود البرنامج النصي الذي يوضح هجوم XSS.

حماية XSS والوقاية

إذا كنت تقوم بإنشاء أو صيانة تطبيق ويب أو موقع ويب تفاعلي ، فهناك ثلاث تقنيات رئيسية يجب أن تأخذها في الاعتبار في تصميمك لتجنب هجمات البرمجة النصية عبر المواقع المحتملة.

  • تعقيم بيانات الإدخال. إن الإجابة الواضحة لمنع تمرير الشفرة البرمجية الخبيثة كمدخلات ورجوعها إلى المستخدم هي ببساطة عدم قبول كود البرنامج النصي كإدخال. يجب عليك بالتأكيد تصفية مدخلاتك مع وضع ذلك في الاعتبار ، لكن قول ذلك أسهل من فعله ؛ يمكن أن تتسلل أجزاء صغيرة من التعليمات البرمجية القابلة للتنفيذ من خلال المرشحات. تتمثل إحدى طرق التعامل مع هذه المشكلة في استخدام القائمة البيضاء بدلاً من نهج القائمة السوداء – على سبيل المثال ، بدلاً من محاولة كتابة عامل تصفية يحظر جميع التعليمات البرمجية الضارة التي يتم إدخالها في نموذج ويب ، يجب عليك كتابة التطبيق الخاص بك لقبول البيانات في أوقات معينة التنسيقات (أرقام الهواتف وعناوين البريد الإلكتروني وما إلى ذلك) فقط عندما يكون هذا هو ما تريده.
  • الهروب من الإخراج. هذا هو حل المشكلة من ناحية أخرى. إذا أرسل تطبيق ويب إدخال المستخدم مرة أخرى إلى صفحة ويب ، فيجب تصفية هذه البيانات للتأكد من أنها لن تصبح قابلة للتنفيذ في تلك الصفحة. إذا قام المستخدم بإدخال علامات HTML كمدخلات ، فيجب أن يستخدم التطبيق أحرف تم تجاوزها بحيث تظهر هذه العلامات كنص في صفحة النتائج بدلاً من التكامل مع HTML للصفحة نفسها.
  • سياسة أمان المحتوى القياسية (CSP). يأخذ CSP نهج “القائمة البيضاء” خارج إدخال النص إلى مجال البرمجة النصية: يجب على تطبيق الويب فقط تنفيذ التعليمات البرمجية التي حددها المستخدم لتكون آمنة. تمتلك Google بعض الموارد الرائعة حول تنفيذ CSP.

اختبار XSS

يعد اختبار الثغرات الأمنية لهجمات XSS جانبًا مهمًا لضمان أمان تطبيق الويب. لدى OWASP موارد توضح بالتفصيل كيف يمكن اختبار التطبيقات من حيث عدم تعرضها لهجمات DOM أو عكس البرمجة النصية عبر المواقع. إذا كنت تبحث عن ورقة XSS ، فإن OWASP لديها أيضًا مستند به كود هجوم XSS من أجلك يمكن استخدامه لتجاوز بعض عوامل تصفية دفاع XSS ؛ سيثبت أنه لا يقدر بثمن في اختبارات الاختراق التي يمكنك إجراؤها على أنظمتك الخاصة.

XSS و CSRF

قد تسمع أن CSRF يُستخدم في نفس سياق XSS. إنه اختصار لتزوير الطلب عبر المواقع ، أي هجوم – مثل XSS – يستهدف متصفح المستخدم. يتمثل الاختلاف الرئيسي في أن CSRF يستخدم جلسة مصدق عليها للمستخدم (ربما قام بتسجيل الدخول إلى حسابه المصرفي) بينما لا يحتاج XSS إلى جلسة مصدق عليها حتى تكون فعالة.

لنفترض أن مستخدمًا قد سجّل الدخول إلى Twitter وبنك إنترنت في نفس الوقت ، ونقر على رابط Twitter يشبه هذا:

http://www.yourbank.com/sendmoney,do?from=you&to=attacker&amount=5000

اعتمادًا على الطريقة التي يدير بها البنك الذي تتعامل معه الرموز المميزة للجلسة والمتصفح الذي تستخدمه ، يمكن أن تصبح فجأة أكثر فقرًا. XSS هو ناقل هجوم أكثر خطورة ، ولكن من المهم الدفاع ضد كل من XSS و CSRF. أعدت OWASP ورقة معلومات حول تدابير الحماية ضد CSRF.

هجمات XSS الأخيرة وسيئة السمعة

حدثت واحدة من أقدم وأشهر هجمات البرمجة النصية عبر المواقع في عام 2005 ، عندما أدرك مستخدم MySpace المغامر سامي كامكار أنه يمكنه إدخال كود JavaScript في ملفه الشخصي الذي من شأنه أن يصادق تلقائيًا أي شخص يزور الموقع – وأيضًا نسخ هذا الرمز للملفات الشخصية من أصدقائك الجدد ، وبفضل ذلك سيكون كل من يزور هذه الصفحات صديقًا له أيضًا. (تأكد النص من أن كل من أصدقاء كامكار الجدد جعلوه في “الثمانية الأوائل” – نخشى أنه لفهم ذلك ، يجب أن تكون هناك ، لكن صدقنا ، كان أمرًا مهمًا). في غضون 24 ساعة ، قام بتكوين أكثر من مليون صديق وأجبر موقع MySpace على إغلاق الموقع بأكمله لفترة قصيرة.

تبين أن ما يسمى بدودة سامي غير ضارة في الغالب. ومع ذلك ، كان البعض الآخر أكثر إزعاجًا:

• كان لدى Ebay ثغرات XSS لسنوات سمحت للقراصنة بسرقة بيانات اعتماد تسجيل دخول المستخدم

• تمكن مهاجمو XSS من سرقة نقود V-Bucks من لاعبي Fortnite في عام 2019.

• هاجمت مجموعة Magecart للقرصنة الخطوط الجوية البريطانية في 2018 بهجوم XSS ، وسرقت مئات الآلاف من هويات المستخدمين

ولا تزال البرمجة النصية عبر المواقع نفسها تشكل تهديدًا خطيرًا اليوم. اعتبارًا من عام 2021 ، تم العثور على ثغرات XSS في منصة البريد الإلكتروني Zimbra و WordPress ومنصة Nagios مفتوحة المصدر لإدارة تكنولوجيا المعلومات. ضع في اعتبارك أن المتسللين عادةً لا يستخدمون تقنيات الهجوم بمعزل عن غيرها: البرمجة النصية عبر المواقع هي أحد مكونات شكل معقد تم اكتشافه مؤخرًا من هجوم TLS wildcard المعروف باسم ALPACA. لتجنب التهديدات الخطيرة ، تأكد من إغلاق ثغرات XSS.

المصدر: CSO

.

شاهد ايضا

يوفر Elon Musk خدمة Starlink في أوكرانيا مجاناً

Related Articles

技术

什么是 XSS?跨站点脚本攻击解释

什么是 XSS?跨站点脚本攻击解释

 

在 XSS 攻击的情况下,攻击者将恶意代码注入 Web 表单或 Web 应用程序 URL 以强制其执行不应该执行的操作。


 
 

跨站点脚本 (XSS) 是一种网络攻击,其中黑客将恶意代码插入 Web 表单或 Web 应用程序的 URL。这种以 JavaScript 或 PHP 等脚本语言编写的恶意代码可以做任何事情,从破坏您尝试加载的页面到窃取您的密码或其他登录凭据。

XSS 利用了现代互联网的一个重要方面,即大多数网页是在页面加载时创建的,有时是通过在浏览器本身中执行代码来创建的。这会使防止此类攻击变得困难。

还要检查:

XSS 攻击是如何工作的?

任何人都可以创建包含恶意代码的网站。在跨站点脚本攻击的情况下,攻击者安排一切,以便他的代码在访问其他人的网站时到达受害者的计算机。这就是名字中的“十字架”的由来。XSS 攻击实现了这一点,而不需要对 Web 服务器的特权访问来秘密地放置代码。相反,攻击者利用现代网站的工作方式。

如果有人要求您对 Web 的工作原理进行简单而基本的解释,您可能会这样告诉他们:想要创建网页的人编写 HTML 文档并将其放置在 Web 服务器上;当用户想要访问这个页面时,他将他的浏览器指向服务器地址,浏览器下载并解释 HTML 代码,并构建用户网页的副本。

这个描述没有错,但是有些方面已经过时了(并且已经存在了十多年)。首先,即使不是全部,今天的许多网页都是动态的——也就是说,它们不会向每个访问者显示相同的静态 HTML,而是在浏览器请求访问时从服务器数据库中的信息立即生成。浏览器从服务器接收的页面通常取决于随请求发送的信息——这些信息有时采用用于访问站点的 URL 中的参数形式。网站不仅包含描述如何显示文本和图形的 HTML 和级联样式表 (CSS),而且还包含用脚本语言(通常是 JavaScript)编写的可执行代码。

在 XSS 攻击中,黑客利用用户和网站之间的这种交互来在用户的计算机上执行恶意代码。但如何?考虑以下 URL:

https://www.google.com/search?q=CSO+online

在浏览器的地址栏中输入此内容,您将看到“CSO Online”的 Google 搜索结果。事实上,您将看到的页面看起来与您在浏览器的搜索栏或 Google 主页上输入“CSO Online”完全一样。除其他外,您会注意到该短语出现在页面的多个位置,包括山区的搜索栏:

ما هو XSS؟ توضيح هجمات البرمجة النصية عبر المواقع

如果这个 URL 包含这样的恶意 JavaScript 代码,而不是单纯而成功的短语“CSO online”,该怎么办?

https://www.google.com/search?<script>doEvil()</script>

doEvil() 在这里做得非常糟糕。您可能担心 Google 不会在您从该 url 返回的页面上显示“CSO Online”,而是将错误的 javascript 动态集成到您正在呈现的页面中,并且该脚本正在您的浏览器中执行,造成混乱。您的担心是没有根据的,因为 Google 在其员工中拥有大量优秀的 IT 安全专业人员,并且已经实施了我们稍后将讨论的补救措施。但是,并非每个站点都非常小心,这让您了解此类攻击的工作原理。

Ataki XSS

XSS 攻击分为几类:反射攻击、基于 DOM 的攻击和存储攻击。以下是它们的不同之处:

  • 反射攻击:也称为弱攻击,恶意 JavaScript 代码从受害者的浏览器发送到谷歌,然后以可执行的形式反射回来,从未存储在谷歌的服务器上。这些攻击通常是网络钓鱼诈骗的一部分,其中恶意链接被伪装成更有趣的东西,并通过电子邮件或短信发送给受害者。
  • 基于 DOM 的攻击:这是一种称为文档对象模型的反射攻击,它是一种标准 API,定义了浏览器如何从基本的 HTML 或 JavaScript 代码构建网页。大多数 DOM 攻击类似于前面描述的反射攻击,不同之处在于恶意代码永远不会发送到服务器:而是作为参数传递给浏览器本身执行的某些 JavaScript 函数,这意味着保护机制服务器端无法保护用户。如果您对细节感兴趣,PortSwigger 对 DOM 攻击的工作原理有更详细的描述。
  • 存储攻击:否则持久;攻击者利用网站的交互功能将恶意代码保存在网络服务器上。在一个典型示例中,攻击者在包含恶意 JavaScript 的博客文章上留下评论。下次有人加载此页面时,代码将被执行。
  • 易受 XSS 攻击

是什么让网站容易受到 XSS 攻击?希望我们到目前为止的讨论提供了一些指导。如果您的 Web 应用程序天真地接受用户输入,不检查它是否存在恶意可执行代码,并使用该数据来呈现页面或执行其他操作,那么它很容易受到这种类型的攻击。

而且风险很大。浏览器安全的主要方面是所谓的同源策略,它规定在一个页面上执行的脚本只有在双方具有相同的来源(定义为 URI、主机名、和号码端口)。但是,如果在受害者访问网站时可以在浏览器中运行恶意 JavaScript,则浏览器将允许 JavaScript 访问与易受攻击网站共享资源的其他网站的数据。JavaScript 可以访问 cookie 和其他专有会话信息,这是入侵受害者 Internet 帐户的好方法。

有效载荷 XSS

用恶意软件的说法,有效负载是执行攻击者所需操作的可执行代码。在 XSS 攻击的情况下,有效负载是攻击者运行的脚本代码,以欺骗受害者的浏览器执行。

GitHub 上的 Payloadbox 存储库中有大量 XSS 有效负载模板。如果您熟悉 JavaScript,复习一下它可能会让您了解 XSS 攻击者是如何进行肮脏工作的。但是,XSS 攻击不仅仅是将有效负载剪切并粘贴到 URL 中:攻击者需要了解他想要利用的 Web 应用程序的特定功能和漏洞来计划攻击。如果您想深入挖掘并查看 XSS 攻击的一些示例,请查看 OWASP XSS 网站以深入了解演示 XSS 攻击的脚本代码。

XSS防护与预防

如果您正在构建或维护 Web 应用程序或交互式网站,您应该在设计中考虑三种主要技术,以避免潜在的跨站点脚本攻击。

  • 输入数据的灭菌。防止恶意代码作为输入传递并返回给用户的明显答案就是不接受脚本代码作为输入。您绝对应该牢记这一点来过滤您的输入,但这说起来容易做起来难;一小段可执行代码可以通过过滤器。处理此问题的一种方法是使用白名单而不是黑名单方法 – 例如,您必须编写应用程序来接受特定时间的数据格式(电话号码、电子邮件地址等)仅在您想要的情况下。
  • 逃离输出。另一方面,这是解决问题的方法。如果 Web 应用程序将用户输入发送回网页,则必须过滤此数据以确保它不会在该页面上成为可执行文件。如果用户输入 HTML 标记作为输入,应用程序必须使用覆盖字符,以便这些标记在结果页面上显示为文本,而不是与页面本身的 HTML 集成。
  • 标准内容安全策略 (CSP)。CSP 将文本输入之外的“白名单”方法带入脚本领域:Web 应用程序应该只执行用户指定为安全的代码。Google 在实施 CSP 方面有一些很好的资源。

跨站脚本测试

XSS 攻击的漏洞测试是确保 Web 应用程序安全的一个重要方面。OWASP 有详细说明如何测试应用程序以避免 DOM 攻击或反向跨站点脚本的资源。如果您正在寻找 XSS 表格,OWASP 还为您提供了包含 XSS 攻击代码的文档,可用于绕过某些 XSS 防御过滤器;它将在您可以在自己的系统上执行的渗透测试中证明是无价的。

XSS 和 CSRF

您可能听说 CSRF 与 XSS 在相同的上下文中使用。它是 Cross-Site Request Forgery 的缩写,一种针对用户浏览器的攻击,例如 XSS。主要区别在于 CSRF 为用户使用经过身份验证的会话(可能他们已登录到他们的银行帐户),而 XSS 不需要经过身份验证的会话即可生效。

假设用户同时登录 Twitter 和网上银行,他们点击如下所示的 Twitter 链接:

http://www.yourbank.com/sendmoney,do?from=you&to=attacker&amount=5000

根据您的银行管理会话令牌的方式和您使用的浏览器,它们可能会突然变得更差。XSS 是一种更危险的攻击向量,但同时防御 XSS 和 CSRF 很重要。OWASP 准备了一份关于针对 CSRF 的保护措施的信息表。

最近和臭名昭著的 XSS 攻击

最古老和最著名的跨站点脚本攻击之一发生在 2005 年,当时有进取心的 MySpace 用户 Sammy Kamkar 意识到他可以在他的个人资料中输入 JavaScript 代码,这将自动验证访问该站点的任何人 – 并将该代码复制到您的个人资料中新朋友,多亏了这一点,所有访问这些页面的人也将成为他的朋友。(剧本确保卡姆卡的每个新朋友都进入了“前八名”——我们害怕理解这一点,你必须在那里,但相信我们,这很重要。)在 24 小时内,他结交了超过一百万的朋友,并迫使 MySpace 短时间关闭了整个网站。

事实证明,所谓的萨米蠕虫大多是无害的。然而,其他人更烦人:

• Ebay 多年来一直存在 XSS 漏洞,允许黑客窃取用户登录凭据

• XSS 攻击者能够在 2019 年从 Fortnite 玩家那里窃取 V-Bucks。

• 黑客组织 Magecart 于 2018 年通过 XSS 攻击攻击了英国航空公司,窃取了数十万用户身份

跨站点脚本在今天仍然是一个严重的威胁。截至 2021 年,已在 Zimbra 电子邮件平台、Wordpress 和开源 IT 管理平台 Nagios 中发现 XSS 漏洞。请记住,黑客通常不会孤立地使用攻击技术:跨站点脚本是最近发现的复杂形式的 TLS 通配符攻击(称为 ALPACA)的一个组成部分。为避免危险威胁,请确保关闭 XSS 漏洞。

资料来源:公民社会组织

.

还看

伊隆马斯克在乌克兰免费提供 Starlink 服务

Related Articles

Technique

What is XSS? Cross-site scripting attacks explained

What is XSS? Cross-site scripting attacks explained

 

In the case of an XSS attack, the attackers inject malicious code into a web form or web application URL to force it to do something it shouldn’t do.


 
 

Cross-Site Scripting (XSS) is a cyber attack in which a hacker inserts malicious code into a web form or url of a web application. This malicious code, written in a scripting language like JavaScript or PHP, can do anything from destroy the page you’re trying to load to steal your passwords or other login credentials.

XSS makes use of an important aspect of the modern internet, which is the fact that most web pages are created while pages are being loaded, sometimes by executing code in the browser itself. This can make it difficult to prevent such attacks.

Check also:

How does an XSS attack work?

Anyone can create a website that contains malicious code. In the case of a cross-site scripting attack, the attacker arranges everything so that his code reaches the victim’s computer when he visits someone else’s website. This is where the “cross” in the name comes from. XSS attacks achieve this without requiring privileged access to a web server to surreptitiously put code on. Instead, attackers take advantage of the way modern websites work.

If someone asked you for a simple and basic explanation of how the web works, you could probably tell them something like this: the person who wants to create a web page writes an HTML document and places it on a web server; When the user wants to access this page, he directs his browser to the server address, the browser downloads and interprets the HTML code, and builds a copy of the user’s web page.

This description is not wrong, but some aspects are outdated (and have been around for over ten years). First, many, if not all, web pages are dynamic today – that is, they don’t display the same static HTML to every visitor, but rather are generated instantly from information in the server’s database when the browser requests access. The page that the browser receives from the server often depends on the information sent with the request – information that sometimes takes the form of parameters in the URL used to access the site. Websites not only consist of HTML and Cascading Style Sheets (CSS) that describe how to display text and graphics, but they also contain executable code written in scripting languages, usually JavaScript.

In an XSS attack, the hacker uses this interaction between the user and the website to execute malicious code on the user’s computer. but how? Consider the following URL:

https://www.google.com/search?q=CSO+online

Enter this into the address bar of your browser and you will see Google search results for “CSO Online”. In fact, the page you’ll see looks exactly the same as if you entered “CSO Online” in your browser’s search bar or on the Google homepage. You will notice, among other things, that this phrase appears in several places on the page, including the search bar in the mountains:

What is XSS?  Clarify cross-site scripting attacks

What if, instead of the innocent and successful phrase “CSO online”, this URL contained malicious JavaScript code like this?

https://www.google.com/search?<script>doEvil()</script>

doEvil() does a really bad job here. You might be concerned that Google, instead of displaying “CSO Online” on the page you’re returning from this url, will instead dynamically integrate the bad javascript into the page you’re rendering, and that this script is being executed in your browser, causing a mess . Your concerns will be unfounded, because Google has a very large number of talented IT security professionals among its employees and has implemented remedial measures that we will talk about a little later. However, not every site is very careful and this gives you an idea of ​​how such attacks work.

Ataki XSS

XSS attacks fall into several categories: reflected attacks, DOM-based attacks, and stored attacks. Here’s how they differ:

  • Reflex attacks: Also known as weak attacks, malicious JavaScript code is sent from the victim’s browser to Google, then reflected back in an executable form, never stored on Google’s servers. These attacks are often part of a phishing scam, where the malicious link is disguised as something more amusing and sent to the victim via email or SMS.
  • DOM-based attacks: This is a type of reflex attack called Document Object Model, which is a standard API that defines how browsers build a web page from basic HTML or JavaScript code. Most DOM attacks are similar to the reflex attack described earlier, with the difference that malicious code is never sent to the server: instead it is passed as a parameter to some JavaScript function that is executed in the browser itself, which means that the mechanisms protecting on the server side are unable to protect the user. If you’re interested in the details, PortSwigger has a more detailed description of how DOM attacks work.
  • Stored attacks: otherwise persistent; The attacker uses the interactive features of the website to save malicious code on the web server. In a typical example, the attacker leaves a comment on a blog post that contains malicious JavaScript. The next time someone loads this page, the code will be executed.
  • Vulnerability to XSS attack

What makes a website vulnerable to an XSS attack? Hopefully our discussion so far has provided some guidance. If your web application naively takes user input, doesn’t check it for malicious executable code, and uses that data to render a page or perform other operations, it is vulnerable to this type of attack.

And the risks are great. The main aspect of browser security is the so-called same-origin policy, which states that a script executing on one page can access data on the other page only if both sides have the same origin (defined as a combination of URI, hostname, and number port). However, if malicious JavaScript can be run in the browser while the victim is accessing the website, the browser will allow the JavaScript to access data from other websites that share a resource with the vulnerable website. JavaScript can access cookies and other proprietary session information, which is a good recipe for hacking victim’s internet accounts.

Payloads XSS

In the parlance of malware, a payload is an executable code that performs actions required by the attacker. In the case of an XSS attack, the payload is a script code that the attacker runs to trick the victim’s browser into being executed.

There is a huge list of XSS payload templates in the Payloadbox repository on GitHub. If you’re familiar with JavaScript, reviewing it might give you an idea of ​​how XSS attackers do their dirty work. However, an XSS attack goes beyond cutting and pasting the payload into the URL: the attacker needs to understand the specific functions and vulnerabilities of the web application he wants to exploit to plan the attack. If you want to dig deeper and see some examples of XSS attacks, check out the OWASP XSS website for an in-depth look at the script code that demonstrates an XSS attack.

XSS Protection and Prevention

If you are building or maintaining a web application or interactive website, there are three main techniques you should consider in your design to avoid potential cross-site scripting attacks.

  • Sterilization of input data. The obvious answer to prevent malicious code from being passed as input and returned to the user is simply not to accept script code as input. You should definitely filter your input with this in mind, but that’s easier said than done; Small bits of executable code can slip through filters. One way to deal with this problem is to use a whitelist instead of a blacklist approach – for example, instead of trying to write a filter that will block all malicious code being fed into a web form, you have to write your application to accept the data at certain times Formats (phone numbers, email addresses, etc.) only when that’s what you want.
  • Escape from the output. This is the solution to the problem on the other hand. If a web application sends user input back to a web page, this data must be filtered to ensure that it does not become executable on that page. If the user enters HTML tags as input, the application must use overridden characters so that these tags appear as text on the results page rather than integrating with the HTML of the page itself.
  • Standard Content Security Policy (CSP). CSP takes the “whitelisting” approach outside of text entry into the realm of scripting: a web application should only execute code that the user has specified to be safe. Google has some great resources on implementing CSP.

XSS test

Vulnerability testing for XSS attacks is an important aspect of ensuring the security of a web application. OWASP has resources detailing how applications can be tested to avoid DOM attacks or reverse cross-site scripting. If you are looking for an XSS sheet, OWASP also has a document with XSS attack code for you that can be used to bypass some XSS defense filters; It will prove invaluable in the penetration tests that you can perform on your own systems.

XSS و CSRF

You may hear that CSRF is used in the same context as XSS. It’s short for Cross-Site Request Forgery, an attack – like XSS – that targets a user’s browser. The main difference is that CSRF uses an authenticated session for the user (maybe they are logged into their bank account) while XSS doesn’t need an authenticated session in order to be effective.

Let’s say a user is logged into Twitter and an internet bank at the same time, and click on a Twitter link that looks like this:

http://www.yourbank.com/sendmoney,do?from=you&to=attacker&amount=5000

Depending on the way your bank manages session tokens and the browser you’re using, they can suddenly become much poorer. XSS is a more dangerous attack vector, but it is important to defend against both XSS and CSRF. OWASP has prepared an information sheet on protection measures against CSRF.

Recent and Infamous XSS Attacks

One of the oldest and most famous cross-site scripting attacks occurred in 2005, when enterprising MySpace user Sammy Kamkar realized he could enter JavaScript code into his profile that would automatically authenticate anyone visiting the site – and also copy that code to the profiles of your new friends, Thanks to that, everyone who visits these pages will also be his friend. (The script made sure that each of Kamkar’s new friends made it into the “top eight” – we’re afraid to understand that, you’d have to be there, but believe us, it mattered.) Within 24 hours, he made over a million friends and forced MySpace to shut down the entire site for a short time.

It turns out that the so-called Sami worm is mostly harmless. However, others were more annoying:

• Ebay had XSS vulnerabilities for years that allowed hackers to steal user login credentials

• XSS attackers were able to steal V-Bucks from Fortnite players in 2019.

• Hacking group Magecart attacked British Airways in 2018 with an XSS attack, stealing hundreds of thousands of user identities

And cross-site scripting remains a serious threat today. As of 2021, XSS vulnerabilities have been found in the Zimbra email platform, WordPress, and the open source IT management platform Nagios. Keep in mind that hackers usually don’t use attack techniques in isolation: cross-site scripting is a component of a recently discovered complex form of the TLS wildcard attack known as ALPACA. To avoid dangerous threats, make sure you close the XSS vulnerabilities.

Source: CSO

.

Watch also

Elon Musk provides Starlink service in Ukraine for free

Related Articles

Technique

Qu’est-ce que XSS ? Les attaques de script intersite expliquées

Qu’est-ce que XSS ? Les attaques de script intersite expliquées

 

Dans le cas d’une attaque XSS, les attaquants injectent un code malveillant dans un formulaire Web ou une URL d’application Web pour le forcer à faire quelque chose qu’il ne devrait pas faire.


 
 

Le Cross-Site Scripting (XSS) est une cyberattaque dans laquelle un pirate insère un code malveillant dans un formulaire Web ou l’URL d’une application Web. Ce code malveillant, écrit dans un langage de script comme JavaScript ou PHP, peut faire n’importe quoi, de la destruction de la page que vous essayez de charger au vol de vos mots de passe ou d’autres identifiants de connexion.

XSS utilise un aspect important de l’Internet moderne, à savoir le fait que la plupart des pages Web sont créées pendant le chargement des pages, parfois en exécutant du code dans le navigateur lui-même. Cela peut rendre difficile la prévention de telles attaques.

Vérifiez également :

Comment fonctionne une attaque XSS ?

N’importe qui peut créer un site Web contenant du code malveillant. Dans le cas d’une attaque par cross-site scripting, l’attaquant s’arrange pour que son code atteigne l’ordinateur de la victime lorsqu’il visite le site Web d’un tiers. C’est de là que vient la “croix” dans le nom. Les attaques XSS y parviennent sans nécessiter d’accès privilégié à un serveur Web pour y placer subrepticement du code. Au lieu de cela, les attaquants profitent du fonctionnement des sites Web modernes.

Si quelqu’un vous demandait une explication simple et basique du fonctionnement du Web, vous pourriez probablement lui dire quelque chose comme ceci : la personne qui veut créer une page Web écrit un document HTML et le place sur un serveur Web ; Lorsque l’utilisateur veut accéder à cette page, il dirige son navigateur vers l’adresse du serveur, le navigateur télécharge et interprète le code HTML, et construit une copie de la page Web de l’utilisateur.

Cette description n’est pas fausse, mais certains aspects sont dépassés (et existent depuis plus de dix ans). Premièrement, de nombreuses pages Web, sinon toutes, sont dynamiques aujourd’hui – c’est-à-dire qu’elles n’affichent pas le même code HTML statique pour chaque visiteur, mais sont plutôt générées instantanément à partir des informations de la base de données du serveur lorsque le navigateur demande l’accès. La page que le navigateur reçoit du serveur dépend souvent des informations envoyées avec la requête – informations qui prennent parfois la forme de paramètres dans l’URL utilisée pour accéder au site. Les sites Web se composent non seulement de HTML et de feuilles de style en cascade (CSS) qui décrivent comment afficher du texte et des graphiques, mais ils contiennent également du code exécutable écrit dans des langages de script, généralement JavaScript.

Dans une attaque XSS, le pirate utilise cette interaction entre l’utilisateur et le site Web pour exécuter un code malveillant sur l’ordinateur de l’utilisateur. mais comment? Considérez l’URL suivante :

https://www.google.com/search?q=OSC+en ligne

Entrez-le dans la barre d’adresse de votre navigateur et vous verrez les résultats de recherche Google pour “CSO Online”. En fait, la page que vous verrez est exactement la même que si vous aviez saisi “CSO Online” dans la barre de recherche de votre navigateur ou sur la page d’accueil de Google. Vous remarquerez, entre autres, que cette phrase apparaît à plusieurs endroits sur la page, dont la barre de recherche en montagne :

Qu'est-ce que XSS ?  Clarifier les attaques de script intersite

Et si, au lieu de l’expression innocente et réussie “OSC en ligne”, cette URL contenait un code JavaScript malveillant comme celui-ci ?

https://www.google.com/search?<script>doEvil()</script>

doEvil() fait un très mauvais travail ici. Vous craignez peut-être que Google, au lieu d’afficher “CSO Online” sur la page que vous renvoyez à partir de cette URL, intègre dynamiquement le mauvais javascript dans la page que vous affichez, et que ce script soit exécuté dans votre navigateur , provoquant un gâchis . Vos inquiétudes seront sans fondement, car Google compte un très grand nombre de talentueux professionnels de la sécurité informatique parmi ses employés et a mis en place des mesures correctives dont nous parlerons un peu plus tard. Cependant, tous les sites ne sont pas très prudents et cela vous donne une idée du fonctionnement de telles attaques.

Ataki XSS

Les attaques XSS se répartissent en plusieurs catégories : les attaques réfléchies, les attaques basées sur DOM et les attaques stockées. Voici comment ils diffèrent :

  • Attaques réflexes : également appelées attaques faibles, le code JavaScript malveillant est envoyé du navigateur de la victime à Google, puis renvoyé sous une forme exécutable, jamais stocké sur les serveurs de Google. Ces attaques font souvent partie d’une escroquerie par hameçonnage, où le lien malveillant est déguisé en quelque chose de plus amusant et envoyé à la victime par e-mail ou SMS.
  • Attaques basées sur DOM : il s’agit d’un type d’attaque réflexe appelé Document Object Model, qui est une API standard qui définit la façon dont les navigateurs créent une page Web à partir de code HTML ou JavaScript de base. La plupart des attaques DOM sont similaires à l’attaque réflexe décrite précédemment, à la différence que le code malveillant n’est jamais envoyé au serveur : à la place, il est passé en paramètre à une fonction JavaScript qui est exécutée dans le navigateur lui-même, ce qui signifie que les mécanismes protégeant côté serveur sont incapables de protéger l’utilisateur. Si vous êtes intéressé par les détails, PortSwigger a une description plus détaillée du fonctionnement des attaques DOM.
  • Attaques stockées : autrement persistantes ; L’attaquant utilise les fonctionnalités interactives du site Web pour enregistrer un code malveillant sur le serveur Web. Dans un exemple typique, l’attaquant laisse un commentaire sur un article de blog contenant du JavaScript malveillant. La prochaine fois que quelqu’un chargera cette page, le code sera exécuté.
  • Vulnérabilité à l’attaque XSS

Qu’est-ce qui rend un site Web vulnérable à une attaque XSS ? J’espère que notre discussion jusqu’à présent a fourni des indications. Si votre application Web accepte naïvement les entrées de l’utilisateur, ne vérifie pas qu’il n’y a pas de code exécutable malveillant et utilise ces données pour afficher une page ou effectuer d’autres opérations, elle est vulnérable à ce type d’attaque.

Et les risques sont grands. Le principal aspect de la sécurité du navigateur est la politique dite de même origine, qui stipule qu’un script s’exécutant sur une page ne peut accéder aux données de l’autre page que si les deux côtés ont la même origine (définie comme une combinaison d’URI, de nom d’hôte, et numéro de port). Cependant, si du JavaScript malveillant peut être exécuté dans le navigateur pendant que la victime accède au site Web, le navigateur permettra au JavaScript d’accéder aux données d’autres sites Web qui partagent une ressource avec le site Web vulnérable. JavaScript peut accéder aux cookies et à d’autres informations de session propriétaires, ce qui est une bonne recette pour pirater les comptes Internet des victimes.

Charges utiles XSS

Dans le jargon des logiciels malveillants, une charge utile est un code exécutable qui exécute les actions requises par l’attaquant. Dans le cas d’une attaque XSS, la charge utile est un code de script que l’attaquant exécute pour inciter le navigateur de la victime à s’exécuter.

Il existe une énorme liste de modèles de charge utile XSS dans le référentiel Payloadbox sur GitHub. Si vous êtes familier avec JavaScript, l’examiner pourrait vous donner une idée de la façon dont les attaquants XSS font leur sale boulot. Cependant, une attaque XSS va au-delà du copier-coller de la charge utile dans l’URL : l’attaquant doit comprendre les fonctions et les vulnérabilités spécifiques de l’application Web qu’il souhaite exploiter pour planifier l’attaque. Si vous souhaitez approfondir et voir quelques exemples d’attaques XSS, consultez le site Web OWASP XSS pour un examen approfondi du code de script qui illustre une attaque XSS.

Protection et prévention XSS

Si vous créez ou gérez une application Web ou un site Web interactif, vous devez prendre en compte trois techniques principales dans votre conception pour éviter les attaques potentielles de script intersite.

  • Stérilisation des données d’entrée. La réponse évidente pour empêcher qu’un code malveillant soit transmis en entrée et renvoyé à l’utilisateur consiste simplement à ne pas accepter de code de script en entrée. Vous devriez certainement filtrer votre entrée en gardant cela à l’esprit, mais c’est plus facile à dire qu’à faire ; De petits morceaux de code exécutable peuvent passer à travers les filtres. Une façon de traiter ce problème est d’utiliser une approche de liste blanche au lieu d’une approche de liste noire – par exemple, au lieu d’essayer d’écrire un filtre qui bloquera tout code malveillant introduit dans un formulaire Web, vous devez écrire votre application pour accepter le données à certains moments Formats (numéros de téléphone, adresses e-mail, etc.) uniquement lorsque c’est ce que vous voulez.
  • Échappez-vous de la sortie. C’est la solution au problème d’autre part. Si une application Web renvoie une entrée utilisateur vers une page Web, ces données doivent être filtrées pour s’assurer qu’elles ne deviennent pas exécutables sur cette page. Si l’utilisateur entre des balises HTML en entrée, l’application doit utiliser des caractères remplacés afin que ces balises apparaissent sous forme de texte sur la page de résultats plutôt que de s’intégrer au code HTML de la page elle-même.
  • Politique de sécurité de contenu standard (CSP). CSP adopte l’approche de “liste blanche” en dehors de la saisie de texte dans le domaine des scripts : une application Web ne doit exécuter que le code que l’utilisateur a spécifié comme étant sûr. Google propose d’excellentes ressources sur la mise en œuvre de CSP.

Test XSS

Les tests de vulnérabilité pour les attaques XSS sont un aspect important pour garantir la sécurité d’une application Web. L’OWASP dispose de ressources détaillant comment les applications peuvent être testées pour éviter les attaques DOM ou les scripts intersites inversés. Si vous recherchez une feuille XSS, l’OWASP a également un document avec le code d’attaque XSS qui peut être utilisé pour contourner certains filtres de défense XSS ; Il s’avérera inestimable dans les tests d’intrusion que vous pourrez effectuer sur vos propres systèmes.

XSS à CSRF

Vous pouvez entendre que CSRF est utilisé dans le même contexte que XSS. C’est l’abréviation de Cross-Site Request Forgery, une attaque – comme XSS – qui cible le navigateur d’un utilisateur. La principale différence est que CSRF utilise une session authentifiée pour l’utilisateur (peut-être qu’il est connecté à son compte bancaire) tandis que XSS n’a pas besoin d’une session authentifiée pour être efficace.

Supposons qu’un utilisateur soit connecté à Twitter et à une banque Internet en même temps, et qu’il clique sur un lien Twitter qui ressemble à ceci :

http://www.votrebanque.com/sendmoney,do?from=you&to=attacker&amount=5000

Selon la façon dont votre banque gère les jetons de session et le navigateur que vous utilisez, ils peuvent soudainement devenir beaucoup plus pauvres. XSS est un vecteur d’attaque plus dangereux, mais il est important de se défendre à la fois contre XSS et CSRF. L’OWASP a préparé une fiche d’information sur les mesures de protection contre le CSRF.

Attaques XSS récentes et infâmes

L’une des attaques de scripts intersites les plus anciennes et les plus célèbres s’est produite en 2005, lorsque l’utilisateur entreprenant de MySpace, Sammy Kamkar, s’est rendu compte qu’il pouvait entrer du code JavaScript dans son profil qui authentifierait automatiquement toute personne visitant le site – et également copier ce code dans les profils de votre de nouveaux amis, grâce à cela, tous ceux qui visitent ces pages seront aussi son ami. (Le script a fait en sorte que chacun des nouveaux amis de Kamkar se classe dans le “top huit” – nous avons peur de comprendre cela, vous devriez être là, mais croyez-nous, c’était important.) En 24 heures, il s’est fait plus d’un million d’amis et a forcé MySpace à fermer l’ensemble du site pendant une courte période.

Il s’avère que le soi-disant ver Sami est pour la plupart inoffensif. Cependant, d’autres étaient plus ennuyeux:

• Ebay a eu des vulnérabilités XSS pendant des années qui ont permis aux pirates de voler les identifiants de connexion des utilisateurs

• Les attaquants XSS ont pu voler des V-Bucks aux joueurs de Fortnite en 2019.

• Le groupe de piratage Magecart a attaqué British Airways en 2018 avec une attaque XSS, volant des centaines de milliers d’identités d’utilisateurs

Et les scripts intersites restent une menace sérieuse aujourd’hui. Depuis 2021, des vulnérabilités XSS ont été découvertes dans la plateforme de messagerie Zimbra, WordPress et la plateforme de gestion informatique open source Nagios. Gardez à l’esprit que les pirates n’utilisent généralement pas les techniques d’attaque de manière isolée : les scripts intersites sont un composant d’une forme complexe récemment découverte de l’attaque générique TLS connue sous le nom d’ALPACA. Pour éviter les menaces dangereuses, assurez-vous de fermer les vulnérabilités XSS.

Source : OSC

.

Regardez aussi

Elon Musk fournit gratuitement le service Starlink en Ukraine

Related Articles

Technik

Was ist XSS? Cross-Site-Scripting-Angriffe erklärt

Was ist XSS? Cross-Site-Scripting-Angriffe erklärt

 

Im Falle eines XSS-Angriffs fügen die Angreifer schädlichen Code in ein Webformular oder eine Webanwendungs-URL ein, um es zu etwas zu zwingen, was es nicht tun sollte.


 
 

Cross-Site Scripting (XSS) ist ein Cyberangriff, bei dem ein Hacker schädlichen Code in ein Webformular oder eine URL einer Webanwendung einfügt. Dieser bösartige Code, der in einer Skriptsprache wie JavaScript oder PHP geschrieben ist, kann alles tun, von der Zerstörung der Seite, die Sie zu laden versuchen, bis hin zum Diebstahl Ihrer Passwörter oder anderer Anmeldedaten.

XSS nutzt einen wichtigen Aspekt des modernen Internets, nämlich die Tatsache, dass die meisten Webseiten erstellt werden, während Seiten geladen werden, manchmal durch Ausführen von Code im Browser selbst. Dies kann es schwierig machen, solche Angriffe zu verhindern.

Überprüfen Sie auch:

Wie funktioniert ein XSS-Angriff?

Jeder kann eine Website erstellen, die schädlichen Code enthält. Bei einem Cross-Site-Scripting-Angriff richtet der Angreifer alles so ein, dass sein Code den Rechner des Opfers erreicht, wenn dieses eine fremde Website besucht. Daher kommt das „Kreuz“ im Namen. XSS-Angriffe erreichen dies, ohne privilegierten Zugriff auf einen Webserver zu benötigen, um heimlich Code einzufügen. Stattdessen nutzen Angreifer die Funktionsweise moderner Websites aus.

Wenn Sie jemand um eine einfache und grundlegende Erklärung der Funktionsweise des Webs bitten würde, könnten Sie ihm wahrscheinlich so etwas sagen: Die Person, die eine Webseite erstellen möchte, schreibt ein HTML-Dokument und legt es auf einem Webserver ab; Wenn der Benutzer auf diese Seite zugreifen möchte, leitet er seinen Browser an die Serveradresse, der Browser lädt den HTML-Code herunter und interpretiert ihn und erstellt eine Kopie der Webseite des Benutzers.

Diese Beschreibung ist nicht falsch, aber einige Aspekte sind veraltet (und schon seit über zehn Jahren). Erstens sind viele, wenn nicht alle Webseiten heute dynamisch – das heißt, sie zeigen nicht jedem Besucher denselben statischen HTML-Code an, sondern werden sofort aus Informationen in der Datenbank des Servers generiert, wenn der Browser den Zugriff anfordert. Die Seite, die der Browser vom Server empfängt, hängt oft von den mit der Anfrage gesendeten Informationen ab – Informationen, die manchmal die Form von Parametern in der URL annehmen, die für den Zugriff auf die Site verwendet wird. Websites bestehen nicht nur aus HTML und Cascading Style Sheets (CSS), die beschreiben, wie Text und Grafiken angezeigt werden, sondern enthalten auch ausführbaren Code, der in Skriptsprachen, normalerweise JavaScript, geschrieben ist.

Bei einem XSS-Angriff nutzt der Hacker diese Interaktion zwischen dem Benutzer und der Website, um Schadcode auf dem Computer des Benutzers auszuführen. aber wie? Betrachten Sie die folgende URL:

https://www.google.com/search?q=CSO+online

Geben Sie diese in die Adressleiste Ihres Browsers ein und Sie sehen die Google-Suchergebnisse für „CSO Online“. Tatsächlich sieht die angezeigte Seite genau so aus, als hätten Sie „CSO Online“ in die Suchleiste Ihres Browsers oder auf der Google-Startseite eingegeben. Sie werden unter anderem feststellen, dass dieser Satz an mehreren Stellen auf der Seite erscheint, einschließlich der Suchleiste in den Bergen:

Was ist XSS?  Klären Sie Cross-Site-Scripting-Angriffe

Was wäre, wenn diese URL anstelle des harmlosen und erfolgreichen Ausdrucks „CSO online“ bösartigen JavaScript-Code wie diesen enthalten würde?

https://www.google.com/search?<script>doEvil()</script>

doEvil() macht hier einen wirklich schlechten Job. Sie könnten besorgt sein, dass Google, anstatt „CSO Online“ auf der Seite anzuzeigen, die Sie von dieser URL zurücksenden, stattdessen das fehlerhafte Javascript dynamisch in die Seite integriert, die Sie rendern, und dass dieses Skript in Ihrem Browser ausgeführt wird , verursacht ein Durcheinander . Ihre Bedenken sind unbegründet, denn Google hat sehr viele talentierte IT-Sicherheitsexperten unter seinen Mitarbeitern und hat Abhilfemaßnahmen implementiert, auf die wir später noch zu sprechen kommen. Allerdings ist nicht jede Seite sehr vorsichtig und das gibt Ihnen eine Vorstellung davon, wie solche Angriffe funktionieren.

Ataki XSS

XSS-Angriffe fallen in mehrere Kategorien: reflektierte Angriffe, DOM-basierte Angriffe und gespeicherte Angriffe. So unterscheiden sie sich:

  • Reflexangriffe: Auch als schwache Angriffe bekannt, wird bösartiger JavaScript-Code vom Browser des Opfers an Google gesendet, dann in ausführbarer Form zurückgespiegelt und nie auf den Servern von Google gespeichert. Diese Angriffe sind oft Teil eines Phishing-Betrugs, bei dem der bösartige Link als etwas Amüsanteres getarnt und per E-Mail oder SMS an das Opfer gesendet wird.
  • DOM-basierte Angriffe: Dies ist eine Art von Reflexangriff namens Document Object Model, eine Standard-API, die definiert, wie Browser eine Webseite aus grundlegendem HTML- oder JavaScript-Code erstellen. Die meisten DOM-Angriffe ähneln dem zuvor beschriebenen Reflex-Angriff, mit dem Unterschied, dass bösartiger Code niemals an den Server gesendet wird, sondern als Parameter an eine JavaScript-Funktion übergeben wird, die im Browser selbst ausgeführt wird, was bedeutet, dass die Mechanismen schützen auf der Serverseite können den Benutzer nicht schützen. Wenn Sie an den Details interessiert sind, bietet PortSwigger eine detailliertere Beschreibung der Funktionsweise von DOM-Angriffen.
  • Gespeicherte Attacken: ansonsten hartnäckig; Der Angreifer nutzt die interaktiven Funktionen der Website, um Schadcode auf dem Webserver zu hinterlegen. In einem typischen Beispiel hinterlässt der Angreifer einen Kommentar zu einem Blogbeitrag, der schädliches JavaScript enthält. Wenn jemand diese Seite das nächste Mal lädt, wird der Code ausgeführt.
  • Anfälligkeit für XSS-Angriffe

Was macht eine Website anfällig für einen XSS-Angriff? Hoffentlich hat unsere bisherige Diskussion einige Hinweise gegeben. Wenn Ihre Webanwendung naiv Benutzereingaben akzeptiert, sie nicht auf bösartigen ausführbaren Code überprüft und diese Daten verwendet, um eine Seite zu rendern oder andere Vorgänge auszuführen, ist sie für diese Art von Angriffen anfällig.

Und die Risiken sind groß. Der Hauptaspekt der Browsersicherheit ist die sogenannte Same-Origin-Policy, die besagt, dass ein auf einer Seite ausgeführtes Skript nur dann auf Daten auf der anderen Seite zugreifen kann, wenn beide Seiten denselben Ursprung haben (definiert als Kombination aus URI, Hostname, und Rufnummernport). Wenn jedoch schädliches JavaScript im Browser ausgeführt werden kann, während das Opfer auf die Website zugreift, erlaubt der Browser dem JavaScript, auf Daten von anderen Websites zuzugreifen, die eine Ressource mit der anfälligen Website teilen. JavaScript kann auf Cookies und andere proprietäre Sitzungsinformationen zugreifen, was ein gutes Rezept für das Hacken der Internetkonten von Opfern darstellt.

Nutzdaten XSS

Im Sprachgebrauch von Malware ist eine Payload ein ausführbarer Code, der vom Angreifer geforderte Aktionen ausführt. Im Falle eines XSS-Angriffs ist die Nutzlast ein Skriptcode, den der Angreifer ausführt, um den Browser des Opfers dazu zu bringen, ausgeführt zu werden.

Es gibt eine riesige Liste von XSS-Payload-Vorlagen im Payloadbox-Repository auf GitHub. Wenn Sie sich mit JavaScript auskennen, können Sie sich beim Lesen vielleicht ein Bild davon machen, wie XSS-Angreifer ihre Drecksarbeit verrichten. Ein XSS-Angriff geht jedoch über das Ausschneiden und Einfügen der Nutzdaten in die URL hinaus: Der Angreifer muss die spezifischen Funktionen und Schwachstellen der Webanwendung verstehen, die er ausnutzen möchte, um den Angriff zu planen. Wenn Sie tiefer graben und einige Beispiele für XSS-Angriffe sehen möchten, besuchen Sie die OWASP XSS-Website für einen detaillierten Blick auf den Skriptcode, der einen XSS-Angriff demonstriert.

XSS-Schutz und -Prävention

Wenn Sie eine Webanwendung oder eine interaktive Website erstellen oder verwalten, sollten Sie bei Ihrem Design drei Haupttechniken berücksichtigen, um potenzielle Cross-Site-Scripting-Angriffe zu vermeiden.

  • Sterilisierung von Eingabedaten. Die offensichtliche Antwort, um zu verhindern, dass bösartiger Code als Eingabe weitergegeben und an den Benutzer zurückgegeben wird, besteht darin, Skriptcode einfach nicht als Eingabe zu akzeptieren. Sie sollten Ihre Eingaben auf jeden Fall in diesem Sinne filtern, aber das ist leichter gesagt als getan; Kleine Teile ausführbaren Codes können durch Filter schlüpfen. Eine Möglichkeit, mit diesem Problem umzugehen, besteht darin, einen Whitelist-Ansatz anstelle eines Blacklist-Ansatzes zu verwenden. Anstatt beispielsweise zu versuchen, einen Filter zu schreiben, der den gesamten schädlichen Code blockiert, der in ein Webformular eingespeist wird, müssen Sie Ihre Anwendung so schreiben, dass sie dies akzeptiert Daten zu bestimmten Zeiten Formate (Telefonnummern, E-Mail-Adressen usw.) nur dann, wenn Sie dies wünschen.
  • Flucht aus der Ausgabe. Dies ist andererseits die Lösung des Problems. Wenn eine Webanwendung Benutzereingaben an eine Webseite zurücksendet, müssen diese Daten gefiltert werden, um sicherzustellen, dass sie auf dieser Seite nicht ausführbar werden. Wenn der Benutzer HTML-Tags als Eingabe eingibt, muss die Anwendung überschriebene Zeichen verwenden, damit diese Tags als Text auf der Ergebnisseite angezeigt werden und nicht in den HTML-Code der Seite selbst integriert werden.
  • Standard-Inhaltssicherheitsrichtlinie (CSP). CSP führt den „Whitelisting“-Ansatz außerhalb der Texteingabe in den Bereich des Skriptings: Eine Webanwendung sollte nur Code ausführen, den der Benutzer als sicher angegeben hat. Google hat einige großartige Ressourcen zur Implementierung von CSP.

XSS-Test

Schwachstellentests für XSS-Angriffe sind ein wichtiger Aspekt, um die Sicherheit einer Webanwendung zu gewährleisten. OWASP verfügt über Ressourcen, die detailliert beschreiben, wie Anwendungen getestet werden können, um DOM-Angriffe oder Reverse-Cross-Site-Scripting zu vermeiden. Wenn Sie nach einem XSS-Blatt suchen, hat OWASP auch ein Dokument mit XSS-Angriffscode für Sie, mit dem Sie einige XSS-Verteidigungsfilter umgehen können. Es wird sich bei den Penetrationstests, die Sie auf Ihren eigenen Systemen durchführen können, als unschätzbar erweisen.

XSS und CSRF

Sie werden vielleicht hören, dass CSRF im selben Kontext wie XSS verwendet wird. Es ist die Abkürzung für Cross-Site Request Forgery, ein Angriff – wie XSS – der auf den Browser eines Benutzers abzielt. Der Hauptunterschied besteht darin, dass CSRF eine authentifizierte Sitzung für den Benutzer verwendet (möglicherweise ist er bei seinem Bankkonto angemeldet), während XSS keine authentifizierte Sitzung benötigt, um effektiv zu sein.

Angenommen, ein Benutzer ist gleichzeitig bei Twitter und einer Internetbank angemeldet und klickt auf einen Twitter-Link, der so aussieht:

http://www.yourbank.com/sendmoney,do?from=you&to=attacker&amount=5000

Je nachdem, wie Ihre Bank Session-Token verwaltet und welchen Browser Sie verwenden, können diese plötzlich viel schlechter werden. XSS ist ein gefährlicherer Angriffsvektor, aber es ist wichtig, sich sowohl gegen XSS als auch gegen CSRF zu verteidigen. OWASP hat ein Informationsblatt zu Schutzmaßnahmen gegen CSRF erstellt.

Aktuelle und berüchtigte XSS-Angriffe

Einer der ältesten und bekanntesten Cross-Site-Scripting-Angriffe ereignete sich im Jahr 2005, als der unternehmungslustige MySpace-Benutzer Sammy Kamkar erkannte, dass er JavaScript-Code in sein Profil eingeben konnte, der jeden Besucher der Website automatisch authentifizierte – und diesen Code auch in die Profile von kopierte Ihr neue Freunde, Dank dessen wird jeder, der diese Seiten besucht, auch sein Freund sein. (Das Drehbuch sorgte dafür, dass jeder von Kamkars neuen Freunden es in die „Top Acht“ schaffte – wir haben Angst, das zu verstehen, Sie müssten dort sein, aber glauben Sie uns, es war wichtig.) Innerhalb von 24 Stunden gewann er über eine Million Freunde und zwang MySpace, die gesamte Seite für kurze Zeit abzuschalten.

Es stellt sich heraus, dass der sogenannte Sami-Wurm größtenteils harmlos ist. Andere waren jedoch ärgerlicher:

• Ebay hatte jahrelang XSS-Schwachstellen, die es Hackern ermöglichten, Anmeldedaten von Benutzern zu stehlen

• XSS-Angreifer konnten 2019 V-Bucks von Fortnite-Spielern stehlen.

• Die Hacking-Gruppe Magecart griff British Airways 2018 mit einem XSS-Angriff an und stahl Hunderttausende von Benutzeridentitäten

Und Cross-Site-Scripting bleibt auch heute noch eine ernsthafte Bedrohung. Seit 2021 wurden XSS-Schwachstellen in der E-Mail-Plattform Zimbra, WordPress und der Open-Source-IT-Verwaltungsplattform Nagios gefunden. Denken Sie daran, dass Hacker Angriffstechniken normalerweise nicht isoliert verwenden: Cross-Site-Scripting ist eine Komponente einer kürzlich entdeckten komplexen Form des TLS-Wildcard-Angriffs, der als ALPACA bekannt ist. Stellen Sie sicher, dass Sie die XSS-Schwachstellen schließen, um gefährliche Bedrohungen zu vermeiden.

Quelle: CSO

.

Beobachten Sie auch

Elon Musk bietet den Starlink-Service in der Ukraine kostenlos an

Related Articles

Tecnica

Cos’è XSS? Spiegazione degli attacchi di scripting tra siti

Cos’è XSS? Spiegazione degli attacchi di scripting tra siti

 

Nel caso di un attacco XSS, gli aggressori iniettano codice dannoso in un modulo Web o nell’URL di un’applicazione Web per costringerlo a fare qualcosa che non dovrebbe fare.


 
 

Cross-Site Scripting (XSS) è un attacco informatico in cui un hacker inserisce codice dannoso in un modulo Web o nell’URL di un’applicazione Web. Questo codice dannoso, scritto in un linguaggio di scripting come JavaScript o PHP, può fare qualsiasi cosa, dal distruggere la pagina che stai tentando di caricare per rubare le tue password o altre credenziali di accesso.

XSS utilizza un aspetto importante della moderna Internet, ovvero il fatto che la maggior parte delle pagine Web viene creata durante il caricamento delle pagine, a volte eseguendo il codice nel browser stesso. Ciò può rendere difficile prevenire tali attacchi.

Controlla anche:

Come funziona un attacco XSS?

Chiunque può creare un sito Web che contiene codice dannoso. Nel caso di un attacco di cross-site scripting, l’attaccante organizza tutto in modo che il suo codice raggiunga il computer della vittima quando visita il sito Web di qualcun altro. Da qui deriva la “croce” nel nome. Gli attacchi XSS raggiungono questo obiettivo senza richiedere l’accesso privilegiato a un server Web per inserire di nascosto il codice. Invece, gli aggressori sfruttano il modo in cui funzionano i siti Web moderni.

Se qualcuno ti chiedesse una spiegazione semplice e basilare di come funziona il web, probabilmente potresti dirgli qualcosa del genere: la persona che vuole creare una pagina web scrive un documento HTML e lo inserisce su un web server; Quando l’utente vuole accedere a questa pagina, indirizza il suo browser all’indirizzo del server, il browser scarica e interpreta il codice HTML e costruisce una copia della pagina web dell’utente.

Questa descrizione non è sbagliata, ma alcuni aspetti sono obsoleti (e sono in circolazione da oltre dieci anni). Innanzitutto, molte, se non tutte, le pagine Web oggi sono dinamiche, ovvero non mostrano lo stesso HTML statico a tutti i visitatori, ma vengono generate istantaneamente dalle informazioni nel database del server quando il browser richiede l’accesso. La pagina che il browser riceve dal server dipende spesso dalle informazioni inviate con la richiesta, informazioni che a volte assumono la forma di parametri nell’URL utilizzato per accedere al sito. I siti Web non sono solo costituiti da HTML e Cascading Style Sheets (CSS) che descrivono come visualizzare testo e grafica, ma contengono anche codice eseguibile scritto in linguaggi di scripting, solitamente JavaScript.

In un attacco XSS, l’hacker utilizza questa interazione tra l’utente e il sito Web per eseguire codice dannoso sul computer dell’utente. ma come? Considera il seguente URL:

https://www.google.com/search?q=CSO+online

Inseriscilo nella barra degli indirizzi del tuo browser e vedrai i risultati di ricerca di Google per “CSO Online”. In effetti, la pagina che vedrai è esattamente la stessa di se avessi inserito “CSO Online” nella barra di ricerca del tuo browser o nella home page di Google. Noterai, tra l’altro, che questa frase compare in più punti della pagina, inclusa la barra di ricerca in montagna:

Cos'è XSS?  Chiarire gli attacchi di scripting tra siti

E se, invece della frase innocente e di successo “CSO online”, questo URL contenesse codice JavaScript dannoso come questo?

https://www.google.com/search?<script>doEvil()</script>

doEvil() fa davvero un pessimo lavoro qui. Potresti essere preoccupato che Google, invece di visualizzare “CSO Online” sulla pagina che stai tornando da questo URL, integrerà invece dinamicamente il javascript errato nella pagina che stai visualizzando e che questo script venga eseguito nel tuo browser , provocando un pasticcio. Le tue preoccupazioni saranno infondate, perché Google ha un gran numero di professionisti della sicurezza IT di talento tra i suoi dipendenti e ha implementato misure correttive di cui parleremo tra poco. Tuttavia, non tutti i siti sono molto attenti e questo ti dà un’idea di come funzionano tali attacchi.

Ataki XSS

Gli attacchi XSS rientrano in diverse categorie: attacchi riflessi, attacchi basati su DOM e attacchi archiviati. Ecco come differiscono:

  • Attacchi riflessi: noti anche come attacchi deboli, il codice JavaScript dannoso viene inviato dal browser della vittima a Google, quindi riflesso in un formato eseguibile, mai archiviato sui server di Google. Questi attacchi fanno spesso parte di una truffa di phishing, in cui il collegamento dannoso è camuffato da qualcosa di più divertente e inviato alla vittima tramite e-mail o SMS.
  • Attacchi basati su DOM: questo è un tipo di attacco riflesso chiamato Document Object Model, che è un’API standard che definisce come i browser creano una pagina Web da codice HTML o JavaScript di base. La maggior parte degli attacchi DOM sono simili agli attacchi reflex descritti in precedenza, con la differenza che il codice dannoso non viene mai inviato al server: viene invece passato come parametro ad alcune funzioni JavaScript che vengono eseguite nel browser stesso, il che significa che i meccanismi di protezione lato server non sono in grado di proteggere l’utente. Se sei interessato ai dettagli, PortSwigger ha una descrizione più dettagliata di come funzionano gli attacchi DOM.
  • Attacchi memorizzati: altrimenti persistenti; L’attaccante utilizza le funzionalità interattive del sito Web per salvare codice dannoso sul server Web. In un tipico esempio, l’attaccante lascia un commento su un post del blog che contiene JavaScript dannoso. La prossima volta che qualcuno caricherà questa pagina, il codice verrà eseguito.
  • Vulnerabilità all’attacco XSS

Cosa rende un sito Web vulnerabile a un attacco XSS? Si spera che la nostra discussione finora abbia fornito alcune indicazioni. Se l’applicazione Web accetta ingenuamente l’input dell’utente, non lo controlla per codice eseguibile dannoso e utilizza tali dati per eseguire il rendering di una pagina o eseguire altre operazioni, è vulnerabile a questo tipo di attacco.

E i rischi sono grandi. L’aspetto principale della sicurezza del browser è la cosiddetta politica della stessa origine, che afferma che uno script in esecuzione su una pagina può accedere ai dati sull’altra pagina solo se entrambi i lati hanno la stessa origine (definita come una combinazione di URI, nome host, e porta numerica). Tuttavia, se è possibile eseguire JavaScript dannoso nel browser mentre la vittima accede al sito Web, il browser consentirà a JavaScript di accedere ai dati di altri siti Web che condividono una risorsa con il sito Web vulnerabile. JavaScript può accedere ai cookie e ad altre informazioni di sessione proprietarie, che è una buona ricetta per hackerare gli account Internet delle vittime.

Carichi utili XSS

Nel gergo del malware, un payload è un codice eseguibile che esegue le azioni richieste dall’attaccante. Nel caso di un attacco XSS, il payload è un codice script che l’attaccante esegue per ingannare l’esecuzione del browser della vittima.

C’è un enorme elenco di modelli di payload XSS nel repository Payloadbox su GitHub. Se hai familiarità con JavaScript, esaminarlo potrebbe darti un’idea di come gli aggressori XSS fanno il loro lavoro sporco. Tuttavia, un attacco XSS va oltre il tagliare e incollare il payload nell’URL: l’attaccante deve comprendere le funzioni e le vulnerabilità specifiche dell’applicazione web che vuole sfruttare per pianificare l’attacco. Se vuoi approfondire e vedere alcuni esempi di attacchi XSS, controlla il sito Web OWASP XSS per uno sguardo approfondito al codice dello script che dimostra un attacco XSS.

Protezione e prevenzione XSS

Se stai creando o mantenendo un’applicazione Web o un sito Web interattivo, ci sono tre tecniche principali che dovresti considerare nella tua progettazione per evitare potenziali attacchi di scripting tra siti.

  • Sterilizzazione dei dati in ingresso. La risposta ovvia per impedire che codice dannoso venga passato come input e restituito all’utente è semplicemente non accettare codice script come input. Dovresti assolutamente filtrare il tuo input tenendo presente questo, ma è più facile a dirsi che a farsi; Piccole porzioni di codice eseguibile possono passare attraverso i filtri. Un modo per affrontare questo problema è utilizzare una whitelist invece di un approccio blacklist – ad esempio, invece di provare a scrivere un filtro che bloccherà tutto il codice dannoso inserito in un modulo web, devi scrivere la tua applicazione per accettare il dati in determinati orari Formati (numeri di telefono, indirizzi e-mail, ecc.) solo quando è quello che vuoi.
  • Fuga dall’output. Questa è la soluzione al problema d’altra parte. Se un’applicazione Web rimanda l’input dell’utente a una pagina Web, questi dati devono essere filtrati per garantire che non diventino eseguibili su quella pagina. Se l’utente inserisce tag HTML come input, l’applicazione deve utilizzare caratteri sovrascritti in modo che questi tag appaiano come testo nella pagina dei risultati anziché integrarsi con l’HTML della pagina stessa.
  • Politica di sicurezza dei contenuti standard (CSP). CSP adotta l’approccio “whitelisting” al di fuori dell’immissione di testo nel regno dello scripting: un’applicazione Web dovrebbe eseguire solo il codice che l’utente ha specificato per essere sicuro. Google ha alcune grandi risorse sull’implementazione di CSP.

Prova XSS

Il test di vulnerabilità per gli attacchi XSS è un aspetto importante per garantire la sicurezza di un’applicazione web. OWASP dispone di risorse che descrivono in dettaglio come testare le applicazioni per evitare attacchi DOM o invertire lo scripting cross-site. Se stai cercando un foglio XSS, OWASP ha anche un documento con codice di attacco XSS per te che può essere utilizzato per aggirare alcuni filtri di difesa XSS; Si rivelerà prezioso nei test di penetrazione che puoi eseguire sui tuoi sistemi.

XSS e CSRF

Potresti sentire che CSRF viene utilizzato nello stesso contesto di XSS. È l’abbreviazione di Cross-Site Request Forgery, un attacco, come XSS, che prende di mira il browser di un utente. La differenza principale è che CSRF utilizza una sessione autenticata per l’utente (forse ha effettuato l’accesso al proprio conto bancario) mentre XSS non ha bisogno di una sessione autenticata per essere efficace.

Diciamo che un utente ha effettuato l’accesso a Twitter e a una banca Internet contemporaneamente e fa clic su un collegamento Twitter simile al seguente:

http://www.yourbank.com/sendmoney,do?from=you&to=attacker&amount=5000

A seconda del modo in cui la tua banca gestisce i token di sessione e del browser che stai utilizzando, possono improvvisamente diventare molto più poveri. XSS è un vettore di attacco più pericoloso, ma è importante difendersi sia da XSS che da CSRF. OWASP ha preparato una scheda informativa sulle misure di protezione contro CSRF.

Attacchi XSS recenti e famigerati

Uno dei più antichi e famosi attacchi di cross-site scripting si è verificato nel 2005, quando l’intraprendente utente di MySpace Sammy Kamkar si è reso conto che poteva inserire codice JavaScript nel suo profilo che avrebbe autenticato automaticamente chiunque visitasse il sito – e anche copiare quel codice sui profili del tuo nuovi amici, grazie a ciò, tutti coloro che visiteranno queste pagine saranno anche suoi amici. (La sceneggiatura ha assicurato che ciascuno dei nuovi amici di Kamkar entrasse nella “top 8” – abbiamo paura di capirlo, dovresti esserci, ma credici, era importante.) In 24 ore, si è fatto più di un milione di amici e ha costretto MySpace a chiudere l’intero sito per un breve periodo.

Si scopre che il cosiddetto worm Sami è per lo più innocuo. Tuttavia, altri erano più fastidiosi:

• Ebay ha avuto per anni vulnerabilità XSS che hanno consentito agli hacker di rubare le credenziali di accesso degli utenti

• Gli attaccanti XSS sono stati in grado di rubare V-Bucks dai giocatori di Fortnite nel 2019.

• Il gruppo di hacker Magecart ha attaccato British Airways nel 2018 con un attacco XSS, rubando centinaia di migliaia di identità di utenti

E il cross-site scripting rimane una seria minaccia oggi. A partire dal 2021, sono state rilevate vulnerabilità XSS nella piattaforma di posta elettronica Zimbra, WordPress e nella piattaforma di gestione IT open source Nagios. Tieni presente che gli hacker di solito non utilizzano tecniche di attacco isolatamente: lo scripting tra siti è un componente di una forma complessa di attacco con caratteri jolly TLS recentemente scoperta nota come ALPACA. Per evitare minacce pericolose, assicurati di chiudere le vulnerabilità XSS.

Fonte: OSC

.

Guarda anche

Elon Musk fornisce gratuitamente il servizio Starlink in Ucraina

Related Articles

技術

XSSとは何ですか?クロスサイトスクリプティング攻撃の説明

XSSとは何ですか?クロスサイトスクリプティング攻撃の説明

 

XSS攻撃の場合、攻撃者は悪意のあるコードをWebフォームまたはWebアプリケーションのURLに挿入して、実行すべきでないことを強制します。


 
 

クロスサイトスクリプティング(XSS)は、ハッカーが悪意のあるコードをWebフォームまたはWebアプリケーションのURLに挿入するサイバー攻撃です。JavaScriptやPHPなどのスクリプト言語で記述されたこの悪意のあるコードは、ロードしようとしているページを破壊してパスワードやその他のログイン資格情報を盗むことから何でもできます。

XSSは、最新のインターネットの重要な側面を利用しています。これは、ほとんどのWebページが、ページの読み込み中に、場合によってはブラウザー自体でコードを実行することによって作成されるという事実です。これにより、そのような攻撃を防ぐことが困難になる可能性があります。

また確認してください:

XSS攻撃はどのように機能しますか?

悪意のあるコードを含むWebサイトは誰でも作成できます。クロスサイトスクリプティング攻撃の場合、攻撃者は、他の誰かのWebサイトにアクセスしたときに、コードが被害者のコンピューターに到達するようにすべてを調整します。これが名前の「十字架」の由来です。XSS攻撃は、密かにコードを配置するためにWebサーバーへの特権アクセスを必要とせずにこれを実現します。代わりに、攻撃者は最新のWebサイトの動作方法を利用します。

Webがどのように機能するかについての簡単で基本的な説明を求められた場合は、おそらく次のように言うことができます。Webページを作成したい人は、HTMLドキュメントを作成してWebサーバーに配置します。ユーザーがこのページにアクセスしたい場合、ユーザーはブラウザーをサーバーアドレスに誘導し、ブラウザーはHTMLコードをダウンロードして解釈し、ユーザーのWebページのコピーを作成します。

この説明は間違っていませんが、いくつかの側面は時代遅れです(そして10年以上前から存在しています)。まず、すべてではないにしても、多くのWebページは今日動的です。つまり、すべての訪問者に同じ静的HTMLを表示するのではなく、ブラウザーがアクセスを要求すると、サーバーのデータベース内の情報から即座に生成されます。ブラウザがサーバーから受信するページは、多くの場合、リクエストで送信される情報に依存します。この情報は、サイトへのアクセスに使用されるURLのパラメータの形式をとることがあります。Webサイトは、テキストとグラフィックの表示方法を説明するHTMLとカスケードスタイルシート(CSS)で構成されているだけでなく、スクリプト言語(通常はJavaScript)で記述された実行可能コードも含まれています。

XSS攻撃では、ハッカーはユーザーとWebサイト間のこの相互作用を使用して、ユーザーのコンピューター上で悪意のあるコードを実行します。しかし、どのように?次のURLを検討してください。

https://www.google.com/search?q=CSO+online

これをブラウザのアドレスバーに入力すると、「CSOオンライン」のGoogle検索結果が表示されます。実際、表示されるページは、ブラウザの検索バーまたはGoogleホームページで「CSOオンライン」と入力した場合とまったく同じように見えます。特に、このフレーズは、山の検索バーなど、ページのいくつかの場所に表示されます。

XSSとは何ですか? クロスサイトスクリプティング攻撃を明確にする

「CSOonline」という無邪気で成功したフレーズの代わりに、このURLにこのような悪意のあるJavaScriptコードが含まれているとしたらどうでしょうか。

https://www.google.com/search?<script>doEvil()</script>

doEvil()はここで本当に悪い仕事をします。このURLから返されるページに「CSONonline」を表示する代わりに、Googleがレンダリングしているページに不正なJavaScriptを動的に統合し、このスクリプトがブラウザで実行されていることを懸念するかもしれません。 、混乱を引き起こします。Googleには従業員の中に非常に多くの有能なITセキュリティ専門家がいて、後で説明する改善策を実施しているため、あなたの懸念は根拠がありません。ただし、すべてのサイトが非常に注意深いわけではなく、これにより、そのような攻撃がどのように機能するかがわかります。

アタキXSS

XSS攻撃は、リフレクション攻撃、DOMベースの攻撃、および保存された攻撃のいくつかのカテゴリに分類されます。それらの違いは次のとおりです。

  • リフレックスアタック:ウィークアタックとも呼ばれる悪意のあるJavaScriptコードは、被害者のブラウザからGoogleに送信され、実行可能形式で反映され、Googleのサーバーに保存されることはありません。これらの攻撃は、多くの場合、フィッシング詐欺の一部であり、悪意のあるリンクがより面白いものに偽装され、電子メールまたはSMSを介して被害者に送信されます。
  • DOMベースの攻撃:これは、ドキュメントオブジェクトモデルと呼ばれる一種の反射攻撃です。これは、ブラウザが基本的なHTMLまたはJavaScriptコードからWebページを構築する方法を定義する標準APIです。ほとんどのDOM攻撃は、前述の再帰攻撃に似ていますが、悪意のあるコードがサーバーに送信されない点が異なります。代わりに、ブラウザー自体で実行されるJavaScript関数にパラメーターとして渡されます。つまり、メカニズムが保護します。サーバー側ではユーザーを保護できません。詳細に興味がある場合は、PortSwiggerにDOM攻撃がどのように機能するかについてのより詳細な説明があります。
  • 保存された攻撃:それ以外の場合は永続的。攻撃者は、Webサイトのインタラクティブ機能を使用して、悪意のあるコードをWebサーバーに保存します。典型的な例では、攻撃者は悪意のあるJavaScriptを含むブログ投稿にコメントを残します。次に誰かがこのページをロードすると、コードが実行されます。
  • XSS攻撃に対する脆弱性

WebサイトがXSS攻撃に対して脆弱になる理由は何ですか?うまくいけば、これまでの議論がいくつかのガイダンスを提供してくれました。Webアプリケーションがユーザー入力を素朴に受け取り、悪意のある実行可能コードをチェックせず、そのデータを使用してページをレンダリングしたり、他の操作を実行したりする場合、このタイプの攻撃に対して脆弱です。

そして、リスクは大きいです。ブラウザのセキュリティの主な側面は、いわゆる同一生成元ポリシーです。これは、一方のページで実行されるスクリプトは、両側が同じ起源(URI、ホスト名、および番号ポート)。ただし、被害者がWebサイトにアクセスしているときに、悪意のあるJavaScriptがブラウザで実行される可能性がある場合、ブラウザはJavaScriptが脆弱なWebサイトとリソースを共有する他のWebサイトからのデータにアクセスすることを許可します。JavaScriptは、Cookieやその他の独自のセッション情報にアクセスできます。これは、被害者のインターネットアカウントをハッキングするための優れたレシピです。

ペイロードXSS

マルウェアの用語では、ペイロードは、攻撃者が必要とするアクションを実行する実行可能コードです。XSS攻撃の場合、ペイロードは、攻撃者が被害者のブラウザをだまして実行させるために実行するスクリプトコードです。

GitHubのPayloadboxリポジトリには、XSSペイロードテンプレートの膨大なリストがあります。JavaScriptに精通している場合は、JavaScriptを確認することで、XSS攻撃者がどのように汚い仕事をしているのかがわかるかもしれません。ただし、XSS攻撃は、ペイロードを切り取ってURLに貼り付けるだけではありません。攻撃者は、攻撃を計画するために悪用したいWebアプリケーションの特定の機能と脆弱性を理解する必要があります。XSS攻撃の例をさらに深く掘り下げて確認したい場合は、OWASP XSS Webサイトをチェックして、XSS攻撃を示すスクリプトコードの詳細を確認してください。

XSSの保護と予防

WebアプリケーションまたはインタラクティブWebサイトを構築または保守している場合、潜在的なクロスサイトスクリプティング攻撃を回避するために設計で考慮する必要がある3つの主要な手法があります。

  • 入力データの滅菌。悪意のあるコードが入力として渡されてユーザーに返されるのを防ぐための明白な答えは、単にスクリプトコードを入力として受け入れないことです。これを念頭に置いて入力を確実にフィルタリングする必要がありますが、それは口で言うほど簡単ではありません。実行可能コードの小さな断片がフィルターをすり抜けることがあります。この問題に対処する1つの方法は、ブラックリストアプローチの代わりにホワイトリストを使用することです。たとえば、Webフォームに送られるすべての悪意のあるコードをブロックするフィルターを作成する代わりに、アプリケーションを作成して、特定の時間のデータフォーマット(電話番号、電子メールアドレスなど)は、それが必要な場合にのみ使用できます。
  • 出力からエスケープします。一方、これは問題の解決策です。Webアプリケーションがユーザー入力をWebページに送り返す場合、このデータをフィルタリングして、そのページで実行可能にならないようにする必要があります。ユーザーが入力としてHTMLタグを入力する場合、アプリケーションはオーバーライドされた文字を使用して、これらのタグがページ自体のHTMLと統合されるのではなく、結果ページにテキストとして表示されるようにする必要があります。
  • 標準コンテンツセキュリティポリシー(CSP)。CSPは、スクリプトの領域へのテキスト入力以外の「ホワイトリスト」アプローチを採用しています。Webアプリケーションは、ユーザーが安全であると指定したコードのみを実行する必要があります。Googleには、CSPの実装に関する優れたリソースがいくつかあります。

XSSテスト

XSS攻撃の脆弱性テストは、Webアプリケーションのセキュリティを確保するための重要な側面です。OWASPには、DOM攻撃やクロスサイトスクリプティングの逆行を回避するためにアプリケーションをテストする方法を詳しく説明したリソースがあります。XSSシートを探している場合、OWASPには、一部のXSS防御フィルターをバイパスするために使用できるXSS攻撃コードを含むドキュメントもあります。自分のシステムで実行できる侵入テストでは非常に貴重です。

XSSوCSRF

CSRFはXSSと同じコンテキストで使用されていると聞くかもしれません。これは、クロスサイトリクエストフォージェリの略で、ユーザーのブラウザを標的とする攻撃(XSSなど)です。主な違いは、CSRFはユーザーに対して認証されたセッションを使用する(おそらくユーザーは銀行口座にログインしている)のに対し、XSSは有効にするために認証されたセッションを必要としないことです。

ユーザーがTwitterとインターネットバンクに同時にログインしていて、次のようなTwitterリンクをクリックしたとします。

http://www.yourbank.com/sendmoney,do?from=you&to=attacker&amount=5000

銀行がセッショントークンを管理する方法と使用しているブラウザによっては、それらが突然非常に貧弱になる可能性があります。XSSはより危険な攻撃ベクトルですが、XSSとCSRFの両方から防御することが重要です。OWASPは、CSRFに対する保護対策に関する情報シートを作成しました。

最近の悪名高いXSS攻撃

最も古く、最も有名なクロスサイトスクリプティング攻撃の1つは、2005年に発生しました。進取の気性に富んだMySpaceユーザーのSammy Kamkarは、自分のプロファイルにJavaScriptコードを入力して、サイトにアクセスするすべての人を自動的に認証できることに気付きました。また、そのコードを自分のプロファイルにコピーします。新しい友達、そのおかげで、これらのページにアクセスするすべての人が彼の友達にもなります。(スクリプトは、Kamkarの新しい友達のそれぞれが「トップ8」に入るのを確実にしました-私たちはあなたがそこにいなければならないことを理解することを恐れていますが、私たちを信じてください、それは重要でした。)24時間以内に、彼は100万人以上の友達を作り、MySpaceにサイト全体を短時間シャットダウンさせました。

いわゆるサーミワームはほとんど無害であることがわかりました。しかし、他の人はもっと迷惑でした:

•Ebayには、ハッカーがユーザーのログイン資格情報を盗むことを可能にするXSSの脆弱性が何年もありました。

•XSS攻撃者は、2019年にFortniteプレーヤーからV-Bucksを盗むことができました。

•ハッキンググループのMagecartは、2018年にXSS攻撃でブリティッシュ・エアウェイズを攻撃し、数十万のユーザーIDを盗みました。

そして、クロスサイトスクリプティングは今日でも深刻な脅威となっています。2021年の時点で、XSSの脆弱性は、Zimbra電子メールプラットフォーム、Wordpress、およびオープンソースIT管理プラットフォームNagiosで発見されています。ハッカーは通常、攻撃手法を単独で使用しないことに注意してください。クロスサイトスクリプティングは、ALPACAとして知られるTLSワイルドカード攻撃の最近発見された複雑な形式のコンポーネントです。危険な脅威を回避するには、XSSの脆弱性を必ず閉じてください。

出典:CSO

こちらもご覧ください

Elon Muskは、ウクライナでスターリンクサービスを無料で提供しています

Related Articles

Técnica

O que é XSS? Ataques de script entre sites explicados

O que é XSS? Ataques de script entre sites explicados

 

No caso de um ataque XSS, os invasores injetam código malicioso em um formulário da Web ou URL de aplicativo da Web para forçá-lo a fazer algo que não deveria.


 
 

Cross-Site Scripting (XSS) é um ataque cibernético no qual um hacker insere código malicioso em um formulário da web ou url de um aplicativo da web. Esse código malicioso, escrito em uma linguagem de script como JavaScript ou PHP, pode fazer qualquer coisa, desde destruir a página que você está tentando carregar até roubar suas senhas ou outras credenciais de login.

O XSS faz uso de um aspecto importante da internet moderna, que é o fato de que a maioria das páginas da web são criadas enquanto as páginas estão sendo carregadas, às vezes executando código no próprio navegador. Isso pode dificultar a prevenção de tais ataques.

Confira também:

Como funciona um ataque XSS?

Qualquer pessoa pode criar um site que contenha código malicioso. No caso de um ataque de script entre sites, o invasor organiza tudo para que seu código chegue ao computador da vítima quando ela visitar o site de outra pessoa. É daí que vem a “cruz” no nome. Os ataques XSS conseguem isso sem exigir acesso privilegiado a um servidor da Web para colocar código clandestinamente. Em vez disso, os invasores aproveitam a maneira como os sites modernos funcionam.

Se alguém lhe pedisse uma explicação simples e básica de como a web funciona, você provavelmente poderia dizer algo assim: a pessoa que deseja criar uma página da web escreve um documento HTML e o coloca em um servidor web; Quando o usuário deseja acessar esta página, ele direciona seu navegador para o endereço do servidor, o navegador baixa e interpreta o código HTML e constrói uma cópia da página web do usuário.

Esta descrição não está errada, mas alguns aspectos estão desatualizados (e existem há mais de dez anos). Primeiro, muitas, se não todas, as páginas da web são dinâmicas hoje – ou seja, elas não exibem o mesmo HTML estático para todos os visitantes, mas são geradas instantaneamente a partir de informações no banco de dados do servidor quando o navegador solicita acesso. A página que o navegador recebe do servidor geralmente depende das informações enviadas com a solicitação – informações que às vezes assumem a forma de parâmetros na URL usada para acessar o site. Os sites não consistem apenas em HTML e Cascading Style Sheets (CSS) que descrevem como exibir texto e gráficos, mas também contêm código executável escrito em linguagens de script, geralmente JavaScript.

Em um ataque XSS, o hacker usa essa interação entre o usuário e o site para executar código malicioso no computador do usuário. mas como? Considere o seguinte URL:

https://www.google.com/search?q=CSO+online

Digite isso na barra de endereços do seu navegador e você verá os resultados de pesquisa do Google para “CSO Online”. Na verdade, a página que você verá é exatamente a mesma que teria digitado “CSO Online” na barra de pesquisa do seu navegador ou na página inicial do Google. Você notará, entre outras coisas, que essa frase aparece em vários lugares da página, inclusive na barra de busca nas montanhas:

O que é XSS?  Esclareça os ataques de script entre sites

E se, em vez da frase inocente e bem-sucedida “CSO online”, esse URL contivesse um código JavaScript malicioso como este?

https://www.google.com/search?<script>doEvil()</script>

doEvil() faz um trabalho muito ruim aqui. Você pode estar preocupado que o Google, em vez de exibir “CSO Online” na página que você está retornando deste URL, integre dinamicamente o javascript incorreto na página que você está renderizando e que esse script esteja sendo executado em seu navegador , causando confusão. Suas preocupações serão infundadas, porque o Google tem um número muito grande de profissionais de segurança de TI talentosos entre seus funcionários e implementou medidas corretivas sobre as quais falaremos um pouco mais tarde. No entanto, nem todo site é muito cuidadoso e isso dá uma ideia de como esses ataques funcionam.

Ataki XSS

Os ataques XSS se enquadram em várias categorias: ataques refletidos, ataques baseados em DOM e ataques armazenados. Veja como eles diferem:

  • Ataques reflexos: também conhecidos como ataques fracos, o código JavaScript malicioso é enviado do navegador da vítima para o Google, depois refletido de volta em um formato executável, nunca armazenado nos servidores do Google. Esses ataques geralmente fazem parte de um esquema de phishing, em que o link malicioso é disfarçado como algo mais divertido e enviado à vítima por e-mail ou SMS.
  • Ataques baseados em DOM: Este é um tipo de ataque reflexo chamado Document Object Model, que é uma API padrão que define como os navegadores constroem uma página da Web a partir de código HTML ou JavaScript básico. A maioria dos ataques DOM é semelhante ao ataque reflexo descrito anteriormente, com a diferença de que o código malicioso nunca é enviado ao servidor: em vez disso, é passado como parâmetro para alguma função JavaScript que é executada no próprio navegador, o que significa que os mecanismos de proteção no lado do servidor são incapazes de proteger o usuário. Se você estiver interessado nos detalhes, o PortSwigger tem uma descrição mais detalhada de como os ataques DOM funcionam.
  • Ataques armazenados: de outra forma persistentes; O invasor usa os recursos interativos do site para salvar códigos maliciosos no servidor da web. Em um exemplo típico, o invasor deixa um comentário em uma postagem de blog que contém JavaScript malicioso. Na próxima vez que alguém carregar esta página, o código será executado.
  • Vulnerabilidade ao ataque XSS

O que torna um site vulnerável a um ataque XSS? Esperamos que nossa discussão até agora tenha fornecido alguma orientação. Se o seu aplicativo da Web ingenuamente receber a entrada do usuário, não verificar se há código executável mal-intencionado e usar esses dados para renderizar uma página ou executar outras operações, ele estará vulnerável a esse tipo de ataque.

E os riscos são grandes. O principal aspecto da segurança do navegador é a chamada política de mesma origem, que afirma que um script executado em uma página pode acessar dados na outra página somente se ambos os lados tiverem a mesma origem (definida como uma combinação de URI, nome do host, e porta numérica). No entanto, se o JavaScript malicioso puder ser executado no navegador enquanto a vítima estiver acessando o site, o navegador permitirá que o JavaScript acesse dados de outros sites que compartilham um recurso com o site vulnerável. O JavaScript pode acessar cookies e outras informações de sessão proprietárias, o que é uma boa receita para hackear as contas de internet das vítimas.

Payloads XSS

Na linguagem do malware, uma carga útil é um código executável que executa as ações exigidas pelo invasor. No caso de um ataque XSS, a carga útil é um código de script que o invasor executa para enganar o navegador da vítima e fazê-lo ser executado.

Há uma lista enorme de modelos de carga útil XSS no repositório Payloadbox no GitHub. Se você estiver familiarizado com JavaScript, revisá-lo pode lhe dar uma ideia de como os invasores XSS fazem seu trabalho sujo. No entanto, um ataque XSS vai além de recortar e colar a carga útil na URL: o invasor precisa entender as funções e vulnerabilidades específicas do aplicativo da Web que deseja explorar para planejar o ataque. Se você quiser se aprofundar e ver alguns exemplos de ataques XSS, confira o site OWASP XSS para uma visão detalhada do código do script que demonstra um ataque XSS.

Proteção e Prevenção XSS

Se você estiver criando ou mantendo um aplicativo da Web ou um site interativo, há três técnicas principais que você deve considerar em seu design para evitar possíveis ataques de script entre sites.

  • Esterilização dos dados de entrada. A resposta óbvia para evitar que código malicioso seja passado como entrada e devolvido ao usuário é simplesmente não aceitar código de script como entrada. Você definitivamente deve filtrar sua entrada com isso em mente, mas é mais fácil falar do que fazer; Pequenos pedaços de código executável podem passar por filtros. Uma maneira de lidar com esse problema é usar uma lista branca em vez de uma abordagem de lista negra – por exemplo, em vez de tentar escrever um filtro que bloqueie todos os códigos maliciosos que estão sendo alimentados em um formulário da Web, você precisa escrever seu aplicativo para aceitar o dados em determinados momentos Formatos (números de telefone, endereços de e-mail, etc.) somente quando é isso que você deseja.
  • Fuja da saída. Esta é a solução para o problema, por outro lado. Se um aplicativo da Web enviar a entrada do usuário de volta para uma página da Web, esses dados deverão ser filtrados para garantir que não se tornem executáveis ​​nessa página. Se o usuário inserir tags HTML como entrada, o aplicativo deverá usar caracteres substituídos para que essas tags apareçam como texto na página de resultados em vez de se integrarem ao HTML da própria página.
  • Política de segurança de conteúdo padrão (CSP). O CSP adota a abordagem de “lista branca” fora da entrada de texto no domínio do script: um aplicativo da Web deve executar apenas o código que o usuário especificou para ser seguro. O Google tem ótimos recursos para implementar o CSP.

teste XSS

O teste de vulnerabilidade para ataques XSS é um aspecto importante para garantir a segurança de um aplicativo da web. OWASP possui recursos que detalham como os aplicativos podem ser testados para evitar ataques DOM ou scripts entre sites reversos. Se você estiver procurando por uma planilha XSS, o OWASP também tem um documento com código de ataque XSS para você que pode ser usado para contornar alguns filtros de defesa XSS; Será inestimável nos testes de penetração que você pode realizar em seus próprios sistemas.

XSS e CSRF

Você pode ouvir que o CSRF é usado no mesmo contexto que o XSS. É a abreviação de Cross-Site Request Forgery, um ataque – como o XSS – que tem como alvo o navegador de um usuário. A principal diferença é que o CSRF usa uma sessão autenticada para o usuário (talvez ele esteja logado em sua conta bancária), enquanto o XSS não precisa de uma sessão autenticada para ser eficaz.

Digamos que um usuário esteja conectado ao Twitter e a um banco de internet ao mesmo tempo e clique em um link do Twitter parecido com este:

http://www.yourbank.com/sendmoney,do?from=you&to=attacker&amount=5000

Dependendo da maneira como seu banco gerencia os tokens de sessão e o navegador que você está usando, eles podem ficar muito mais pobres de repente. XSS é um vetor de ataque mais perigoso, mas é importante se defender contra XSS e CSRF. O OWASP preparou uma ficha informativa sobre medidas de proteção contra CSRF.

Ataques XSS recentes e infames

Um dos mais antigos e famosos ataques de cross-site scripting ocorreu em 2005, quando o usuário empreendedor do MySpace Sammy Kamkar percebeu que poderia inserir código JavaScript em seu perfil que autenticaria automaticamente qualquer pessoa que visitasse o site – e também copiar esse código para os perfis de seu novos amigos, Graças a isso, todos que visitarem estas páginas também serão seus amigos. (O roteiro garantiu que cada um dos novos amigos de Kamkar chegasse ao “top oito” – temos medo de entender isso, você teria que estar lá, mas acredite, isso importava.) Em 24 horas, ele fez mais de um milhão de amigos e forçou o MySpace a fechar o site inteiro por um curto período de tempo.

Acontece que o chamado worm Sami é praticamente inofensivo. No entanto, outros foram mais irritantes:

• O Ebay teve vulnerabilidades XSS por anos que permitiram que hackers roubassem credenciais de login do usuário

• Os atacantes XSS conseguiram roubar V-Bucks dos jogadores do Fortnite em 2019.

• O grupo de hackers Magecart atacou a British Airways em 2018 com um ataque XSS, roubando centenas de milhares de identidades de usuários

E o script entre sites continua sendo uma séria ameaça hoje. A partir de 2021, vulnerabilidades XSS foram encontradas na plataforma de e-mail Zimbra, WordPress e na plataforma de gerenciamento de TI de código aberto Nagios. Lembre-se de que os hackers geralmente não usam técnicas de ataque isoladamente: o script entre sites é um componente de uma forma complexa recentemente descoberta do ataque curinga TLS conhecido como ALPACA. Para evitar ameaças perigosas, certifique-se de fechar as vulnerabilidades XSS.

Fonte: CSO

.

Assista também

Elon Musk fornece serviço Starlink na Ucrânia gratuitamente

Related Articles

Técnica

¿Qué es XSS? Ataques de secuencias de comandos entre sitios explicados

¿Qué es XSS? Ataques de secuencias de comandos entre sitios explicados

 

En el caso de un ataque XSS, los atacantes inyectan un código malicioso en un formulario web o en la URL de una aplicación web para forzarlo a hacer algo que no debería hacer.


 
 

Cross-Site Scripting (XSS) es un ataque cibernético en el que un pirata informático inserta un código malicioso en un formulario web o URL de una aplicación web. Este código malicioso, escrito en un lenguaje de secuencias de comandos como JavaScript o PHP, puede hacer cualquier cosa, desde destruir la página que intenta cargar hasta robar sus contraseñas u otras credenciales de inicio de sesión.

XSS hace uso de un aspecto importante de la Internet moderna, que es el hecho de que la mayoría de las páginas web se crean mientras se cargan las páginas, a veces mediante la ejecución de código en el propio navegador. Esto puede dificultar la prevención de tales ataques.

Compruebe también:

¿Cómo funciona un ataque XSS?

Cualquiera puede crear un sitio web que contenga código malicioso. En el caso de un ataque de secuencias de comandos entre sitios, el atacante organiza todo para que su código llegue a la computadora de la víctima cuando visita el sitio web de otra persona. De ahí viene la “cruz” del nombre. Los ataques XSS logran esto sin requerir acceso privilegiado a un servidor web para poner código de manera subrepticia. En cambio, los atacantes se aprovechan de la forma en que funcionan los sitios web modernos.

Si alguien te pidiera una explicación simple y básica de cómo funciona la web, probablemente podrías decirle algo como esto: la persona que quiere crear una página web escribe un documento HTML y lo coloca en un servidor web; Cuando el usuario quiere acceder a esta página, dirige su navegador a la dirección del servidor, el navegador descarga e interpreta el código HTML y crea una copia de la página web del usuario.

Esta descripción no es incorrecta, pero algunos aspectos están desactualizados (y existen desde hace más de diez años). En primer lugar, muchas páginas web, si no todas, son dinámicas en la actualidad, es decir, no muestran el mismo HTML estático a todos los visitantes, sino que se generan instantáneamente a partir de la información en la base de datos del servidor cuando el navegador solicita acceso. La página que el navegador recibe del servidor a menudo depende de la información enviada con la solicitud, información que a veces toma la forma de parámetros en la URL utilizada para acceder al sitio. Los sitios web no solo consisten en HTML y hojas de estilo en cascada (CSS) que describen cómo mostrar texto y gráficos, sino que también contienen código ejecutable escrito en lenguajes de secuencias de comandos, generalmente JavaScript.

En un ataque XSS, el pirata informático utiliza esta interacción entre el usuario y el sitio web para ejecutar código malicioso en la computadora del usuario. ¿pero cómo? Considere la siguiente URL:

https://www.google.com/search?q=CSO+en línea

Ingrese esto en la barra de direcciones de su navegador y verá los resultados de búsqueda de Google para “CSO Online”. De hecho, la página que verá se ve exactamente igual que si hubiera ingresado “CSO Online” en la barra de búsqueda de su navegador o en la página de inicio de Google. Notarás, entre otras cosas, que esta frase aparece en varios lugares de la página, incluida la barra de búsqueda en las montañas:

¿Qué es XSS?  Aclarar los ataques de secuencias de comandos entre sitios

¿Qué pasa si, en lugar de la frase inocente y exitosa “CSO en línea”, esta URL contiene un código JavaScript malicioso como este?

https://www.google.com/search?<script>doEvil()</script>

doEvil() hace un muy mal trabajo aquí. Es posible que le preocupe que Google, en lugar de mostrar “CSO en línea” en la página que está regresando desde esta URL, integre dinámicamente el javascript incorrecto en la página que está representando, y que este script se esté ejecutando en su navegador , causando un lío . Sus preocupaciones serán infundadas, porque Google tiene una gran cantidad de talentosos profesionales de seguridad de TI entre sus empleados y ha implementado medidas correctivas de las que hablaremos un poco más adelante. Sin embargo, no todos los sitios son muy cuidadosos y esto te da una idea de cómo funcionan este tipo de ataques.

ataki xss

Los ataques XSS se dividen en varias categorías: ataques reflejados, ataques basados ​​en DOM y ataques almacenados. Así es como difieren:

  • Ataques reflejos: también conocidos como ataques débiles, el código JavaScript malicioso se envía desde el navegador de la víctima a Google, luego se refleja en un formato ejecutable, nunca se almacena en los servidores de Google. Estos ataques a menudo son parte de una estafa de phishing, donde el enlace malicioso se disfraza como algo más divertido y se envía a la víctima por correo electrónico o SMS.
  • Ataques basados ​​en DOM: Este es un tipo de ataque reflejo llamado Document Object Model, que es una API estándar que define cómo los navegadores crean una página web a partir de código HTML o JavaScript básico. La mayoría de los ataques DOM son similares al ataque reflejo descrito anteriormente, con la diferencia de que el código malicioso nunca se envía al servidor: en su lugar, se pasa como un parámetro a alguna función de JavaScript que se ejecuta en el propio navegador, lo que significa que los mecanismos que protegen en el lado del servidor no pueden proteger al usuario. Si está interesado en los detalles, PortSwigger tiene una descripción más detallada de cómo funcionan los ataques DOM.
  • Ataques almacenados: de lo contrario, persistentes; El atacante utiliza las funciones interactivas del sitio web para guardar código malicioso en el servidor web. En un ejemplo típico, el atacante deja un comentario en una publicación de blog que contiene JavaScript malicioso. La próxima vez que alguien cargue esta página, se ejecutará el código.
  • Vulnerabilidad al ataque XSS

¿Qué hace que un sitio web sea vulnerable a un ataque XSS? Esperemos que nuestra discusión hasta ahora haya proporcionado alguna orientación. Si su aplicación web toma ingenuamente la entrada del usuario, no la verifica en busca de código ejecutable malicioso y usa esos datos para representar una página o realizar otras operaciones, es vulnerable a este tipo de ataque.

Y los riesgos son grandes. El aspecto principal de la seguridad del navegador es la llamada política del mismo origen, que establece que un script que se ejecuta en una página puede acceder a los datos en la otra página solo si ambos lados tienen el mismo origen (definido como una combinación de URI, nombre de host, y número de puerto). Sin embargo, si se puede ejecutar JavaScript malicioso en el navegador mientras la víctima accede al sitio web, el navegador permitirá que JavaScript acceda a datos de otros sitios web que comparten un recurso con el sitio web vulnerable. JavaScript puede acceder a cookies y otra información de sesión patentada, lo cual es una buena receta para piratear las cuentas de Internet de las víctimas.

Cargas útiles XSS

En el lenguaje del malware, una carga útil es un código ejecutable que realiza las acciones requeridas por el atacante. En el caso de un ataque XSS, la carga útil es un código de secuencia de comandos que el atacante ejecuta para engañar al navegador de la víctima para que se ejecute.

Hay una lista enorme de plantillas de carga útil XSS en el repositorio de Payloadbox en GitHub. Si está familiarizado con JavaScript, revisarlo podría darle una idea de cómo los atacantes XSS hacen el trabajo sucio. Sin embargo, un ataque XSS va más allá de cortar y pegar la carga útil en la URL: el atacante debe comprender las funciones y vulnerabilidades específicas de la aplicación web que desea explotar para planificar el ataque. Si desea profundizar más y ver algunos ejemplos de ataques XSS, consulte el sitio web de OWASP XSS para ver en profundidad el código de secuencia de comandos que muestra un ataque XSS.

Protección y Prevención XSS

Si está creando o manteniendo una aplicación web o un sitio web interactivo, existen tres técnicas principales que debe considerar en su diseño para evitar posibles ataques de secuencias de comandos entre sitios.

  • Esterilización de datos de entrada. La respuesta obvia para evitar que el código malicioso se pase como entrada y se devuelva al usuario es simplemente no aceptar el código de secuencia de comandos como entrada. Definitivamente deberías filtrar tu entrada teniendo esto en cuenta, pero es más fácil decirlo que hacerlo; Pequeños fragmentos de código ejecutable pueden colarse a través de los filtros. Una forma de lidiar con este problema es usar una lista blanca en lugar de una lista negra; por ejemplo, en lugar de intentar escribir un filtro que bloquee todo el código malicioso que se ingresa en un formulario web, debe escribir su aplicación para aceptar el datos en determinados momentos Formatos (números de teléfono, direcciones de correo electrónico, etc.) sólo cuando eso es lo que desea.
  • Escapar de la salida. Esta es la solución al problema por otro lado. Si una aplicación web envía la entrada del usuario a una página web, estos datos deben filtrarse para garantizar que no se conviertan en ejecutables en esa página. Si el usuario ingresa etiquetas HTML como entrada, la aplicación debe usar caracteres anulados para que estas etiquetas aparezcan como texto en la página de resultados en lugar de integrarse con el HTML de la página misma.
  • Política de seguridad de contenido estándar (CSP). CSP toma el enfoque de “lista blanca” fuera de la entrada de texto en el ámbito de las secuencias de comandos: una aplicación web solo debe ejecutar el código que el usuario ha especificado para ser seguro. Google tiene excelentes recursos para implementar CSP.

Prueba XSS

La prueba de vulnerabilidad para ataques XSS es un aspecto importante para garantizar la seguridad de una aplicación web. OWASP tiene recursos que detallan cómo se pueden probar las aplicaciones para evitar ataques DOM o secuencias de comandos inversas entre sitios. Si está buscando una hoja XSS, OWASP también tiene un documento con código de ataque XSS para usted que puede usarse para eludir algunos filtros de defensa XSS; Será de gran valor en las pruebas de penetración que puede realizar en sus propios sistemas.

XSS y CSRF

Es posible que escuche que CSRF se usa en el mismo contexto que XSS. Es la abreviatura de Cross-Site Request Forgery, un ataque, como XSS, que se dirige al navegador de un usuario. La principal diferencia es que CSRF usa una sesión autenticada para el usuario (quizás esté conectado a su cuenta bancaria) mientras que XSS no necesita una sesión autenticada para ser efectivo.

Supongamos que un usuario inició sesión en Twitter y en un banco de Internet al mismo tiempo, y hace clic en un enlace de Twitter que se ve así:

http://www.subanco.com/sendmoney,do?from=you&to=attacker&amount=5000

Dependiendo de la forma en que su banco administre los tokens de sesión y el navegador que esté utilizando, de repente pueden volverse mucho más pobres. XSS es un vector de ataque más peligroso, pero es importante defenderse contra XSS y CSRF. OWASP ha preparado una hoja informativa sobre medidas de protección contra CSRF.

Ataques XSS recientes e infames

Uno de los ataques de secuencias de comandos entre sitios más antiguos y famosos ocurrió en 2005, cuando el emprendedor usuario de MySpace Sammy Kamkar se dio cuenta de que podía ingresar un código JavaScript en su perfil que autenticaría automáticamente a cualquier persona que visitara el sitio, y también copiar ese código en los perfiles de su nuevos amigos, Gracias a eso, todos los que visiten estas páginas también serán sus amigos. (El guión se aseguró de que cada uno de los nuevos amigos de Kamkar se ubicara entre los “ocho primeros”; tenemos miedo de entender eso, tendrías que estar allí, pero créenos, importaba). En 24 horas, hizo más de un millón de amigos y obligó a MySpace a cerrar todo el sitio por un corto tiempo.

Resulta que el llamado gusano Sami es en su mayoría inofensivo. Sin embargo, otros eran más molestos:

• Ebay tuvo vulnerabilidades XSS durante años que permitieron a los piratas informáticos robar las credenciales de inicio de sesión de los usuarios

• Los atacantes XSS pudieron robar V-Bucks de los jugadores de Fortnite en 2019.

• El grupo de hackers Magecart atacó a British Airways en 2018 con un ataque XSS, robando cientos de miles de identidades de usuarios

Y las secuencias de comandos entre sitios siguen siendo una seria amenaza en la actualidad. A partir de 2021, se han encontrado vulnerabilidades XSS en la plataforma de correo electrónico Zimbra, WordPress y la plataforma de gestión de TI de código abierto Nagios. Tenga en cuenta que, por lo general, los piratas informáticos no utilizan técnicas de ataque de forma aislada: las secuencias de comandos entre sitios son un componente de una forma compleja descubierta recientemente del ataque TLS comodín conocido como ALPACA. Para evitar amenazas peligrosas, asegúrese de cerrar las vulnerabilidades XSS.

Fuente: OSC

.

Mira también

Elon Musk ofrece el servicio Starlink en Ucrania de forma gratuita

Related Articles

teknik

XSS nedir? Siteler arası komut dosyası çalıştırma saldırıları açıklandı

XSS nedir? Siteler arası komut dosyası çalıştırma saldırıları açıklandı

 

Bir XSS saldırısı durumunda, saldırganlar, yapmaması gereken bir şeyi yapmaya zorlamak için bir web formuna veya web uygulaması URL’sine kötü amaçlı kod enjekte eder.


 
 

Siteler Arası Komut Dosyası Çalıştırma (XSS), bir bilgisayar korsanının bir web formuna veya bir web uygulamasının url’sine kötü amaçlı kod eklediği bir siber saldırıdır. JavaScript veya PHP gibi bir komut dosyası dilinde yazılmış bu kötü amaçlı kod, yüklemeye çalıştığınız sayfayı yok etmekten parolalarınızı veya diğer oturum açma kimlik bilgilerinizi çalmaya kadar her şeyi yapabilir.

XSS, modern internetin önemli bir yönünü kullanır; bu, çoğu web sayfasının, sayfalar yüklenirken, bazen tarayıcının kendisinde kod yürütülerek oluşturulduğu gerçeğidir. Bu, bu tür saldırıları önlemeyi zorlaştırabilir.

Ayrıca kontrol edin:

XSS saldırısı nasıl çalışır?

Herkes kötü amaçlı kod içeren bir web sitesi oluşturabilir. Siteler arası komut dosyası çalıştırma saldırısı durumunda, saldırgan, başka birinin web sitesini ziyaret ettiğinde kodunun kurbanın bilgisayarına ulaşması için her şeyi düzenler. Adındaki “haç” da buradan gelir. XSS saldırıları, gizlice kod koymak için bir web sunucusuna ayrıcalıklı erişim gerektirmeden bunu başarır. Bunun yerine, saldırganlar modern web sitelerinin çalışma biçiminden yararlanır.

Biri sizden web’in nasıl çalıştığına dair basit ve basit bir açıklama isterse, muhtemelen onlara şöyle bir şey söyleyebilirsiniz: Bir web sayfası oluşturmak isteyen kişi bir HTML belgesi yazar ve onu bir web sunucusuna yerleştirir; Kullanıcı bu sayfaya erişmek istediğinde tarayıcısını sunucu adresine yönlendirir, tarayıcı HTML kodunu indirir ve yorumlar ve kullanıcının web sayfasının bir kopyasını oluşturur.

Bu açıklama yanlış değil, ancak bazı yönler modası geçmiş (ve on yıldan fazla bir süredir var). Birincisi, hepsi olmasa da çoğu web sayfası bugün dinamiktir – yani, her ziyaretçiye aynı statik HTML’yi göstermezler, bunun yerine tarayıcı erişim istediğinde sunucunun veritabanındaki bilgilerden anında oluşturulurlar. Tarayıcının sunucudan aldığı sayfa genellikle istekle gönderilen bilgilere bağlıdır – bazen siteye erişmek için kullanılan URL’de parametre biçimini alan bilgiler. Web siteleri yalnızca metin ve grafiklerin nasıl görüntüleneceğini açıklayan HTML ve Basamaklı Stil Sayfalarından (CSS) oluşmakla kalmaz, aynı zamanda genellikle JavaScript olmak üzere komut dosyası dillerinde yazılmış yürütülebilir kodlar da içerir.

Bir XSS saldırısında, bilgisayar korsanı, kullanıcının bilgisayarında kötü amaçlı kod yürütmek için kullanıcı ile web sitesi arasındaki bu etkileşimi kullanır. ama nasıl? Aşağıdaki URL’yi göz önünde bulundurun:

https://www.google.com/search?q=CSO+çevrimiçi

Bunu tarayıcınızın adres çubuğuna girin ve “CSO Online” için Google arama sonuçlarını göreceksiniz. Aslında, göreceğiniz sayfa, tarayıcınızın arama çubuğuna veya Google ana sayfasına “CSO Online” girdiğiniz gibi görünür. Diğer şeylerin yanı sıra, bu ifadenin dağlardaki arama çubuğu da dahil olmak üzere sayfanın çeşitli yerlerinde göründüğünü fark edeceksiniz:

XSS nedir?  Siteler arası komut dosyası çalıştırma saldırılarını netleştirin

Ya bu URL, masum ve başarılı “CSO çevrimiçi” ifadesi yerine bunun gibi kötü amaçlı JavaScript kodu içeriyorsa?

https://www.google.com/search?<script>doEvil()</script>

doEvil() burada gerçekten kötü bir iş çıkarıyor. Google’ın, bu url’den döndürdüğünüz sayfada “CSO Online” ifadesini görüntülemek yerine, kötü javascript’i oluşturmakta olduğunuz sayfaya dinamik olarak entegre edeceğinden ve bu komut dosyasının tarayıcınızda yürütülmekte olduğundan endişe duyabilirsiniz. , karışıklığa neden oluyor . Google, çalışanları arasında çok sayıda yetenekli BT güvenlik uzmanına sahip olduğundan ve biraz sonra bahsedeceğimiz iyileştirici önlemler uyguladığından endişeleriniz yersiz olacaktır. Ancak her site çok dikkatli değildir ve bu size bu tür saldırıların nasıl çalıştığı hakkında bir fikir verir.

Ataki XSS

XSS saldırıları birkaç kategoriye ayrılır: yansıyan saldırılar, DOM tabanlı saldırılar ve depolanan saldırılar. İşte nasıl farklı oldukları:

  • Refleks saldırılar: Zayıf saldırılar olarak da bilinen kötü amaçlı JavaScript kodu, kurbanın tarayıcısından Google’a gönderilir, ardından yürütülebilir bir biçimde geri yansıtılır ve hiçbir zaman Google’ın sunucularında depolanmaz. Bu saldırılar genellikle, kötü niyetli bağlantının daha eğlenceli bir şey olarak gizlendiği ve kurbana e-posta veya SMS yoluyla gönderildiği bir kimlik avı dolandırıcılığının parçasıdır.
  • DOM tabanlı saldırılar: Bu, tarayıcıların temel HTML veya JavaScript kodundan nasıl bir web sayfası oluşturduğunu tanımlayan standart bir API olan Document Object Model adlı bir refleks saldırı türüdür. Çoğu DOM saldırısı, kötü amaçlı kodun hiçbir zaman sunucuya gönderilmemesi farkıyla, daha önce açıklanan refleks saldırısına benzer: bunun yerine tarayıcının kendisinde yürütülen bazı JavaScript işlevlerine parametre olarak iletilir; bu, koruma mekanizmalarının çalıştığı anlamına gelir. sunucu tarafında kullanıcıyı koruyamazlar. Ayrıntılarla ilgileniyorsanız, PortSwigger, DOM saldırılarının nasıl çalıştığına dair daha ayrıntılı bir açıklamaya sahiptir.
  • Saklanan saldırılar: aksi takdirde kalıcı; Saldırgan, kötü amaçlı kodu web sunucusuna kaydetmek için web sitesinin etkileşimli özelliklerini kullanır. Tipik bir örnekte, saldırgan kötü amaçlı JavaScript içeren bir blog gönderisine yorum bırakır. Birisi bu sayfayı bir sonraki yüklediğinde, kod yürütülecektir.
  • XSS saldırısına karşı güvenlik açığı

Bir web sitesini XSS saldırısına karşı savunmasız kılan nedir? Umarım şimdiye kadar yaptığımız tartışma bir miktar rehberlik sağlamıştır. Web uygulamanız safça kullanıcı girdisi alıyorsa, kötü amaçlı yürütülebilir kod olup olmadığını kontrol etmiyorsa ve bu verileri bir sayfa oluşturmak veya başka işlemler gerçekleştirmek için kullanıyorsa, bu tür saldırılara karşı savunmasızdır.

Ve riskler harika. Tarayıcı güvenliğinin ana yönü, bir sayfada yürütülen bir komut dosyasının diğer sayfadaki verilere ancak her iki tarafın da aynı Köken’e sahip olması durumunda (URI, ana bilgisayar adı, ve numara bağlantı noktası). Ancak, kurban web sitesine erişirken tarayıcıda kötü amaçlı JavaScript çalıştırılabilirse, tarayıcı JavaScript’in savunmasız web sitesiyle bir kaynak paylaşan diğer web sitelerinden verilere erişmesine izin verir. JavaScript, çerezlere ve diğer özel oturum bilgilerine erişebilir; bu, kurbanın internet hesaplarını hacklemek için iyi bir reçetedir.

Yükler XSS

Kötü amaçlı yazılım açısından yük, saldırganın gerektirdiği eylemleri gerçekleştiren yürütülebilir bir koddur. Bir XSS saldırısı durumunda, yük, saldırganın kurbanın tarayıcısını çalıştırması için kandırmak için çalıştırdığı bir komut dosyası kodudur.

GitHub’daki Payloadbox deposunda çok sayıda XSS yük şablonu listesi var. JavaScript’e aşina iseniz, onu incelemek size XSS saldırganlarının kirli işlerini nasıl yaptıkları hakkında bir fikir verebilir. Bununla birlikte, bir XSS saldırısı, yükü kesip URL’ye yapıştırmanın ötesine geçer: saldırganın, saldırıyı planlamak için yararlanmak istediği web uygulamasının belirli işlevlerini ve güvenlik açıklarını anlaması gerekir. Daha derine inmek ve bazı XSS ​​saldırı örnekleri görmek istiyorsanız, bir XSS saldırısını gösteren komut dosyası koduna derinlemesine bakmak için OWASP XSS web sitesine bakın.

XSS Koruması ve Önleme

Bir web uygulaması veya etkileşimli web sitesi oluşturuyor veya bakımını yapıyorsanız, olası siteler arası komut dosyası çalıştırma saldırılarından kaçınmak için tasarımınızda göz önünde bulundurmanız gereken üç ana teknik vardır.

  • Giriş verilerinin sterilizasyonu. Kötü amaçlı kodun girdi olarak iletilmesini ve kullanıcıya iade edilmesini önlemenin açık cevabı, komut dosyasını girdi olarak kabul etmemek. Girişinizi kesinlikle bunu göz önünde bulundurarak filtrelemelisiniz, ancak bunu söylemek yapmaktan daha kolay; Küçük yürütülebilir kod parçaları filtrelerden geçebilir. Bu sorunla başa çıkmanın bir yolu, kara liste yaklaşımı yerine beyaz liste kullanmaktır – örneğin, tüm kötü amaçlı kodların bir web formuna beslenmesini engelleyecek bir filtre yazmaya çalışmak yerine, başvurunuzu kabul etmek için yazmanız gerekir. veri belirli zamanlarda Formatlar (telefon numaraları, e-posta adresleri vb.) yalnızca istediğiniz bu olduğunda.
  • Çıktıdan kaçış. Öte yandan sorunun çözümü bu. Bir web uygulaması, kullanıcı girdisini bir web sayfasına geri gönderirse, o sayfada yürütülebilir hale gelmemesini sağlamak için bu veriler filtrelenmelidir. Kullanıcı HTML etiketlerini girdi olarak girerse, uygulamanın geçersiz kılınan karakterleri kullanması gerekir, böylece bu etiketler sayfanın HTML’si ile bütünleşmek yerine sonuç sayfasında metin olarak görünür.
  • Standart İçerik Güvenliği Politikası (CSP). CSP, metin girişinin dışında “beyaz listeye alma” yaklaşımını komut dosyası alanına alır: bir web uygulaması yalnızca kullanıcının güvenli olduğunu belirttiği kodu çalıştırmalıdır. Google’ın CSP’yi uygulamaya yönelik bazı harika kaynakları vardır.

XSS testi

XSS saldırıları için güvenlik açığı testi, bir web uygulamasının güvenliğini sağlamanın önemli bir yönüdür. OWASP, DOM saldırılarını önlemek veya siteler arası komut dosyası çalıştırmayı tersine çevirmek için uygulamaların nasıl test edilebileceğini ayrıntılandıran kaynaklara sahiptir. Bir XSS sayfası arıyorsanız, OWASP ayrıca, bazı XSS ​​savunma filtrelerini atlamak için kullanılabilecek XSS saldırı kodu içeren bir belgeye sahiptir; Kendi sistemlerinizde gerçekleştirebileceğiniz sızma testlerinde çok değerli olduğunu kanıtlayacaktır.

XSS ve CSRF

CSRF’nin XSS ile aynı bağlamda kullanıldığını duyabilirsiniz. XSS gibi bir kullanıcının tarayıcısını hedef alan bir saldırı olan Siteler Arası İstek Sahteciliğinin kısaltmasıdır. Temel fark, CSRF’nin kullanıcı için kimliği doğrulanmış bir oturum kullanması (belki de banka hesaplarına giriş yapmış olmaları), XSS’nin etkili olması için kimliği doğrulanmış bir oturuma ihtiyacı olmamasıdır.

Diyelim ki bir kullanıcı aynı anda hem Twitter’a hem de internet bankacılığına giriş yaptı ve şuna benzeyen bir Twitter bağlantısına tıkladı:

http://www.yourbank.com/sendmoney,do?from=you&to=attacker&amount=5000

Bankanızın oturum belirteçlerini yönetme biçimine ve kullandığınız tarayıcıya bağlı olarak, aniden çok daha kötü hale gelebilirler. XSS daha tehlikeli bir saldırı vektörüdür, ancak hem XSS hem de CSRF’ye karşı savunma yapmak önemlidir. OWASP, CSRF’ye karşı koruma önlemleri hakkında bir bilgi sayfası hazırlamıştır.

Yakın Zamandaki ve Kötü Ünlü XSS Saldırıları

En eski ve en ünlü siteler arası komut dosyası saldırılarından biri 2005 yılında, girişimci MySpace kullanıcısı Sammy Kamkar’ın profiline, siteyi ziyaret eden herkesin kimliğini otomatik olarak doğrulayacak JavaScript kodunu girebileceğini fark etmesi ve bu kodu web sitenizin profillerine kopyalamasıyla gerçekleşti. yeni arkadaşlar, Bu sayede bu sayfaları ziyaret eden herkes onun da arkadaşı olacak. (Senaryo, Kamkar’ın yeni arkadaşlarının her birinin “ilk sekize” girmesini sağladı – bunu anlamaktan korkuyoruz, orada olmalısınız, ama bize inanın, önemliydi.) 24 saat içinde bir milyondan fazla arkadaş edindi ve MySpace’i tüm siteyi kısa bir süreliğine kapatmaya zorladı.

Sözde Sami solucanının çoğunlukla zararsız olduğu ortaya çıktı. Ancak, diğerleri daha sinir bozucuydu:

• Ebay’de yıllardır bilgisayar korsanlarının kullanıcı oturum açma bilgilerini çalmasına izin veren XSS güvenlik açıkları vardı

• XSS saldırganları 2019’da Fortnite oyuncularından V-Bucks çalmayı başardı.

• Hacking grubu Magecart, 2018’de British Airways’e bir XSS saldırısıyla saldırdı ve yüz binlerce kullanıcı kimliğini çaldı

Ve siteler arası komut dosyası oluşturma bugün ciddi bir tehdit olmaya devam ediyor. 2021 itibariyle, Zimbra e-posta platformu WordPress’te ve açık kaynaklı BT yönetim platformu Nagios’ta XSS güvenlik açıkları bulundu. Bilgisayar korsanlarının genellikle saldırı tekniklerini tek başına kullanmadığını unutmayın: siteler arası komut dosyası oluşturma, ALPACA olarak bilinen TLS joker saldırısının yakın zamanda keşfedilen karmaşık bir biçiminin bir bileşenidir. Tehlikeli tehditlerden kaçınmak için XSS güvenlik açıklarını kapattığınızdan emin olun.

Kaynak: STK

.

Ayrıca izle

Elon Musk, Ukrayna’da Starlink hizmetini ücretsiz veriyor

Related Articles

Техника

Что такое XSS? Объяснение атак межсайтового скриптинга

Что такое XSS? Объяснение атак межсайтового скриптинга

 

В случае атаки XSS злоумышленники внедряют вредоносный код в веб-форму или URL-адрес веб-приложения, чтобы заставить его делать то, что он не должен делать.


 
 

Межсайтовый скриптинг (XSS) — это кибератака, при которой хакер вставляет вредоносный код в веб-форму или URL-адрес веб-приложения. Этот вредоносный код, написанный на языке сценариев, таком как JavaScript или PHP, может сделать что угодно: от уничтожения страницы, которую вы пытаетесь загрузить, до кражи ваших паролей или других учетных данных для входа.

XSS использует важный аспект современного Интернета, а именно тот факт, что большинство веб-страниц создаются во время их загрузки, иногда путем выполнения кода в самом браузере. Это может затруднить предотвращение таких атак.

Проверьте также:

Как работает XSS-атака?

Любой может создать веб-сайт, содержащий вредоносный код. В случае атаки с использованием межсайтового скриптинга злоумышленник подстраивает все так, чтобы его код попадал на компьютер жертвы при посещении чужого веб-сайта. Отсюда и «крест» в названии. Атаки XSS достигают этого, не требуя привилегированного доступа к веб-серверу для тайного размещения кода. Вместо этого злоумышленники используют то, как работают современные веб-сайты.

Если бы кто-то попросил вас дать простое и базовое объяснение того, как работает Интернет, вы, вероятно, могли бы ответить примерно так: человек, который хочет создать веб-страницу, пишет HTML-документ и размещает его на веб-сервере; Когда пользователь хочет получить доступ к этой странице, он направляет свой браузер на адрес сервера, браузер загружает и интерпретирует HTML-код и создает копию веб-страницы пользователя.

Это описание верно, но некоторые аспекты устарели (и существуют уже более десяти лет). Во-первых, многие, если не все, веб-страницы сегодня являются динамическими, то есть они не отображают один и тот же статический HTML-код для каждого посетителя, а генерируются мгновенно из информации в базе данных сервера, когда браузер запрашивает доступ. Страница, которую браузер получает с сервера, часто зависит от информации, отправленной с запросом, — информации, которая иногда принимает форму параметров в URL-адресе, используемом для доступа к сайту. Веб-сайты состоят не только из HTML и каскадных таблиц стилей (CSS), которые описывают, как отображать текст и графику, но также содержат исполняемый код, написанный на языках сценариев, обычно JavaScript.

При атаке XSS хакер использует это взаимодействие между пользователем и веб-сайтом для выполнения вредоносного кода на компьютере пользователя. но как? Рассмотрим следующий URL-адрес:

https://www.google.com/search?q=CSO+онлайн

Введите это в адресную строку браузера, и вы увидите результаты поиска Google по запросу «CSO Online». На самом деле страница, которую вы увидите, выглядит точно так же, как если бы вы ввели «CSO Online» в строке поиска браузера или на главной странице Google. Вы заметите, среди прочего, что эта фраза появляется в нескольких местах на странице, включая строку поиска в горах:

Что такое XSS?  Выяснение атак межсайтового скриптинга

Что, если вместо невинной и успешной фразы «CSO онлайн» этот URL-адрес содержал подобный вредоносный код JavaScript?

https://www.google.com/search?<script>doEvil()</script>

doEvil() делает здесь действительно плохую работу. Вы можете быть обеспокоены тем, что Google, вместо того, чтобы отображать «CSO Online» на странице, которую вы возвращаете с этого URL-адреса, вместо этого динамически интегрирует плохой javascript в страницу, которую вы отображаете, и что этот скрипт выполняется в вашем браузере. , вызывая беспорядок. Ваши опасения будут беспочвенными, ведь Google имеет среди своих сотрудников очень большое количество талантливых специалистов по ИТ-безопасности и внедрила корректирующие меры, о которых мы поговорим чуть позже. Однако не каждый сайт очень осторожен, и это дает вам представление о том, как работают такие атаки.

Атаки XSS

Атаки XSS делятся на несколько категорий: отраженные атаки, атаки на основе DOM и сохраненные атаки. Вот чем они отличаются:

  • Рефлекторные атаки: также известные как слабые атаки, вредоносный код JavaScript отправляется из браузера жертвы в Google, а затем отражается обратно в исполняемой форме, которая никогда не сохраняется на серверах Google. Эти атаки часто являются частью фишинговой аферы, когда вредоносная ссылка маскируется под что-то более забавное и отправляется жертве по электронной почте или SMS.
  • Атаки на основе DOM: это тип рефлекторной атаки, называемой объектной моделью документа, которая представляет собой стандартный API, определяющий, как браузеры создают веб-страницу из базового кода HTML или JavaScript. Большинство DOM-атак аналогичны рефлекторной атаке, описанной ранее, с тем отличием, что вредоносный код никогда не отправляется на сервер: вместо этого он передается в качестве параметра какой-либо функции JavaScript, которая выполняется в самом браузере, а это означает, что механизмы, защищающие на стороне сервера не могут защитить пользователя. Если вас интересуют подробности, у PortSwigger есть более подробное описание того, как работают DOM-атаки.
  • Сохраненные атаки: в противном случае постоянные; Злоумышленник использует интерактивные функции веб-сайта для сохранения вредоносного кода на веб-сервере. В типичном примере злоумышленник оставляет комментарий к сообщению в блоге, который содержит вредоносный код JavaScript. В следующий раз, когда кто-то загрузит эту страницу, код будет выполнен.
  • Уязвимость к XSS-атаке

Что делает сайт уязвимым для XSS-атаки? Надеюсь, наше обсуждение до сих пор дало некоторые указания. Если ваше веб-приложение наивно принимает пользовательский ввод, не проверяет его на наличие вредоносного исполняемого кода и использует эти данные для отображения страницы или выполнения других операций, оно уязвимо для этого типа атаки.

И риски велики. Основным аспектом безопасности браузера является так называемая политика одного и того же источника, которая гласит, что сценарий, выполняемый на одной странице, может получить доступ к данным на другой странице, только если обе стороны имеют одинаковое происхождение (определяемое как комбинация URI, имени хоста, и номер порта). Однако, если вредоносный код JavaScript может быть запущен в браузере во время доступа жертвы к веб-сайту, браузер позволит JavaScript получить доступ к данным с других веб-сайтов, которые совместно используют ресурс с уязвимым веб-сайтом. JavaScript может получить доступ к файлам cookie и другой закрытой информации о сеансе, что является хорошим средством для взлома интернет-аккаунтов жертв.

Полезные нагрузки XSS

На языке вредоносных программ полезная нагрузка — это исполняемый код, который выполняет действия, требуемые злоумышленником. В случае XSS-атаки полезной нагрузкой является код скрипта, который злоумышленник запускает, чтобы заставить браузер жертвы выполниться.

В репозитории Payloadbox на GitHub есть огромный список шаблонов полезной нагрузки XSS. Если вы знакомы с JavaScript, его просмотр может дать вам представление о том, как злоумышленники XSS выполняют свою грязную работу. Однако атака XSS выходит за рамки вырезания и вставки полезной нагрузки в URL-адрес: злоумышленнику необходимо понимать конкретные функции и уязвимости веб-приложения, которое он хочет использовать, чтобы спланировать атаку. Если вы хотите копнуть глубже и увидеть некоторые примеры XSS-атак, посетите веб-сайт OWASP XSS, чтобы подробно изучить код скрипта, демонстрирующий XSS-атаку.

Защита и предотвращение XSS

Если вы создаете или поддерживаете веб-приложение или интерактивный веб-сайт, есть три основных метода, которые вы должны учитывать при разработке, чтобы избежать потенциальных атак с использованием межсайтовых сценариев.

  • Стерилизация входных данных. Очевидный ответ для предотвращения передачи вредоносного кода в качестве входных данных и возврата пользователю — просто не принимать код сценария в качестве входных данных. Вы обязательно должны фильтровать свой ввод с учетом этого, но это легче сказать, чем сделать; Небольшие фрагменты исполняемого кода могут проскользнуть через фильтры. Одним из способов решения этой проблемы является использование белого списка вместо черного списка. Например, вместо того, чтобы пытаться написать фильтр, который будет блокировать весь вредоносный код, загружаемый в веб-форму, вы должны написать свое приложение, чтобы принимать данные в определенное время Форматы (номера телефонов, адреса электронной почты и т. д.) только тогда, когда это то, что вы хотите.
  • Побег с выхода. Это решение проблемы с другой стороны. Если веб-приложение отправляет пользовательский ввод обратно на веб-страницу, эти данные должны быть отфильтрованы, чтобы гарантировать, что они не станут исполняемыми на этой странице. Если пользователь вводит теги HTML в качестве входных данных, приложение должно использовать переопределенные символы, чтобы эти теги отображались в виде текста на странице результатов, а не интегрировались с HTML самой страницы.
  • Стандартная политика безопасности контента (CSP). CSP использует подход «белого списка» за пределами ввода текста в область сценариев: веб-приложение должно выполнять только тот код, который пользователь указал как безопасный. У Google есть отличные ресурсы по внедрению CSP.

XSS-тест

Тестирование уязвимостей для XSS-атак — важный аспект обеспечения безопасности веб-приложения. У OWASP есть ресурсы, подробно описывающие, как можно тестировать приложения, чтобы избежать DOM-атак или обратного межсайтового скриптинга. Если вы ищете лист XSS, OWASP также предлагает вам документ с кодом атаки XSS, который можно использовать для обхода некоторых защитных фильтров XSS; Это окажется неоценимым в тестах на проникновение, которые вы можете выполнять в своих собственных системах.

XSS и CSRF

Вы можете слышать, что CSRF используется в том же контексте, что и XSS. Это сокращение от Cross-Site Request Forgery, атаки, похожей на XSS, нацеленной на браузер пользователя. Основное отличие состоит в том, что CSRF использует аутентифицированный сеанс для пользователя (возможно, они вошли в свою банковскую учетную запись), в то время как XSS не нуждается в аутентифицированном сеансе, чтобы быть эффективным.

Допустим, пользователь одновременно авторизовался в Твиттере и интернет-банке и нажимает на ссылку Твиттера, которая выглядит так:

http://www.yourbank.com/sendmoney,do?from=you&to=attacker&amount=5000

В зависимости от того, как ваш банк управляет токенами сеанса и используемого вами браузера, они могут внезапно стать намного хуже. XSS — более опасный вектор атаки, но важно защищаться как от XSS, так и от CSRF. OWASP подготовил информационный лист о мерах защиты от CSRF.

Недавние и печально известные XSS-атаки

Одна из старейших и самых известных атак с использованием межсайтовых сценариев произошла в 2005 году, когда предприимчивый пользователь MySpace Сэмми Камкар понял, что может ввести в свой профиль код JavaScript, который будет автоматически аутентифицировать любого, кто посещает сайт, а также скопировать этот код в профили ваших новые друзья, Благодаря этому каждый, кто посещает эти страницы, также будет его другом. (Сценарий позаботился о том, чтобы каждый из новых друзей Камкара попал в «восьмерку» — боимся это понять, там нужно было быть, но поверьте, это имело значение.) В течение 24 часов он завел более миллиона друзей и вынудил MySpace на короткое время закрыть весь сайт.

Оказывается, так называемый саамский червь в основном безвреден. Однако другие раздражали больше:

• На протяжении многих лет у Ebay были XSS-уязвимости, которые позволяли хакерам красть учетные данные пользователя.

• Злоумышленники XSS смогли украсть V-Bucks у игроков Fortnite в 2019 году.

• В 2018 году хакерская группа Magecart атаковала British Airways с помощью XSS-атаки, похитив сотни тысяч учетных записей пользователей.

И сегодня межсайтовый скриптинг остается серьезной угрозой. По состоянию на 2021 год уязвимости XSS были обнаружены в почтовой платформе Zimbra, WordPress и платформе управления ИТ с открытым исходным кодом Nagios. Имейте в виду, что хакеры обычно не используют методы атаки изолированно: межсайтовые сценарии являются компонентом недавно обнаруженной сложной формы атаки с использованием подстановочных знаков TLS, известной как ALPACA. Чтобы избежать опасных угроз, обязательно закройте XSS-уязвимости.

Источник: ОГО

.

Смотрите также

Илон Маск предоставляет услугу Starlink в Украине бесплатно

Related Articles

Back to top button