مقال : التلاعب بالمواقع عن طريق hidden fields
التلاعب بمدخلات المستخدم والمعلومات المرسلة للويب سيرفر عن طريق تخطي عملية التحقق التي تتم في المتصفح والتعديل على الحقول المخفية بإستخدام إضافة 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 والتي تظهر في المتصفح بالشكل التالي :
وعند تعديل رقم الجوال ووضع أي رقم أقل من عشر خانات ستظهر هذه رسالة تخبر المستخدم بوجود خطأ. سبب ذلك أن الجافا سكربت منعت المستخدم من إدخال رقم أقل من عشر خانات, يأتي دور الآن التلاعب بهذا المدخل!
ماذا لو استطاع المهاجم الوقف بين المتصفح والخادم server? عزيزي المبرمج , يستطيع المخرب أن يقف بين المتصفح وبين الخادم والتلاعب في البيانات المرسلة , ويتم ذلك إما باستخدام أدوات جاهزة أو ببرمجة أداوات خاصة من قبل أصاحب الخبرة في مجال أمن المعلومات .
إذن ما سأقوم به أنني سأرسل إلى الخادم رقم الجوال الصحيح والمكون من عشر خانات لكي أتخطى الجافا سكربت وبعدها سأقوم بتلاعب بالمدخل ,, أنظر للشكل التالي:
المثال السابق ما هو إلا تقريب لعملية التخطي والتلاعب بالحقول , حيث أنه عندما يقوم الزائر بكتابة رقم الجوال ومن ثم إرساله إلى المتصفح و يتأكد المتصفح من المدخل لا يقل عن عشر خانات, ومن ثم سيرسل الطلب إلى الخادم , ويأتي هنا دور الأداة المستخدمة للتعديل على المدخلات ومن ثم جعلها تكمل مسيرها للخادم .
أخيرًا , سنقوم بتطبيق مثال واقعي وسأوضح كيفية التعديل على الحقول المخفية وهي لب الموضوع , أولاً فائدة الحقول المخفية (hidden field) هي عملية نقل معلومات من صفحة إلى صفحة دون أن يشاهدها المستخدم لغرض التحقق من هوية المستخدم أو التعامل مع أنظمة خارجية مثلاً ,عندما تدخل على موقع يبيع أجهزة الإلكترونية وبعد الطلب وتعبئة بيانات الشحن طلب منك تأكيد طلب وهي الخطو النهائية , وبعد تأكيد الطلب سيقوم النظام بالاتصال مع نظام خارجي لنفرض أنه شركة فيزا (visa) لأخذ المبلغ المطلوب ! ماذا لو أنك استطعت أن تقف بين المتصفح والخادم في آخر خطوة (تأكيد الطلب) بلا شك أنك تستطيع أن تشتري كل منتجات الشركة بدون ما تدفع إلا ريال واحد ! لان القيمة الاجمالية للمشترياتك تم إرسالها في حقل مخفي إلى موقع شركة فيزا .
سأستخدم أداة (Tamper) للتلاعب بالحقول المخفية , الهدف من استخدام الأداة تعديل رقم الجوال الخاص بمدير الموقع:
قبل الضغط على زر تعديل , سأقوم بتشغيل الأداة Tamper:
الآن سأضغط على زر (Start Tamper) للبدأ في عملية التلاعب , وبعدها سأضغط على زر تعديل وستظهر لي النتيجة كالتالي :
كما تشاهد عزيزي القارئ أن الأداة وقفت بين المتصفح وبين الخادم وأعطتنا الإمكانية للتعديل على الحقول المخفية والغير مخفية كذلك , فالآن تستطيع أن تقوم بتعديل رقم التسجيل الخاص بك وتكتب بداله رقم مدير الموقع وعندها تستطيع أن تتلاعب بالموقع كما تشاء .. أنظر بعد تعديل رقم المستخدم إلى 87654 ستقوم الصفحة المستخدم بتحديث رقم الجوال للمستخدم رقم 87654 بدلاً من 1234 كما في الصورة التالية.
الخلاصة:
عن طريق التلاعب الحقول المخفية تستطيع أن تتخطئ صلاحيات الموقع , وكذلك تعديل وحذف بيانات لست مخولاً لها, وأيضاً إمكانية إطلاعك على بيانات سرية , وأخيرًا تخطي الجافا سكربت بكل سهولة.
عن الكاتب:
محمد الدهيمي, أعمل حاليا كمطور في مؤسسة التأمينات الاجتماعية. مهتم في مجال أمن المعلومات وإكتشاف ثغرات تطبيقات الويب.
مقالة جميلة ,, هذه الهجمات تعرف بـ form spoofing
خداع النموذج او النموذج المزيف
في الحقيقة هذا النوع من الهجوم اصبح قليل جدا ًحتى المبرمجين المتوسطين
باتو ينتبهو لمثل هذه الامور ,, لكن بعض المواقع للاسف تستخدم الجافا للتحقق من النموذج
يمكن ايضا ً استغلال هذه النقطة في اكتشاف ثغرات Sql Injection
منذ قليل اكتشفت ثغرة في موقع عربي كبير ,,
عبارة عن مركز رفع للملفات يتحقق من الملفات عن طريق الجافا سكربت
فتخيل مثل هذا الخطأ ماذا يمكن ان يحدث با الموقع
اي شخص يستطيع رفع اي ملف على السيرفر ,,
مثل هذه الاخطاء احيانا ًتكلف الكثير
بسم الله ,,
أشكر للجميع المشاركة والتفاعل وأشكر كل من وضع روابط مفيدة ..
M.B.O جزء من هذه الثغرة form spoofing وليست form spoofing بآلية عملها إن صح التعبير , هذه الثغرة تم تصنيفها من قبل SANS على أنها من أخطر الثغرات , وهي حديثة كما اعرف , و تم شرحها في شركة F5 للحلول الأمنية في ألمانيا قبل شهرين وعلى أنها من أخطر الثغرات .. الثغرة تتخطى حماية بعض المواقع الكبيرة والمعروفة سواء عربية أو غيرها ..
form spoofing ترسل أنت ما تريد , أما التلاعب بالحقول المخفية , الموقع يرسل ما يريد ولكن أنت تقف وتعدل ومن ثم ترسل .. وهناك فرق يظهر لي والله أعلم .. فقد أكون مخطأ .. تحياتي لكم ..
شكراً جزيلاً اخي : محمد الدهيمي
ارى خطورة هذه الثغرة .. اذا كانت في مركز تحميل ، اذا كان يتحقق من صيغة الملف عن طريق الجافا سكربت ……. هنا يستطيع المهاجم التلاعب ورفع phpshell
إحترامي لـ الجميع .
شرح جميل اخى محمد
اضافة 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
أداة جميله , واسهل من الفيربج
وهذا يجب ان ينبه مطوري المواقع إلى أن التحقق من السرفر أفضل بكثير
أنا شخصيًا افضل التحقق بالطريقتين معًا , فمن المتصفح لإحتصار الوقت وراحه الزائر
ومن السرفر للحمايه والتأكد من صحة البيانات .
(أعتقد أن هذا الموضوع سيفيد المطورين http://goo.gl/leE9c)
شكرًا 🙂
مثال لاستخدام ال firebug على نفس الصفحه :
http://img717.imageshack.us/img717/5423/firebugaq.png
التحقق من مدخلات المستخدم يجب دائماً أن يتم من طرف السيرفر. الجافاسكريبت أو أي طريقة تحقق أخرى تتم من طرف العميل تستخدم لتسهيل إستخدام الموقع وتخفيف الحمل على السيرفر.
نفس الشيء ينطبق على تطبيقات الفلاش التي تتعامل مع بيانات المستخدم, عدم قدرة المستخدم على ادخال أحرف مكان الأرقام مثلاً لا يعني أنه لا يستطيع محاكاة الطلب بشكل مستقل عن ملف الفلاش وإرساله للسيرفر.
شكراً على الشرح أخ محمد وعلى الإضافات يا أحمد*2 باشا 😉
مشكور على الشرح اخي محمد موضوع جيد جدا انا ايضا افضل المتصفح
بصراحه اتوقع المبرمجين المبتدئين يعتمدون عليها وحتى في بعض الاحيان ما يقومون بتأمين المدخلات في الحقول المخفيه
فيمكن التلاعب بها
شكرا لك اخي على موضوعك الرائع
ومن وجهة نظري المتواضعه انه لضمان الحماية ان يكون التحقق من المدخلات من قبل الجافاسكربت ومن قبل السيرفر معا
ولكن توجد مواقع كما تفضلت والتي مثلا تتعامل مع موقع الفيزا فلا يستطيع سيرفر الفيزا التحقق من البيانات المرسله وعندها تصبح الثغره خطيرة جدا
شكرا لك اخي
بارك الله فيه أخي ، فعلا هذه الطريقة كلفت العديد من الشركات ملايين الدولارات
و كما قلت يمكن شراء أشياء كثيرة بدولار واحد
لكن سؤال أخي ان كان عندك علم بأي طريقة نعتبرها كترقيع لهذه الطريقة
لاني لا اعتقد ان خبراء الحماية بقو مكتوفي الأيدي امامها ، و شكرا لك
شكرا لك اخى الكريم على الموضوع الرائع
فعلا هو شئ خطير جدا ان يقوم الموقع بالتحقق من هذه المعلومات عن طرف الصفحه المتصفحه وليس السيرفر .
و هذه الطريقه تستخدم فى الكثير من الهجمات مثل مواقع الرفع ممكن ان ترفع شيل ضار و مواقع العملاء ( المبتدئه طبعا 😉 ) مثلا يمكنك من التلاعب ببيانات العمال مثلا كما فى شرحك و الاخطر فى صفحات استعاده كلمات المرور .
و هذه مثال لهذه الهجمات 🙂
* اظهار بيانات عميل اخر | http://i56.tinypic.com/2469nye.jpg
شكرا
و هناك الكثير من الادوات اخطر من Tamper Data
* FireBug
* Web Development Tool Bar
* Live Http Header
* BurpSuite خطيره و متعدده الاستخدامات
* WebScreb اخطر و متعدده الاستخدامات
شكرا
بصراحه فكرة جدا رائعه وخاصه انك راح تحط وسيط بينك وبين السيرفر وزي ما قال اخوي تكلف الشركات الملايين من الخسائر
اشكرك على المجهود الرائع
شكرأ لك اخي محمد موضوع رائع ويستحق التقيم.
بالتوفيق.
Dr.NaNo
جزيل الشكر والتقدير على موضوعك الجميل جداً . . . استفدت منه بصراحة