الصفحة الرئيسية مواضيع ومقالات أمن تطبيقات الويب التلاعب بالمواقع عن طريق hidden fields
التلاعب بالمواقع عن طريق hidden fields
تقييم المستخدمين: / 25
عاديممتاز 
الكاتب محمد الدهيمي   
السبت, 12 فبراير 2011 15:24

التلاعب بمدخلات المستخدم والمعلومات المرسلة للويب سيرفر عن طريق تخطي عملية التحقق التي تتم في المتصفح والتعديل على الحقول المخفية بإستخدام إضافة Tamper Data.

 

لغة HTML تستخدم في تصميم الشكل الخارجي للمواقع الإلكترونية وهي تعرف بأنها لغة وصفيه, فهي تصف الصفحة وتحدد محتوياتها كالصور والفيديو وحقول التسجيل و الأزرار , وأيضاً توفر إمكانيات للمصمم أو المبرمج أن يضع حقولاً لكي يملئها الزائر بإسمه أو بريده الإلكتروني أو رقم جواله , ماذا لو استطاع الزائر أو المخرب أن يتلاعب بهذه المدخلات؟

لن يستطيع المخرب أن يتلاعب في هذه المدخلات إذا كانت هناك عملية تحقق من المدخلات , من ناحية طول أو نوع المدخل, على سبيل المثال عندما يقوم الزائر بإدخال حروفاً في خانة رقم الجوال ستظهر له رسالة خطأ ! , بإن المدخل يجب أن يكون أرقاماً فقط .
إذن لكي يتلاعب المخرب في المدخلات ويدخل رموز غريبة أو شفرات برمجية يجب عليه أن يتخطى عملية التحقق وعندها يستطيع أن يتلاعب بالمدخلات كما شاء وقد يستطيع أن يتخطى الصلاحيات و ويصبح مديراً للموقع , أنظر للشفرة البرمجية التالية:

 

<script>
function updateM(){
if(document.getElementById("m").value.length<10){
alert("الرجاء إدخل رقم الجوال والمكون من عشر خانات");
}
else{
document.updateMobile.submit();
}
}
</script>

<form action="updateMobile.php" method="post" name="updateMobile">
<p align="center">تعديل رقم جوال المستخدم
<input type="text" name="m" id="m" size="20" value="0555555555">
<input type=button value="تعديل" name="mobile" id="mobile" onclick="updateM();">
</p>
<input type=hidden name="id_user" value='1234'>
</form>

 

كما تشاهد في الشفرة البرمجية السابقة, فهي تحتوي على شفرة جافا سكربت والتي تتحقق من أن رقم الجوال يجب أن لا يكون أقل من عشر خانات ثم الشفرة البرمجية الخاصة بالـ HTML والتي تظهر في المتصفح بالشكل التالي :

 

Hidden filds 1

وعند تعديل رقم الجوال ووضع أي رقم أقل من عشر خانات ستظهر هذه رسالة تخبر المستخدم بوجود خطأ. سبب ذلك أن الجافا سكربت منعت المستخدم من إدخال رقم أقل من عشر خانات, يأتي دور الآن التلاعب بهذا المدخل!

ماذا لو استطاع المهاجم الوقف بين المتصفح والخادم server? عزيزي المبرمج , يستطيع المخرب أن يقف بين المتصفح وبين الخادم والتلاعب في البيانات المرسلة , ويتم ذلك إما باستخدام أدوات جاهزة أو ببرمجة أداوات خاصة من قبل أصاحب الخبرة في مجال أمن المعلومات .
إذن ما سأقوم به أنني سأرسل إلى الخادم رقم الجوال الصحيح والمكون من عشر خانات لكي أتخطى الجافا سكربت وبعدها سأقوم بتلاعب بالمدخل ,, أنظر للشكل التالي:

Hidden filds 2


