English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

مرة أخرى حول تدخل javascript هو ضروري للقرصان!

ما هو هجوم التداخل ببرنامج Javascript؟

1、JavaScript injection هو إدخال فقرة من كود js في شريط العنوان في المتصفح، لتغيير متغيرات js في الصفحة، محتوى العلامات في الصفحة.
باستخدام التداخل ببرنامج Javascript، لا يحتاج المستخدم إلى إغلاق أو حفظ الصفحة لتغيير محتواها، ويتم ذلك في شريط العنوان في المتصفح. لغة الجرامر للأوامر كالتالي:
javascript:alert(#command#)  

على سبيل المثال، إذا كنت تريدhttp://www.example.comإذا رأيت إشعار التحذير "alert" على الموقع، فإنك يجب أولاً إدخال URL في الشريط العنواني وانتظر تحميل الصفحة، ثم حذف URL وإدخال:
javascript:alert("Hello World")  

بصفتها عنوان URL جديد. هذا سينقرح نافذة تحذير "Hello World"، يمكن استخدام هذه التقنية لتغيير أي محتوى في صفحة الويب، مثل صورة. افترض أن لديك صورة شعار موقع، نجد جزءًا من كود HTML للصفحة من خلال النظر في ملف المصدر للصفحة:
<IMG Name="hi" SRC="hello.gif">  

تم تسمية الصورة بـ "hi"، ملف المصدر هو "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.jpeg"، ثم يتم تغيير الصورة. من المهم ملاحظة أن هذه التغييرات مؤقتة فقط! إذا قمت بتحديث الصفحة أو الدخول مرة أخرى، ستختفي التغييرات الخاصة بك لأنك قمت بتلك التغييرات فقط على جهاز الكمبيوتر الخاص بك وليس على خادم الويب.
باستخدام نفس الطريقة، يمكننا عرض أو تغيير قيمة المتغير، على سبيل المثال، في صفحة الويب يمكننا العثور على كود مثل هذا:

<SCRIPT LANGUAGE="JavaScript"> 
var a="test" 
</SCRIPT>  

يعني أن قيمة المتغير a هي "test"، الآن نكتب:
javascript:alert(a)  
 ثم نغير قيمته إلى "hello":
javascript:alert(a="hello")  
يستخدم التداخل الجافاسكربت عادةً لتغيير خصائص النموذج، لنفترض وجود كود مثل هذا:

<form name="format" action="send.php" method="post"> 
<input type="hidden" name="mail" value="[email protected]"> 
<input type="text" name="name"> 
<input type="submit" value="submit"></form> 

 نريد أن يرسل النموذج إلى بريدنا الإلكتروني وليس [email protected]. يمكن استخدام الأمر التالي:
javascript:alert(document.format.mail.value="[email protected]") 
ربما لاحظت ميزة التسلسل لهذه الأوامر:

نوضح بالترتيب من اليسار إلى اليمين
1) في أقصى اليسار يوجد document
2) ثم نريد تغيير اسم العنصر (مثل document.hi.src) أو العنصر المضمن (مثل document.format.mail.value)
3) في النهاية، نريد تغيير الصفة (مثل المسار المصدر: document.hi.src أو قيمة المتغير: document.format.mail.value)
4) نستخدم علامة النقطة "." لتقسيم
5) عند الرغبة في تغيير قيمة الصفة، نستخدم علامة المساواة "=" وقيمة الصفة الجديدة
*التعليق: عند وجود قيمة جديدة للصفة كنص (مثل: document.format.mail.value="[email protected]") يجب استخدام الأسهم المزدوجة لضمانها.
إذا كنا نريد استخدامها كقيمة متغير، فلا نحتاج إلى استخدام الأسهم المزدوجة "". على سبيل المثال، إذا كنا نريد تعيين قيمة المتغير b إلى المتغير a، يمكننا إدخال javascript:alert(a=b).

لكن، معظم العناصر في الصفحة ليست لها أسماء، مثل:

<form action="send.php" method="post"> 
<input type="hidden" name="mail" value="[email protected]"> 
<input type="text" name="name"> 
<input type="submit" value="submit"></form> 

 في هذا الكود لا يوجد اسم للنموذج، باستخدام هذه المعلومات يمكن استخدام الأمر التالي:
