ما هو هجوم حقن جافا سكريبت؟
1. حقن JavaScript هو إدخال جزء من رمز JS في شريط عنوان المتصفح لتغيير محتوى Page JS متغيرات وعلامات الصفحة.
باستخدام حقن JavaScript ، يمكن للمستخدمين تغيير محتواهم دون إغلاق أو حفظ صفحات الويب ، والتي تتم على شريط عناوين المتصفح. بناء جملة الأمر كما يلي:
JavaScript: Alert (#command#)
على سبيل المثال ، إذا كنت ترغب في رؤية مربع تحذير في حالة تأهب على موقع http://www.example.com ، فأدخل أولاً عنوان URL في شريط العناوين وانتظر حتى يتم تحميل الصفحة ، ثم حذف عنوان URL وإدخال:
JavaScript: Alert (Hello World)
كعنوان URL جديد. سيظهر هذا مربع تحذير Hello World ، باستخدام هذه التقنية لتغيير أي شيء تقريبًا على صفحة الويب ، مثل الصورة. لنفترض أن هناك صورة شعار موقع ويب ، ونجد واحدة من رمز HTML من خلال النظر في ملف مصدر الصفحة:
<img name = hi src = hello.gif>
تم تسمية الصورة مرحبًا ، الملف المصدر هو hello.gif ، نريد تغييره إلى ملف bye.jpeg المخزن على موقعنا (http://www.mysite.com) ، وبالتالي فإن عنوان URL الكامل للصورة هو http://www.mysite.com/bye.jpeg ، باستخدام javaScript.
JavaScript: Alert (document.hi.src = http: //www.mysite.com/bye.jpeg)
سترى http://www.mysite.com/bye.jpegalert منبثقة ، ويتم تغيير الصورة. تجدر الإشارة إلى أن هذه التغييرات مؤقتة فقط! إذا قمت بتحديث الصفحة أو إعادة إدخال التغييرات الخاصة بك ، فستختفي التغييرات لأنك أجريت هذه التغييرات على جهاز الكمبيوتر الخاص بك ، وليس على خادم الويب.
باستخدام نفس الطريقة ، يمكننا عرض أو تغيير قيمة المتغير ، على سبيل المثال ، نجد قطعة من الرمز مثل هذا على صفحة الويب:
<script language = javaScript> var a = test </script>
وهذا يعني أن قيمة المتغير A هي اختبار ، والآن ندخل:
جافا سكريبت: تنبيه (أ)
ثم نغير قيمتها إلى مرحبا:
JavaScript: ALERT (A = Hello)
عادةً ما يتم استخدام حقن JavaScript لتغيير خصائص النماذج ، على افتراض أن هناك قطعة رمز مثل هذا:
<name form = format action = send.php method = post> <input type = hidden name = mail [email protected]> <input type = text name> <type type = proffic
نريد إرسال النموذج إلى صندوق البريد الخاص بنا ، وليس شخصًا@somewhere.com. يمكنك استخدام الأمر التالي:
JavaScript: Alert ([email protected])
ربما لاحظت التسلسل الهرمي لهذه الأوامر:
دعنا نشرح ذلك بالترتيب من اليسار إلى اليمين:
1) الوثيقة على أقصى اليسار
2) ثم هناك اسم الكائن الذي نريد تغييره (مثل المستند. hi.src) أو الكائن الذي يحتوي عليه (مثل المستند.
3) أخيرًا ، السمة التي نريد تغييرها (مثل مسار المصدر: document.hi.src ، أو القيمة المتغيرة: document.format.mail.value)
4) استخدام. فصل العدد
5) عندما نريد تغيير قيمة السمة ، نستخدم = علامة وقيمة السمة الجديدة
*ملاحظة: عندما تكون قيمة السمة الجديدة عبارة عن سلسلة (على سبيل المثال: [email protected]) يجب إرفاقها في عروض أسعار مزدوجة.
إذا كنا نريد استخدامه كقيمة لمتغير ، فلن نحتاج إلى استخدام عروض أسعار مزدوجة. على سبيل المثال ، إذا كنا نريد تعيين قيمة المتغير B للمتغير A ، فيمكننا إدخال JavaScript: ALERT (A = B).
ومع ذلك ، فإن معظم العلامات في الصفحة لا تحتوي على أسماء ، مثل:
<form action = send.php method = post> <input type = hidden name = mail [email protected]> <input type = text name> <input type = product value = submit> </pott>
لا يوجد اسم نموذج في هذا الرمز. بناءً على المعلومات أعلاه ، يمكنك استخدام هذا الأمر:
JavaScript: ALERT (وثيقة.. mail.value = [email protected])
في هذه الحالة ، يجب أن نحسب وإيجاد رقم تسلسل النموذج ، وما يلي مثال:
<form action = send.php method = post> <input type = text name = name> <type type = submit value = subvice> </form> <form action = send.php method = post> <input type = hidden name = mail [email protected]> <type type = text name> <input type = stridge> </form> </form>
في الكود أعلاه ، نرى 3 نماذج ، لكننا مهتمون فقط بالثاني ، وبالتالي فإن رقم النموذج الذي نريده هو 2. لا تنسى أننا نبدأ من 1 ، مثل 1 ، 2 ، 3 ، 4 ... بينما يبدأ JavaScript من 0 ، مثل 0 ، 1 ، 2 ، 3 ... لذلك فإن رقم النموذج الحقيقي هو 1 ، لا يتعين علينا عادة طرح رقم النموذج الموجود على واحد. سوف نستخدم هذا الرقم التسلسلي لإكمال أمرنا:
JavaScript: ALERT (document.forms [1] .mail.value = [email protected])
وبهذه الطريقة ، يمكنك تغيير الصورة أو الرابط بدون اسم ، ويمكنك تغيير النماذج إلى أي نوع علامة تريده. للصور
JavaScript: ALERT (document.images [3] .SRC =#عنوان URL للصورة التي تريدها#)
من أجل الرابط
JavaScript: ALERT (document.links [0] .href =#عنوان URL الذي تريده#)
أخيرًا ، يمكننا استخدام هذه التقنية لتحرير ملفات تعريف الارتباط. تتم كتابة الأمر التالي بواسطة DR_AMADO من triviasecurity.net ، وقمت بتعديله قليلاً فقط للسماح له بالظهور قبل تعديل المستخدم. تحتاج فقط إلى نسخها إلى شريط العناوين:
JavaScript: Alert (window.c = function a (n ، v ، nv) {c = document.cookie ؛ c = c.subString ( document.cookie = n+=+Escape (NC) ؛ ALERT ('ملف تعريف الارتباط هو:'+document.cookie+'') ؛ ALERT (C (مطالبة (اسم ملف تعريف الارتباط: ،) ، موجه (تغيير هذه القيمة: ،) ، موجه (مع هذا: ،))))))))))))))))))))))))// إذا كنت ترغب في تغيير ملف تعريف الارتباط يدويًا ، فيمكنك استخدام الأمر التالي:
JavaScript: Alert (document.cookie)
سيعرض هذا ملف تعريف الارتباط الحالي الخاص بك ، بافتراض userId = 1 ، إذا كنت تريد تغييره إلى userId = 2 ، يمكنك استخدام الأمر التالي:
JavaScript: ALERT (document.cookie = userId = 2)
أخيرًا ، يجب أن أؤكد أن جميع التغييرات موجودة فقط على جانب العميل! إنه مثل حفظ صفحة ويب على جهاز الكمبيوتر الخاص بك وتعديلها. ومع ذلك ، باستخدام هذه الخدعة ، لا يزال بإمكانك خداع الصفحة (مثل ملفات تعريف الارتباط) أو التحقق من الأمان. على سبيل المثال ، ستكتشف بعض صفحات الويب الموقع الذي يرسله المستخدم البيانات. إذا قمت بإرسال بيانات من http://www.test.com/form.php إلى http://www.test.com/check.php ، فقد يكتشف check.php ما إذا كانت البيانات تأتي من النموذج على http://www.test.com/form.php. إلى جانب ذلك ، إذا كنت تخطط لإدخال رمز JavaScript الخاص بك في الصفحة ، باستخدام بعض هذه الحيل ، فستتمكن من تغيير الصورة وتركها كما هي!
ما سبق هو كل محتوى هذه المقالة. آمل أن يكون ذلك مفيدًا لتعلم الجميع وآمل أن يدعم الجميع wulin.com أكثر.