المثال السابق ما هو إلا تقريب لعملية التخطي والتلاعب بالحقول , حيث أنه عندما يقوم الزائر بكتابة رقم الجوال ومن ثم إرساله إلى المتصفح و يتأكد المتصفح من المدخل لا يقل عن عشر خانات, ومن ثم سيرسل الطلب إلى الخادم , ويأتي هنا دور الأداة المستخدمة للتعديل على المدخلات ومن ثم جعلها تكمل مسيرها للخادم .

أخيرًا , سنقوم بتطبيق مثال واقعي وسأوضح كيفية التعديل على الحقول المخفية وهي لب الموضوع , أولاً فائدة الحقول المخفية (hidden field) هي عملية نقل معلومات من صفحة إلى صفحة دون أن يشاهدها المستخدم لغرض التحقق من هوية المستخدم أو التعامل مع أنظمة خارجية مثلاً ,عندما تدخل على موقع يبيع أجهزة الإلكترونية وبعد الطلب وتعبئة بيانات الشحن طلب منك تأكيد طلب وهي الخطو النهائية , وبعد تأكيد الطلب سيقوم النظام بالاتصال مع نظام خارجي لنفرض أنه شركة فيزا (visa) لأخذ المبلغ المطلوب ! ماذا لو أنك استطعت أن تقف بين المتصفح والخادم في آخر خطوة (تأكيد الطلب) بلا شك أنك تستطيع أن تشتري كل منتجات الشركة بدون ما تدفع إلا ريال واحد ! لان القيمة الاجمالية للمشترياتك تم إرسالها في حقل مخفي إلى موقع شركة فيزا .
سأستخدم أداة (Tamper) للتلاعب بالحقول المخفية , الهدف من استخدام الأداة تعديل رقم الجوال الخاص بمدير الموقع:


قبل الضغط على زر تعديل , سأقوم بتشغيل الأداة Tamper:

Hidden filds 4


الآن سأضغط على زر (Start Tamper) للبدأ في عملية التلاعب , وبعدها سأضغط على زر تعديل وستظهر لي النتيجة كالتالي :

Hidden filds 5

كما تشاهد عزيزي القارئ أن الأداة وقفت بين المتصفح وبين الخادم وأعطتنا الإمكانية للتعديل على الحقول المخفية والغير مخفية كذلك , فالآن تستطيع أن تقوم بتعديل رقم التسجيل الخاص بك وتكتب بداله رقم مدير الموقع وعندها تستطيع أن تتلاعب بالموقع كما تشاء .. أنظر بعد تعديل رقم المستخدم إلى 87654 ستقوم الصفحة المستخدم بتحديث رقم الجوال للمستخدم رقم 87654 بدلاً من 1234 كما في الصورة التالية.

Hidden filds 6

 

الخلاصة:

عن طريق التلاعب الحقول المخفية تستطيع أن تتخطئ صلاحيات الموقع , وكذلك تعديل وحذف بيانات لست مخولاً لها, وأيضاً إمكانية إطلاعك على بيانات سرية , وأخيرًا تخطي الجافا سكربت بكل سهولة.

 

عن الكاتب:


محمد الدهيمي, أعمل حاليا كمطور في مؤسسة التأمينات الاجتماعية. مهتم في مجال أمن المعلومات وإكتشاف ثغرات تطبيقات الويب.