javascript:alert(document. .mail.value="[email protected]")  
 في هذه الحالة يجب علينا حساب العدد والبحث عن رقم النموذج، إليك مثال:

<form action="send.php" method="post"> 
<input type="text" name="name"> 
<input type="submit" value="submit"> 
</form> 
<form action="send.php" method="post"> 
<input type="hidden" name="mail" value="[email protected]"> 
<input type="text" name="name"> 
<input type="submit" value="submit"> 
</form> 
<form action="send.php" method="post"> 
<input type="text" name="name"> 
<input type="submit" value="submit"> 
</form> 

  في الكود السابق نرى 3 نماذج، لكننا مهتمون فقط بالنموذج الثاني، لذا يجب أن يكون الرقم الذي نريده هو 2. لا تنسى أننا نبدأ من الرقم 1، مثل 1،2،3،4... لكن الجافاسكربت يبدأ من 0، مثل 0،1،2،3... لذا يجب أن يكون الرقم الفعلي للنموذج هو 1، وليس 2، عادة ما نقوم بإزالة الرقم من الرقم الذي نجد، وسنستخدم هذا الرقم للكمال الأمر:
javascript:alert(document.forms[1].mail.value="[email protected]")  
بهذا يمكنك تغيير الصور أو الروابط غير المسمى، يمكنك تغيير "forms" إلى أي نوع من العلامات التي تريدها. بالنسبة للصور
javascript:alert(document.images[3].src="#رابط الصورة التي تريد#")  
 بالنسبة للروابط
javascript:alert(document.links[0].href="#الرابط الذي تريد#")  
 في النهاية، يمكننا استخدام هذه الخدعة لتحرير الكوكي. الأوامر التالية مكتوبة من قبل Dr_aMado من triviasecurity.net، ولم أغير الكثير، بل جعلتها تظهر قبل تعديل المستخدم. ما تحتاج إلى القيام به هو نسخها إلى شريط العناوين فقط:

javascript:alert(window.c=function a(n,v,nv){c=document.cookie;c=c.substring(c.indexOf(n)+n.length,c.length);} 
c=c.substring(1,((c.indexOf(";")>-1)?c.indexOf(";"):c.length));nc=unescape(c).replace(v,nv); 
document.cookie=n+"="+escape(nc);return unescape(document.cookie);}); 
alert('الكookie هو: "'+document.cookie+'"');alert(c(prompt("اسم الكookie:",""), 
prompt("غير هذه القيمة:",""),prompt("مع هذه:",""))) 

// إذا كنت ترغب في تعديل الكookie يدويًا، يمكنك استخدام الأمر التالي: 
javascript:alert(document.cookie)  
 سيظهر لك هذا الكookie الحالي، افترض أن يكون "userid=1"، إذا كنت ترغب في تغييره إلى "userid=2"، يمكنك استخدام الأمر التالي:
javascript:alert(document.cookie="userid=2")  
 أخيرًا، يجب أن أؤكد أن جميع التغييرات كانت فقط على المستوى الت客户端! كما لو أنك قمت بحفظ صفحة الويب على جهاز الكمبيوتر الخاص بك ثم تعديلها. ومع ذلك، باستخدام هذه التقنية، يمكنك خداع الصفحة (مثل cookies) أو تجاوز التحقق الأمني. على سبيل المثال، قد يكتشف بعض الصفحات موقع إرسال البيانات من قبل المستخدم، إذا تم إرسال البيانات من http://www.test.com/form.php إلى http://www.test.com/check.php، قد يكتشف check.php ما إذا كانت البيانات تأتي من النموذج على http://www.test.com/form.php. بالإضافة إلى ذلك، إذا كنت تخطط لوضع كود JavaScript الخاص بك في الصفحة، من خلال استخدام هذه التقنيات، يمكنك تغيير الصور وتحافظ عليها!

هذا هو كل محتوى المقالة، آمل أن يكون مفيدًا لتعلمكم، وأتمنى أن تدعموا أيضًا دليل النهوض.

أعجبك ذلك