التعليقات (16)Add Comment
lnxg33k
...
أرسلت بواسطة: أحمد العنترى في February 12, 2011
شرح جميل اخى محمد
اضافة tamper data احد الاضافات الهامه فى عميلة اختبار الاختراق
ممكن التلاعب بالحقول المخفيه ايضا من خلال اضافة ال firebug وسيكون التعديل مباشر من خلال الصفحه نفسها
لتحميل ال tamper data :
https://addons.mozilla.org/en-us/firefox/addon/tamper-data/eula/79565?src=addondetail
لتحميل ال firebug :
https://addons.mozilla.org/firefox/downloads/latest/247486/addon-247486-latest.xpi?src=search
أحمد رمضان
...
أرسلت بواسطة: أحمد رمضان في February 12, 2011
أداة جميله , واسهل من الفيربج
وهذا يجب ان ينبه مطوري المواقع إلى أن التحقق من السرفر أفضل بكثير
أنا شخصيًا افضل التحقق بالطريقتين معًا , فمن المتصفح لإحتصار الوقت وراحه الزائر
ومن السرفر للحمايه والتأكد من صحة البيانات .
(أعتقد أن هذا الموضوع سيفيد المطورين http://goo.gl/leE9c)
شكرًا :)
lnxg33k
...
أرسلت بواسطة: أحمد العنترى في February 12, 2011
مثال لاستخدام ال firebug على نفس الصفحه :
http://img717.imageshack.us/img717/5423/firebugaq.png
عبدالمهيمن الآغا
...
أرسلت بواسطة: عبدالمهيمن الآغا في February 12, 2011
التحقق من مدخلات المستخدم يجب دائماً أن يتم من طرف السيرفر. الجافاسكريبت أو أي طريقة تحقق أخرى تتم من طرف العميل تستخدم لتسهيل إستخدام الموقع وتخفيف الحمل على السيرفر.

نفس الشيء ينطبق على تطبيقات الفلاش التي تتعامل مع بيانات المستخدم, عدم قدرة المستخدم على ادخال أحرف مكان الأرقام مثلاً لا يعني أنه لا يستطيع محاكاة الطلب بشكل مستقل عن ملف الفلاش وإرساله للسيرفر.

شكراً على الشرح أخ محمد وعلى الإضافات يا أحمد*2 باشا ;)
Crypto seven
موضوع في القمة
أرسلت بواسطة: Crypto seven في February 12, 2011
مشكور على الشرح اخي محمد موضوع جيد جدا انا ايضا افضل المتصفح
M.B.O
...
أرسلت بواسطة: M.B.O في February 12, 2011
مقالة جميلة ,, هذه الهجمات تعرف بـ form spoofing
خداع النموذج او النموذج المزيف
في الحقيقة هذا النوع من الهجوم اصبح قليل جدا ًحتى المبرمجين المتوسطين
باتو ينتبهو لمثل هذه الامور ,, لكن بعض المواقع للاسف تستخدم الجافا للتحقق من النموذج
يمكن ايضا ً استغلال هذه النقطة في اكتشاف ثغرات Sql Injection

منذ قليل اكتشفت ثغرة في موقع عربي كبير ,,
عبارة عن مركز رفع للملفات يتحقق من الملفات عن طريق الجافا سكربت
فتخيل مثل هذا الخطأ ماذا يمكن ان يحدث با الموقع
اي شخص يستطيع رفع اي ملف على السيرفر ,,
مثل هذه الاخطاء احيانا ًتكلف الكثير
محمد الدهيمي
أشكر للجميع المشاركة والتفاعل
أرسلت بواسطة: محمد الدهيمي في February 12, 2011
بسم الله ,,
أشكر للجميع المشاركة والتفاعل وأشكر كل من وضع روابط مفيدة ..
M.B.O جزء من هذه الثغرة form spoofing وليست form spoofing بآلية عملها إن صح التعبير , هذه الثغرة تم تصنيفها من قبل SANS على أنها من أخطر الثغرات , وهي حديثة كما اعرف , و تم شرحها في شركة F5 للحلول الأمنية في ألمانيا قبل شهرين وعلى أنها من أخطر الثغرات .. الثغرة تتخطى حماية بعض المواقع الكبيرة والمعروفة سواء عربية أو غيرها ..
form spoofing ترسل أنت ما تريد , أما التلاعب بالحقول المخفية , الموقع يرسل ما يريد ولكن أنت تقف وتعدل ومن ثم ترسل .. وهناك فرق يظهر لي والله أعلم .. فقد أكون مخطأ .. تحياتي لكم ..
ابوفهد
جزيل الشكر ..
أرسلت بواسطة: ابوفهد في February 12, 2011
شكراً جزيلاً اخي : محمد الدهيمي

ارى خطورة هذه الثغرة .. اذا كانت في مركز تحميل ، اذا كان يتحقق من صيغة الملف عن طريق الجافا سكربت ....... هنا يستطيع المهاجم التلاعب ورفع phpshell

إحترامي لـ الجميع .
Own3r
موضوعك خطير اخي محمد
أرسلت بواسطة: Own3r في February 13, 2011
شكرا لك اخي على موضوعك الرائع
ومن وجهة نظري المتواضعه انه لضمان الحماية ان يكون التحقق من المدخلات من قبل الجافاسكربت ومن قبل السيرفر معا
ولكن توجد مواقع كما تفضلت والتي مثلا تتعامل مع موقع الفيزا فلا يستطيع سيرفر الفيزا التحقق من البيانات المرسله وعندها تصبح الثغره خطيرة جدا

شكرا لك اخي
عبد المجيد السبيعي
ممكن
أرسلت بواسطة: عبد المجيد السبيعي في February 13, 2011
بصراحه اتوقع المبرمجين المبتدئين يعتمدون عليها وحتى في بعض الاحيان ما يقومون بتأمين المدخلات في الحقول المخفيه
فيمكن التلاعب بها
خالد عمر
...
أرسلت بواسطة: خالد عمر في February 14, 2011
شكرا لك اخى الكريم على الموضوع الرائع
فعلا هو شئ خطير جدا ان يقوم الموقع بالتحقق من هذه المعلومات عن طرف الصفحه المتصفحه وليس السيرفر .
و هذه الطريقه تستخدم فى الكثير من الهجمات مثل مواقع الرفع ممكن ان ترفع شيل ضار و مواقع العملاء ( المبتدئه طبعا ;) ) مثلا يمكنك من التلاعب ببيانات العمال مثلا كما فى شرحك و الاخطر فى صفحات استعاده كلمات المرور .
و هذه مثال لهذه الهجمات :)

* اظهار بيانات عميل اخر | http://i56.tinypic.com/2469nye.jpg

شكرا
خالد عمر
...
أرسلت بواسطة: خالد عمر في February 14, 2011
و هناك الكثير من الادوات اخطر من Tamper Data
* FireBug
* Web Development Tool Bar
* Live Http Header
* BurpSuite خطيره و متعدده الاستخدامات
* WebScreb اخطر و متعدده الاستخدامات
شكرا
نجيب
السلام عليكم
أرسلت بواسطة: نجيب في February 14, 2011
بارك الله فيه أخي ، فعلا هذه الطريقة كلفت العديد من الشركات ملايين الدولارات
و كما قلت يمكن شراء أشياء كثيرة بدولار واحد
لكن سؤال أخي ان كان عندك علم بأي طريقة نعتبرها كترقيع لهذه الطريقة
لاني لا اعتقد ان خبراء الحماية بقو مكتوفي الأيدي امامها ، و شكرا لك
mr.salanga7
...
أرسلت بواسطة: mr.salanga7 في February 15, 2011
بصراحه فكرة جدا رائعه وخاصه انك راح تحط وسيط بينك وبين السيرفر وزي ما قال اخوي تكلف الشركات الملايين من الخسائر

اشكرك على المجهود الرائع
Dr.NaNo
.isecur1ty
أرسلت بواسطة: Dr.NaNo في February 15, 2011
شكرأ لك اخي محمد موضوع رائع ويستحق التقيم.




بالتوفيق.
Dr.NaNo
Riyadh Mohammed
جزيل الشكر والتقدير
أرسلت بواسطة: Riyadh Mohammed في August 25, 2011
جزيل الشكر والتقدير على موضوعك الجميل جداً . . . استفدت منه بصراحة

أضف تعليق
يجب عليك الاشتراك بالموقع لتتمكن من كتابة التعليقات, الاشتراك مجاني ويستغرق بضع ثوان فقط!
اذا كنت مشترك مسبقا في الموقع فضلاً قم بتسجيل الدخول.

busy
 

SecurityTargets