هاكزون اول منصة عمل مشترك لأمن المعلومات في مصر
هاكزون هي مبادرة رائعة يقوم بالعمل عليها اصدقائناً في موقع Hacking15 تستحق كل التقدير و الدعم
هاكزون هي اول منصة عمل مشترك لأمن المعلومات في مصر حيث ستوفر كل ما يحتاجه العاملين بمجال امن المعلومات من متطلبات لإنجاز اعمالهم بسهولة و ابداع حيث ستوفر 6 اماكن او قاعات مختلفة لإنجاز الأعمال كما هو موضح بالصورة التالية :
١) المختبر التقني:
هو المكان الذي سوف يساعد الباحثين الأمنين و مختبري الإختراق على انشاء معمل التدريب الخاص بهم حيث ستوفر لهم الأشياء التالية:
- اثنان من اجهزة raspberry pi
- اثنان من الخوادم
- Rack
- حاسوب محمول او مكتبي حسب الرغبة
- شبكة DMZ خاصة
- شاشتين عرض
٢) منطقة الدراسة:
هو المكان الخاص بالتعلم و القاء المحاضرات في امن المعلومات . المكان سوف يكون متاح حسب الطلب لأي شخص يريد تقديم محاضرات او دروس في مجال امن المعلومات حيث سيكون المكان مجهز بالأشياء التالية :
- شاشة عرض كبيرة (Projector)
- سبورة بيضاء
- 12 مقعد للحاضرين
٣) قاعة المعرفة
نستطيع ان نقول عليها المكتبة بشكلها المألوف , حيث ستوفر كتب كثيرة في مجالات عديدة مثل امن المعلومات , التقنية , ريادة الأعمال و تتيح للزوار قرائة الكتب و الأطلاع عليها و تتيح ايضاً للأعضاء استعارة هذة الكتب .
4) قاعة الأبداع
قاعة الأبداع, حيث ستوفر بيئة عمل مناسبة لرواد الأعمال في طرح الأفكار و مناقشتها , حيث سيكون المكان مجهز بـ 6 مقاعد
5) منطقة الأنتاج
هو المكان الخاص بالعمل على المشاريع البرمجية و تطويرها , حيث ستوفر بيئة عمل هادئة و مريحة للمبرمجين الذين يرغبون في العمل على برمجة المشاريع في امن المعلومات و تستطيع ان توفر مكتب خاص لكل شخص او مكتب مشترك .
6) منطقة المعارض
اخيراً هو منطقة المعارض الذي سوف تتيح لروادي الأعمال عرض منتجاتهم و اعمالهم و تسويقها للجميع , ايضاً سيكون المكان المناسب لعمل الندوات و مشاركة الأفكار .
هاكزون مازلت فكرة تحت الأنشاء و تحتاج إلى الكثير من الدعم .
لذلك اذا كان لديك القدرة على دعم الفكرة فتستيطع المشاركة في حملة التبرع الجماعي للمشروع و دفع مبلغ بسيط 20$ او 150 جنية . و ان لم يكن في قدرتك التبرع الأن فساعد على نشر الفكرة و اخبر بها اصدقائك المهتمين فهي فعلا تستحق كل التقدير و الدعم .
للتبرع و مزيد من المعلومات من فضلك راجع الرابط التالي :
https://www.zoomaal.com/projects/hackzone
تعرّف على نادي امن المعلومات بجامعة الاميرة سميّة للتكنولوجيا
قامت جامعة الأميرة سميّة قبل أربعة سنوات بطرح برنامج لدراسة الماجستير في تخصص أمن المعلومات والجرائم الإلكترونية. ونظراً لأهميّة هذا المجال في وقتنا هذا، ورغبةً من الطُلاب بتطويره على مستوى الجامعة وخارجها، قام مجموعة من الطُلاب بإنشاء نادي جامعي علمي بعنوان “نادي أمن المعلومات”.
أسّس النادي في نهاية شهر نوفمر 2014 ويرأسه حالياً الطالب محمد زكريا، وينوب عنه شريكه المؤسس محمد الجولاني، هذا وقد إنطلق النادي وبكل فخر تحت إشراف الدكتور علي الشمري.
أعضاء النادي هم من طُلاب الماجستير تخصص أمن المعلومات والجرائم الإلكترونية في الجامعة، وكذلك طلاب البكلوريوس المهتمين في هذا المجال. كما ويجري دراسة إمكانية الإنتساب للنادي من المهتمين سواء طلاب أو باحثين من خارج الجامعة.
يهدف النادي إلى تكوين مجتمع (Community) لجميع المهتمّين في هذا المجال ودعمهم، من خلال تقديم الشروحات اللازمة، الكتب، المحاضرات الإضافية، ورشات العمل، جلسات حوارية، الدورات والعديد من النشاطات الأخرى. كما يطمح النادي بأن يكونَ مرجعاً أساسياً للطلاب في الجامعة في مجال أمن المعلومات، وأن يكون أيضاً مرجعاً أساسياً
للمهتمين في هذا المجال من خارج الجامعة.
بدأ النادي أُولى نشاطاته مع بداية شهر ديسمبر الحالي بإقامة ورشة عمل عن مقدمة لإستخدام لغة “بايثون” (للمبتدئين في اللغة) وذلك لأن النادي يهدف الى إقامة ورشة عمل قريباً تكون متقدمة أكثر وتهتم بجانب إستخدام لغة البرمجة بايثون في أمن المعلومات. ورشة العمل وبفضل من الله، حازت على إهتمام جميع أعضاء النادي وكذلك زوار من خارج الجامعة. لمعرفة المزيد من التفاصيل عن الورشة السابقة، وما تم تقديمه فيها، بالإضافة الى جميع الأكواد البرمجية التي كتبت يمكن مراجعة روابط التواصل الإجتماعي للنادي.
لمتابعة النادي على مواقع التواصل الاجتماعي أو إرسال أي إقتراحات أو إستفسارات هنا عناوين النادي على توتير و فيسبوك
ملاحظة: كاتب هذا المقال هو محمد زكريا – رئيس نادي أمن المعلومات.
شرح تحدي تخطي ال Basic Authentication للمجلدات المحمية بـ htaccess
السلام عليكم ورحمة الله وبركاتة
كنت مشاركا في الفريق المنظم لمسابقة CTF(Capture The Flag) في مؤتمر Cairo Security Camp لهذا العام
وقمت بمشاركة التحدي Online حتي يتمكن الجميع من المشاركة .. واليوم هنا ان شاء الله سأقوم بشرح التحدي وطريقة الحل.
فكرة المسابقة[فكرة خيالية]:
وكالة المخابرات الروسية أعلنت عن مسابقة لتوظيف الهكرز للعمل لديها
فقامت بعمل موقع إلكتروني وطلبت من الهكرز تخطي ال Basic Authentication الخاصة بلوحة تحكم الموقع .. اذا إستطعت ان تجد لوحة التحكم وتتخطي ال Basic Authentication فستقابلك لوحة تحكم اخري مصرح بدخولها فقط لمن هم في الشبكة الداخلية للوكالة ولا يسمح لمن هم خارج الوكالة بالدخول إلي لوحة التحكم هذه.
فكيف ستتخطي كل هذه الحواجز إلي أن تصل إلي الشفرة المطلوبة؟
المطلوب بالترتيب:
١- أوجد مسار لوحة تحكم مدير الموقع (لن ينفعك التخمين)
٢- قم بتخطي ال basic authentication الموجوده عليها
٣- اذا استطعت عبور الاولي فستجد لوحة تحكم اخري وعليها أيضا basic authentication وغير مصرح بدخولها إلا لمن هم علي نفس الشبكة الداخلية للوكالة .. اذا إستطعت تخطيها فستحصل مباشرة علي الKey
نبدأ بالحل ..
عند دخولك الي صفحة التحدي ستجد شكل الصفحه كالآتي:
الآن سنستخدم ال Exif لتحليل الصورة المدرجة داخل الموقع لنري ما هي البيانات التي تحتويها هذه الصورة؟
EXIF
. وهو اختصار لــ Exchangeable Image File حيث يمكننا من قراءة ال Metadata والبيانات الاخري التي تحتويها الصور مثل متي وأين وكيف إلتقطت الصورة وبيانات اخري.
هناك موقع يسمح لك بعمل ذلك بدون تنزيل أي أدوات .. علي الرابط التالي:
https://regex.info/exif.cgi
الآن ننسخ رابط الصورة ونضعه بالموقع المذكور وسنجد البيانات التالية:
هل تري؟ داخل ال “User Comment:” يوجد كود طويل مشفر بال Hex لنحاول أن نفك هذا الكود .. وهذا كان ال string الذي خرج لنا عند محاولة فك الكود:
Spasiba moy drog, Kake bofera 😀 check below dir s3cr3tDIR/
اذا لوحة التحكم هي علي الرابط التالي كما هو واضح بالأعلي:
s3cr3tDIR/
عند محاولة الدخول إلي تلك اللوحة ظهرت لنا Basic Authentication تطلب منا إدخال username & password .. فكيف يمكننا تخطيها؟
حسنا .. لنفهم كيف يتم عمل Basic Authentication بال htaccess فتعالو نبحث في جوجل عن كيفية عمل ذلك (المقصد من البحث هو ان تري عدة أمثلة) .. وقد وجدنا الكود التالي:
AuthUserFile /usr/local/htpasswd/.htpasswd
AuthGroupFile /dev/null
AuthName “Please enter password”
AuthType Basic
< Limit GET POST>
require valid-user
< /Limit>
ما نفهمه من الكود بالأعلي هو ان ملف ال htaccess سيقوم بحماية المجلد في حالة ما اذا قام المستخدم بفتح المجلد من خلال GET or POST request! وهي طريقه غير آمنة في حماية المجلدات لأن المستخدم إستخدم طريقة Limit لتحديد من يطلبون الموقع بواسطة طلبات من نوع GET أو POST
حيث انه اذا قام المستخدم بإرسال طلب للصفحه باي طريقه غير GET or POST فانه سيتخطي هذه الحماية!!
وهي تقنية معروفة بإسم HTTP Verb Tampering
إضغط هنا لتشاهد فيديو يشرح مزيد من المعلومات حولها.. والآن لنكمل.
الآن نقوم بزيارة الصفحة ونقوم بتعديل طريقة طلب الصفحه من GET الي اي شئ .. مثلا LOL:
كما ترون بالأعلي قمت بتعديل طريقة ال Request لتصبح LOL بدلا من GET وخرج لي المحتوي التالي:
ال response تقول بأن الصفحه غير موجودة! 404 Page not found
لكن هل لفت انتباهك ذلك الجزأ الذي في أسفل الصفحة باللون الأخضر وقد تم عمل تعليق(comment) له?
ممتاز .. إذا وصلنا للوحة الأدمن الأخيرة علي المسار التالي: sup3rFlag/ .. وعليها أيضا Basic Authentication! .. ولكن لحظة .. كيف سيمكننا تخطيها في حين أنها مسموح دخولها فقط لمن هم علي نفس الشبكة الداخلية للوكالة؟
كما هو واضح من الوصف المرفق مع التحدي أن لوحة التحكم الأخيرة موجودة علي الشبكة الداخلية للوكالة .. في الوضع الطبيعي إذا كنت تستخدم وندوز وقمت بتطبيق الأمر ipconfig أو علي لينوكس وقمت بتطبيق الأمر ifconfig فسيظهر لك ال IP الخاص بك علي شبكتك المحلية .. ولنفترض أنه 192.168.1.233 إذا فلو أنك علي الشبكة الداخلية للوكالة فإن الآيبي الخاص بلوحة التحكم سيكون داخل نفس النطاق .. يعني
192.168.1.2
رائع .. إذا سنقوم بتطبيق نفس السيناريو هنا علي التحديث اللذي لدينا .. كيف سيمكننا عمل Request لموقع داخل الشبكة الخاصة بموقع الوكالة؟!
الأمر هنا يعتمد علي نوع من الثغرات يسمي Host Header Attack
لن اطيل في الشرح عنه هنا لأني سأكتب عنه موضوع مفصل ان شاء الله .. لكن سأذكر هنا أن من ضمن إستغلالات هذا النوع من الثغرات هو إمكاينة طلب موقع علي الشبكة المحلية/الداخلية للموقع الأصلي
يعني مثلا لو أن الموقع site.com موجود علي سرفر ما .. وال IP الداخلي لهذا الموقع هو 192.168.1.155
وهذا الموقع مصاب بثغرة Host Header Attack فإنني يمكنني طلب الموقع الموجود علي الآيبي 192.168.1.154 لأنه علي نفس شبكة الموقع المصاب.
الطريقة ببساطة هي عمل طلب للموقع Request بأي طريقة سواء GET أو POST مع التعديل في ال Headers بإستبدال خانة ال Host بالآيبي الداخلي الذي نريد الإطلاع عليه, الموضوع يعتمد علي مشكلة في سرفرات ال Apache نفسها.
If Apache receives an unrecognized Host header, it passes it to the first virtual host defined in httpd.conf. As such, it’s possible to pass requests with arbitrary host headers directly to a sizable number of applications
وبهذه الطريقة إستطعنا الحصول علي ال Key الخاص بالتحدي 🙂
The flag is: 607fc5e8ce2abfc66fb55b3914a6b5f1
شكرا لمتابعتكم.
أمن تطبيقات الهواتف المحمولة
شهدت السنوات القليلة الماضية ارتفاع هائل في استخدام الهواتف المحمولة الذكية بل ان عدد ما انتج وبيع ومنها زاد على عدد سكان العالم (1). ولا شك ان هذه الزيادة جعلت هذه الهواتف هدفاً خصباً للصوص الانترنت وحتى الحكومات التي تريد التجسس على مواطنيها أو مواطني دول أخرى. في المقالة السابقة ركزت على أمن الهواتف الذكية بشكل عام. هنا إن شاء الله سأركز على أمن التطبيقات.
هواتفنا اليوم تحمل جميع أسرارنا وهي لا تفارقنا في كل الاوقات على عكس الحاسب الشخصي او المحمول. هذه الهواتف تحمل صورنا ورسائلنا، تعرف من نتصله به ومتى، وتعرف كل الاماكن التي نتردد عليها. قدرات هواتفنا المحمولة هذه زادت كذلك فنراها أصبحت حواسيب مصغرة تحمل العشرات ان لم يكن المئات من البرامج. نحن كمستخدمين نقوم بتحميل هذه البرامج في كثير من الأحيان بدون أن نعرف ما الذي تقوم به هذه البرامج أو ما هي الصلاحيات التي تتطلبها.
تركيزنا هنا سيكون على الهواتف التي تعمل بنظام اندرويد كونه الأكثر انتشارا وكذلك الاكثر عرضة للاصابة بالبرامج الخبيثة التي تسهتدف المستخدم ومعلوماته وذلك لعدّة أسباب منها: نظام أندوريد يسمح بارسال رسائل نصية بدون علم المستخدم، تعدد أسواق البرامج والتي لا يوجد أي نوع من الراقبة في بعضها، سهولة إعادة تغليف البرامج الشرعية ببرمجيات خبيثة ومن ثمّ اعادة طرحها مرّة أخرى، طريقة توزيع النظام من خلال مزويدي الخدمة مع كثرة العتاد مع تأخرّ أو انعدام الدعم الفني وتحديدا التحديثات كلها أمور تجعل من النظام بئية جذابة للصوص الانترنت.
سأحاول في المستقبل إن شاء الله أن أغطي تفاصيل النظام التقنية بالتفصيل ولكن لاختصار الوقت هنا سأركز على الصلاحيات للبرامج. نظام أندوريد والذي اطلقته غوغل يسمح لشركات العتاد بإصدار هواتف تدعم حاجات وقدرات المستخدمين المختلفة. والتسهيلات التي تضعها غوغل على المطورين تجعله بئية ممتازة لهم كون القيود المفروضة عليه أقل من مثيلتها في نظام ويندوز فون وأقل بكثير منها في نظام iOS الذي تصدره شركة آبل والذي يعد ثاني أشهر انظمة الهواتف المحمولة.
فلسفة غوغل تقوم على نظام مفتوح للجميع تنتقل فيه مسؤولية الحماية والأمان للهاتف من غوغل إلى المستخدم، ولهذا فعلى المستخدم مراقبة ما يقوم بتحميله من برامج ومعرفة صلاحيات هذه البرامج.
ما هي صلاحيات البرامج؟
كل برنامج يحتاج إلى صلاحيات حسب وظيفة هذا البرنامج يسهلها له نظام التشغيل. مثلا برنامج سكايب الذي يستخدم في الاتصالات الهاتفية سوف يحتاج الى المايكروفون والى الكاميرا الى غير ذلك من الصلاحيات. في حين ان لعبة ما قد تحتاج الى صلاحيات الوصول الى الانترنت من أجل متابعة أداء اللاعبين ونقاطهم ومراحل تقدمهم فيها. لكن عندما نشاهد مثلا برنامج لحاسبة علمية يحتاج الوصول الى الرسائل النصية،فعندها نحتاج كمستخدمين أن نتسائل لماذا يحتاج مثل هكذا برنامج الى مثل هكذا خدمة. الصورة التالية تظهر أمثلة على بعض البرامج وصلاحياته.
الصورة الأولى للعبة تطلب عدّة صلاحيات منها الموقع ومعرّف الجهاز ومعلومات عن المكالمات بالإضافة الى معلومات أخرى.
الصورة الثانية لبرنامج فيسبوك والذي يطلب صلاحيات تتضمن جهات الاتصال والمايكروفون والكاميرا والرسائل النصية، إلخ.
الصورة الثالثة لبرنامج f-secure والذي يقوم بإعلام المستخدم بالصلاحيات الفعلية التي تستخدمها البرامج المثبتة على هاتفه ولكنه لا يحتاج الى أي صلاحيات على الهاتف.
الهاتف المحمول المخترق وطرق استخدامه
شكل -1- يظهر تشريح لهاتف محمول وكيف يمكن للصوص الاستفادة منه. هذا الشكل هو من تقرير صادر لشركة سوفس وقام مجتمع الحماية بترجمة الشكل للعربية. أي هاتف يجري اختراقه يجري استخدامه طبقا لما يريده المخترق. فلصوص الانترنت هدفهم بالدرجة الاولى مادي وبالتالي سيكون اختراقهم من أجل ارسال رسائل نصية عالية التكلفة (كالرسائل التي ترسل الى برامج شهيرة للتصويت على مشترك ما او التبرع المادي لقضية ما). اما الحكومات فهدفها سيكون بالدرجة الأولى تجسسي لذلك ستحاول التلصص على المكالمات أو تسجيل المحادثات وما إلى ذلك.
كيف يقوم الأشرار باخترق الهواتف المحمولة
هناك عدّة طرق يمكن للاشرار استخدامها لاختراق هواتف الضحايا، أسهلها هو متابعة اشهر البرامج في السوق ومن ثم تحميلها والتعديل عليها لزرع برامج خبيثة فيها ومن ثم طرحها مجددا في السوق الرئيسي او الاسواق الأخرى. في حالة الحكومات أو غيرها من المنظمات الإجرامية يمكن أن يتم عبر انشاء شركات وهمية تقوم باصدار برامج مغرية يقوم المستخدمون العاديون بتحميلها ومن ثم اعطاء صلاحيات لها ولهم على هواتفهم. اما الطرق الأخرى للاختراق فتكون عبر استغلال ثغرة في نظام التشغيل نفسه او في أحد البرامج الشرعية او تحويل المستخدمين الى صفحات ويب وهمية لسرقة صلاحياتهم. شكل -2- يظهر كيف يقوم مطور خبيث بسرقة برنامج شرعي ومن ثم زرع برمجيته فيها ورفعها الى سوق البرامج.

شكل -2- يظهر عملية كيف يقوم الأشرار باستغلال برامج شرعية لزرع برمجياتهم الخبيثة بهدف اختراق هواتف المستخدمين لشركة Lookout
ما العمل
تذكر أن هاتفك هو مستودع أسرارك فلا تسمح لما هب ودب من برامج بالعمل عليه.
راجع صلاحيات كل برنامج قبل ان تقوم بتثبيته على هاتفك.
لو كان برنامجك المفضل يحتاج الى صلاحيات كبيرة فابحث عن بديل له. لا يغرك أن شركة كبيرة تقوم بتطويره. الشركة فيها موظفين والموظفون ليسوا ملائكة فقد تسوّل لبعضهم انفسهم بالتلصص على وبيع معلومات المستخدمين. حصل مثل هذا سابقا ولا يوجد ما يمنع حدوثه اليوم.
قم بتثبيت برامج مثل f-secure في الصورة الثالثة أعلاه أو برنامج Dcentral لمعرفة صلاحيات البرامج على هاتفك. برنامج Dcentral يعطي تقييم لهذه البرامج بناء على نوع الصلاحيات التي تطلبها. الصورة التالية تظهر مثال لعمل برنامج Dcentral
أمن الهواتف الذكيّة
الهواتف النّقالة، ولاسيما الذكيّة منها هي عبارة عن حواسيب محمولة. فهي تسمح لك بالوصول الى الانترنت والى بريدك الالكتروني، كذلك تسمح لك بتحميل التطبيقات والألعاب وتخزن معلوماتك الشخصية، الأشخاص الذين تتصل بهم، صورك وغيرها. لهذا أنت تحتاج الى حماية هاتفك تماماً مثلما تقوم بحماية حاسوبك المنزلي او المحمول. تذكر دائماً أنّ هاتفك الذكي ليس مجرد هاتف لذلك تأكد دائماً من انه معك في كل الأوقات.
تأمين هاتفك
قم بتفعيل خصائص الحماية على هاتفك. جميع الهواتف اليوم تحتوي على خصائص حماية لذلك تعرّف على هذه الخصائص في هاتف وفعّلها.
ضع كلمة مرور أو رقم تعريف (PIN) والذي يجب على مستخدم الهاتف أن يدخله قبل أن يبدأ باستخدام الهاتف. كلمات المرور أو الأرقام التعريفية تجعل من سرقة معلومات الشخصية من هاتفك أمراً أصعب على لصوص الهاتف أو المتلصصين.
حاول تثبيت برنامج لمكافحة الفيروسات والبرمجيات الضارة الاخرى من مرزوّد خدمة موثوق (خصوصاً ان كنت تستخدم انظمة أندرويد).
حدّث نظام التشغيل الذي يستخدمه هاتفك بشكل دوري. ثبّته متى توفر بأسرع وقت لأن هذه التحديثات في العادة تحتوي على تحديثات تساعد على حماية هاتفك. للأسف أندرويد في هذه النقطة متأخر جداً في كثير من الأحيان عن باقي الأنظمة.
اذا قمت بتفعيل خاصية بلوتوث على هاتفك (بلوتوث خاصية تسمح لك بالاتصال لاسلكياً بأدوات أخرى من أجل نقل معلومات أو غيرها من مسافة قصيرة) قم بجعل هاتفك “مختفي” بحيث لا يستطيع أن يراه الأخرون. هذا يعني أن عملية اكتشافه من قبل القراصنة ستكون أصعب إلا اذا كانوا يعرفون عنوانه. حاول أن تستخدم هذه الخاصية في مناطق خاصة أو غير مزدحمة.
عند استخدامك للانترنت عبر شبكة لاسلكية تأكد من أن تكون الشبكة مشفّرة وتكون تثق في مصدرها، سواء كانت منزلية أو مقدّمة من شركة تجارية. كذلك قم بتغيير الخصائص بحيث يقوم هاتفك بسؤالك للسماح له بالاتصال مع شبكة لاسلكية قبل أن ينضم لهذه الشبكة اللاسلكية الجديدة.
اذا كنت لا تستخدم خاصية بلوتوث أو خاصية تحديد المكان فقم بتعطيلهما. فعّل احداهما أو كلاهما عند الحاجة فقط.
استخدم خاصية المسح عن بعد (remote wipe) اذا كان هاتفك أو مزوّد الخدمة يدعم هذه الخاصية. هذه الخاصية تتيح لك مسح هاتفك وحماية معلوماتك الشخصية في حال فقدت هاتفك او تمت سرقته.
حماية معلوماتك
شفّر بياناتك. بعض الهواتف تسمح لك بتشفير البيانات المخزّنة على الهاتف نفسه أو على الذاكرة المتنقلة. التشفير سيحمي معلوماتك في حالة فقد أو سرقة هاتفك (لا قدر الله).
قم بعمل نسخة احتياطية من بياناتك بشكل دوري. اعمل لنفسك برنامج زمني (يومي أو اسبوعي مثلاً) تقوم فيه بحفظ بياناتك على حاسوبك أو على ذاكرة متنقلة (مشفرّة) واحفظها في مكان آمن.
تجنب الأماكن العامة في حال قيامك بأي معاملات بنكية. البعض يستطيع ان يرى ما الذي تكتبه على هاتفك سواء كان من خلفك أو حسب حركة يدك. وكذلك في حالة الاتصال عبر شبكة لاسلكية قد يستطيع القراصنة الوصول الى معلوماتك الشخصية والبنكية.
أمن الانترنت والتطبيقات
لا تقم بتحميل برامج قبل ان تعرف ما هي الصلاحيات التي تتطلبها هذه البرامج (كصلاحيات الوصول الى دليل الهاتف، او الكاميرا او الصور وغيرها.)
العديد من الهواتف الذكية تسمح لك بتحديد صلاحيات البرامج اذا كان هاتفك يدعم هذه الخاصية فاستفد منها للتّقليل من صلاحيات البرنامج الذي تنوي تثبيته على هاتفك.
بعض البرامج في المتاجر الالكترونية (وهذا نجده أكثر في متاجر أندرويد) تحتوي على فيروسات أو غيرها من البرمجيات الضارة. لذلك دائماً تأكد من البرامج التي تقوم بتحميلها.
هاتفك يحتوي على معلوماتك وصورك الخاصة. فكرّ جيداً في ما تحمله من برامج وما تشارك به من معلومات. هاتفك في بعض الاحيان يحتوي على معلومات خاصة أكثر من حاسوبك الشخصي. لهذا المحتالون والقراصنة بأمكانهم إن لم تكن حذراً الحصول على كم هائل من المعلومات عنك.
عند زيارتك لموقع انترنت تأكد من أنه موقع موثوق بمعنى أن تعرف هذا الموقع واستخدام HTTPS متى توفر ذلك لضمان ان تصفحك مشفر.
فكّر قبل أن تضغط عند استلامك لرسائل الميديا (MMS) أو الملحقات في البريد الالكتروني تماماً كما تفعل على حاسوبك الشخصي (نأمل أنّك تقوم بذلك :)). قد تحتوي هذه الرسائل أو الملحقات على برمجيات ضارة أو تقوم بتوجيهك الى مواقع انترنت ضارة (مثلا موقع فيسبوك مزيف لسرقة صلاحياتك ومن ثمّ حسابك على فيسبوك).
علامات على أن هاتفك مصاب ببرمجيات ضارة
هناك ارتفاع مفاجئ في فاتورة هاتفك بدون سبب واضح
هناك رسائل الكترونية او نصية في مجلد المرسل لم تقم أنت بإرسالها
واجهة هاتفك تغيرت ولم تقم أنت بهذا التغيير.
تذكّر…
هاتفك يحتوي على تفاصيل حياتك. فاحتفظ به واحمه كما تحفظ أسرارك وخصوصيّاتك بل أكثر.
إن كان لديك نصائح أخرى لم نتطرق إليها فاذكرها في التعليقات ليستفيد منها الجميع وسنقوم بإضافة الأفضل منها كتحديث على المقال.
إطلاق أداة WebPwn3r لفحص المواقع من الثغرات الخطيرة.
يسرنا اليوم أن نتحدث عن إطلاق أداة WebPwn3r لفحص المواقع من الثغرات الخطيرة
والتي صممت خصيصا لمساعدة الباحثين الأمنين الذين يشاركون في مسابقات اكتشاف الثغرات التي تسمي ب Bug Bounty Programs
دعونا نشرح الأداة وطريقة عملها ..
الأداة تم برمجتها بلغة البايثون لتقوم بفحص المواقع من ثغرات Remote Code Injection و Remote Code Execution و XSS وكذلك ثغرات SQL Injection
الأداة تم برمجتها بواسطة كاتب الموضوع وهي حاليا تحت التطوير المستمر.
حيث يمكنك من خلال الأداة فحص رابط واحد أو عدة روابط .. رابط كمثال:
http:///site.com/namer/news.php?id=1&page=2&action=load
يمكنك انشاء ملف باسم list.txt ووضع روابط من مواقع مختلفه كالرابط بالأعلي ومن ثم تشغيل الأداة من خلال الأمر python scan.py واختيار رقم 2 لفحص جميع الروابط الموجوده داخل الملف من الثغرات الموضحه أعلاه.
المميزات الحالية في الأداة:
- 1- فحص رابط واحد او عدد ﻻ محدود من الروابط
- 2- اكتشاف واستغلال الثغرات من نوع Remote Code Injection
- 3- إكتشاف وإستغلال الثغرات من نوع Remote Command Execution
- 4- إكتشاف وإستغلال ثغرات الـ SQL Injection
- 5- إكتشاف وإستغلال الثغرات من نوع XSS
- 6- الكشف عن ال WebKnight الذي يستخدم كجدار ناري للمواقع – WAF ومحاولة تخطيه
- 7- طرق إكتشاف وإستغلال الثغرات تم تطويرها بحيث تعمل علي أغلب انظمة التشغيل وكذلك لتتخطي الكثير من الجدران النارية المستخدمة في حماية المواقع من إكتشاف وإستغلال ثغراتها.
- 8- إستخراج بيانات عن البرمجيات المستخدمه داخل السرفر وكذلك إصداراتها.
فيديو يشرح كيفية عمل الأداة وإستخدامها في فحص عدة روابط:
أحد التجارب الناجحة للأداة هي إكتشاف ثغرة Remote Code Injection في موقع الياهو:
لتحميل الإداة تفضلوا بزيارة الرابط التالي:
https://github.com/zigoo0/webpwn3r
او من خلال الرابط المباشر:
مقدمة عن الـ Logs وأهميتها – الجزء الأول
سابقاً بعض الشركات والمصانع الكبيرة تجد هناك شخص يقف على باب الدخول وبيده ورقة وقلم، ويقوم بتسجيل دخول الموظفين الى الشركة أو المصنع وبأي وقت، وحين يغادر الموظف العمل يقوم بتسجيل ساعة الخروج. كل هذا لأجل إعلام اصحاب العمل بإنضباط الموظف في أوقات العمل، ومتى دخل الى الشركة ومتى غادرها. وبالإضافة الى ذلك تساعد هذه الورقة بشكل كبير في حالة حصول مشكلة معينة في وقت من الأوقات، سواء أثناء الدوام أو خارج وقت الدوام. يعني لو أخذنا مثال بسيط: حصول سرقة في الشركة بساعة 9:00 مساءاً. كون هذا الرجل الذي على الباب قام بتسجيل دخول كل شخص الى الشركة وبأية وقت. فذلك سوف يتيح للمعنيين من خلال مراجعة هذه الورقة من معرفة على الأقل من كان في المبنى في ذلك الوقت. صحيح لربما هذه الورقة لم تقم بحل المعادلة “من هو السارق؟”، لكنها سوف تساعد بشكل كبير على حصر المشكلة والذي هي أحد أساسيات إيجاد الحلول. كلما استطعنا تصغير المشكلة، سهل علينا حلها!
ملاحظة: طريقة التسجيل هذه قديمة للغاية، وأغلب الشركات اليوم أصبحت تستخدم أجهزة ألكترونية مرتبطة بالمداخل تقوم بتسجيل دخول الموظفين وخروجهم إما بواسطة بطاقات أو البصمة الى غيرها من التقنيات الحديثة.
الآن، أعلم ما يخطر في خاطرك: ما علاقة هذا بعنوان الموضوع؟
الجواب بسيط للغاية: الورقة التي سجل عليها الرجل الذي على الباب هو السجل أو ما يطلق عليه بأسم Log … هل تفكرت الآن الى أي درجة هذه الورقة البسيطة للغاية مفيدة؟ نحن تكلمنا عن مشكلة واحدة فقط، وهي حصول سرقة. هناك مشاكل أخرى عديدة يمكن أن تحصل داخل الشركات والمصانع. تلك الورقة البسيطة التي يكتب عليها ذلك الرجل نستطيع أن نستفيد منها بشكل كبير للغاية. تخييل نستطيع معرفة معدل وصول الموظفين اليومي، وبأي ساعة يعتاد الموظف الفلاني على الوصول والخروج. يعني الورقة البسيطة هذه يتعدى أهميتها فقط إكتشاف السرقة!
ما ذكرته بشكل بسيط للغاية هو بالضبط ما تستطيع الحصول عليه من خلال السجلات Logs التي بداخل الحواسيب، الخوادم، المعدات الخاصة بالشبكة، الأنظمة والبرمجيات. هناك بداخل جهازك الحاسوب سجلات Logs وهناك بداخل هاتفك الخلوي السجلات Logs وهناك بداخل نظام التشغيل الذي تستخدمه السجلات Logs وهناك مع العديد من البرمجيات التي تستعملها السجلات Logs! إذن لو تلاحظ معي بإن كل ما تستخدمه بشكل يومي له سجلات Logs، وحجم الفائدة التي تستطيع أن تحصل عليها منهم (Logs)، كبير جداً جداً.
هل تذكر الموظف الذي تم تسجيل إسمه عند دخوله الى الشركة؟ هذا ما يفعله حاسوبك عندما تقوم بتسجيل الدخول اليه (Login)، وأكيد سيعمل المثل عند خروجك منه (Logout). أيضاً الموظف الذي يقوم بالتسجيل، هو يقوم بتجهيز ورقة بشكل يومي عليها التاريخ لكي يستطيع أن يمييز إن هذه الورقة ليوم السبت أو الأحد وهكذا، هذا شيء مشابه لما يقوم به جهازك حين تقوم بتشغيله بذلك اليوم. حين يبدأ الجهاز بالعمل سوف يتم تسجيل إنه تم تشغيله في الساعة الفلانية وباليوم الفلاني. هل تلاحظ أي فائدة لهذه السجلات؟ لن أقف هنا، ساكمل مع أمثلة أخرى…
في العمل لديكم طابعة مشتركة من خلال الشبكة بين جميع الموظفين. بيوم من الأيام في العمل وجدت حبر الطابعة قد نفذ! لربما تتسائل، “طيب أنا قبل كم يوم أشتريت حبر جديد للطابعة”. إذا كانت الطابعة مليئة بالحبر وهي لا تطبع الآن بسبب نفاذ الحبر التي بداخلها، طيب مالذي حصل؟ هل تعلم بإن تلك السجلات البسيطة سوف تخبرك؟ نعم! ستجد تلك السجلات قد سجلت بإن المستخدم الفلاني في اليوم الفلاني في الساعة الفلانية قام بعملية طباعة. هل تعتقد هذا فقط؟ لا! سوف تخبرك كذلك بكم عدد الأوراق التي طبعها! يا سلام هل هناك شيء آخر أجمل من ذلك؟ تخييل لو عُدنا الى الزمن الذي لم تتواجد فيه هذه التكنلوجيا الرائعة، كنا سنضطر الى توظيف موظف خاص لمراقبة الطابعة (مثلاً)!!! هل ترى معي حجم الفائدة الآن؟ دعنا نرى مثال آخر، رغم إن الأمثلة عديدة للغاية ولن تنتهي لكن لنرى مثال آخر…
لو فرضنا إن المبنى الذي تعمل به له أكثر من مدخل، وكل مدخل عليه رجل يقوم بالتسجيل (كما وضحنا في البداية). في هذه الحالة بغض النظر من أين دخلت الى المبنى، سوف يتم تسجيل دخولك، ليس للمبنى فحسب وإنما تسجيل دخولك من أين جاء. نفس الشيء في الشبكة. تخييل لديكم بالعمل خادم تستخدمه للقيام ببعض الحسابات. هذا الخادم أحياناً تقوم بالدخول أليه من خلال الذهاب أليه بشكل مباشر وتسجل الدخول وثم تقوم بإجراء العمل المطلوب. وبعض الأحيان تكون أنت في المنزل مثلا أو خارج العمل ويتصل بك المدير ويطلب منك القيام بتلك العمليات الحسابية على الخادم، فالذي سوف تفعله هو الدخول الى الخادم ولكن عن بعد Remotely. الفرق بين الحالتين، هي بالأولى أنت دخلت الى الخادم من خلال تواجدك أمام الخادم نفسه، وفي الحالة الثانية أضطررت للدخول أليه من مكان آخر. كما في ذلك الرجل الذي على الباب، سجل دخولك من الباب الفلاني، الحاسوب سوف يعمل نفس الأمر. سوف يسجل بإنك في الحالة الأولى كنت قد سجلت الدخول من خلال التواصل مع الحاسوب بشكل مباشر، بينما في الحالة الثانية سوف يسجل إنك كنت قادم من الجهاز صاحب الـ IP Address الفلاني. هل ترى كيف لهذه السجلات Logs البسيطة للغاية أن تكون مفيدة؟
هل تعتقد بإن هذا كل ما يمكن أن نراه من خلال السجلات Logs هذه؟ هل تعلم كم عددها؟ وأين تقع؟ وكيف يمكن قرائتها؟
هذه الاسئلة وأكثر هي ما سوف أجيب عليه في الجزء الثاني إن شاء الله.
كيف تبدأء في مجال أمن المعلومات
في البدايه احب اوضح ان مجال امن المعلومات مجال واسع وهو يضم العديد من المهارات وابضاً يتفرع منه عده مجالات فرعيه فأذا كنت من العاشقين لهذا المجال فستفيدك هذه المقالة بأذن الرحمن
هذا المجال الرائع يتطلب الكثير من الدراسه والجهد وكل شىء يعتمد على الأساسيات فكما يقال (الأساسيات تصنع المعجزات ) فى مقالتنا هذه سنركز على الأساسيات الذى يستطيع أى شخص بدأ فعلياً فى امن المعلومات أن يشق بها طريقه بكل سهوله ويسر
الباحث الامنى يجب أن يكون مطلع على كل الجديد والمستحدث فى هذا المجال من أخبار الأمن الالكترونى وأخر أخبار الثغرات ألخ وهذا لن يتم إلا عن طريق تعلم اللغه الانجليزية
فأول العوامل هذه هو تعلم اللغه بشكل عام حتى يتمكن الباحث الأمني من متابعه اخر التطورات التى تطرأ على مجالنا هذا فيمكننا الأن تعلم الانجليزية ببساطه عن طريق الانترنت فالم يعد ذلك صعباً بعد الأن وبعيداً عن الكثير من الحديث عن مزايا اللغه أنصحكم بكورس معهد Berlitz فهو كورس قوى جداً بالبحث وتحميله والاستفادة منه فهو اكثر من رائع ويناسب جميع المجالات
أما بالنسبه لمحبين الشرح المباشر والمدرس أمامك مباشره فأنصحكم بالبحث عن كورس English4u عن طريق موقع Youtube وبالنسبه للأساسيات اللغه فأنصحكم بهذا الموقع http://ar.talkenglish.com فهو يحتوى على كثير من الدروس المفيدة ويمكن ان تستمع لها صوتياً وبهذا نكون قد انتهينا من احد اهم النقاط في موضوعنا
ونأتى للنقطه الثانية فماذا بعد تعلم اللغه نأتى للعامل الثانى إلا وهو القاعده التقنية الكافية للدخول فى هذا المجال فمثلا الشخص الأمني بحق يجب أن يكون ملماً ببعض انظمه التشغيل أو الشائع منها وأيضاً الشبكات وبنائها لنرى معاً الصورة او الخريطة التى يجب أن يضعها الباحث الأمنى لنفسه
المرحله الاولى
وهى دراسه كورس مثل Mcitp أو Mcsa وذلك حتى يصل الدارس الى مستوى الـ Administrator وذلك فى بيئه العمل ويندوز فعلينا الانتقال من مجرد مستخدمين عاديين للنظام (users) إلى مستوى الـ Admin للتحكم الكامل بالنظام ومعرفه خبايا وطرق الحمايه وأيضاً الاختراق لهدف معرفه طريقه المخترقين . ومن وجهه نظرى أرجح دراسه دوره الـ Mcitp فهى شامله وقويه لعديد من المهارات وينبثق منها الكثير من المجالات فأذا كنت مقبل على دراسه الدورة فأنصحك بدراسه Enterprise administrator فهو جزء شامل وستتعلم الكثير منه بأذن الله
وللراغب دراسه Mcsa فهو حر والدورة مفيده أيضاً أما الجزء الثاني من المرحله الآولى هو دوره RHCE وهو مهندس انظمه الريد هات الدورة مفيده جداً للوصول لمستوى Admin فى انظمه Linux فعلى على الباحث الأمنى فى البدايه ان يتقن ويندوز ولينكس وكما قلت فى السابق يتقنها كا مستوى Admin وليس User
وبهكذا نكون قد انتهينا من المرحله الأولى وتأتى المرحله الثانيه
المرحلة الثانية
المرحلة الثانية وهى دراسه الشبكات ومعرفتها جيداً فكيف هو حال الباحث الامنى بدون معرفه الشبكات جيداً فهنا علينا أيضا دراسه Network + الخاصه بشركه Compita فهى دوره رائعة وتغطى خلفيتك بشكل ممتاز عن الشبكات
اما بالنسبه لدوره CCna فهى خاصه بسيسكو فأذا اتممت هذه الشهاده ونجحت فى اختباراتها فأنت بلا شك عالم بشئون الشبكات جيداً ولكن هناك ينقصك سلاح الخبره و الخبره عن طريق انغماسك بالعمل الحقيقى فى بيئات شركات حقيقيه تعطيك الأفضلية بين الناس لأن مؤهل بشهاده الدوره و مؤهل أيضاً بخبرتك فعليك الاختيار الحر بين الشهاديتن كما تريد
ملحوظه : جميع الشهادات التى نتكلم عنها موجوده بالفعل بشكل مجانى عبر مواقع عده ويمكنك البحث عنها على Google او Youtube
المرحله الثالثه
هنا هى عباره عن بداية الدخول فى عالم أمن المعلومات دوره Security+ هى احدى دورات شركه Comptia وتعطيك الدوره المفاهيم للبدايه فى هذا المجال فاذا سرت على هذا الدرب من البدايه ستجد معلوماتك قد تطورت بشكل سريع وقوى ويمكنك أن تفهم مبادىء وأساسيات الأمن المعلوماتى
المرحله الرابعه
فهى عباره عن دوره CEH وهى خاصه بمفاهيم عمليات الاختراق واساليب المخترقين حتى وأن كنت رأيت الدوره مجرد مفاهيم ففائدتها مساعدتك فى تحديد أى مجال من مجال الحمايه تريد دراسته فهى مهمه جداً فى تحديد مجالك فعند دراسه هذه الدوره حاول أن تجد اى مجال سيحذبك أكتر هل على سبيل المثال WEB APPLICATION من فحص وحمايه فعليك هنا بالقراءه عن اى مقال تقع فى يدك عن الثغرات فى تطبيقات المواقع والكثير غير هذا المجال وكما قلنا فان شهاده CEH هى بوصلتك التى ستعرف بها ماذا ستدرس فى مجال أمن المعلومات تحديداً
نكون هنا قد انتهينا من موضوعنا اسئل الله عز وجل أن يوفقنا الى ما يحبه ويرضاه
بعض روابط الدورات التى تضمنها فى موضوعنا
اعتذر عن وضع بعد الروابط فقط ولكن يمكنكم البحث عبر Google , Youtube
شرح ثغرات Dom-Based XSS بالتفصيل
ثغرات XSS او Cross-Site Scripting اصبحت واحدة من أشهر ثغرات تطبيقات الويب فهي تأتي في المرتبة الثالثة حسب تصنيف موقع OWASP لأشهر و أكثر 10 ثغرات انتشاراً في تطبيقات الويب لعام 2013 .
صحيح ان ثغرات الـ XSS لا تعد من الثغرات عالية الخطورة لأنها لا تؤثر بشكل مباشر على الموقع او الخادم و إنما تؤثر على جانب العميل الـ Client Side او المستخدم و تحتاج لإضافة القليل من الهندسة الاجتماعية حتى تصل إلى هجوم قوي من خلالها .
لكن هذا لا يمنع ان ثغرات XSS كانت سبباً أساسي في أختراق أكبر الشركات و المواقع العالمية كما حدث منذ أشهر مع المنتديات الخاصة بموقع ubuntu الشهير و تم سرقة معلومات قرابة الـ 2 مليون مستخدم عن طريق استغلال لثغرة XSS بالموقع كما ان ثغرات الـ Xss ايضا كانت سبباً رئيسي في اختراق موقع Apple للمطورين خلال نفس الفترة . فمن المؤكد أن هذا النوع من الثغرات قد يشكل خطورة أكبر بكثير من خطورة ثغرات الـ SQL Injection في حال قام الـهاكر باستغلالها بشكل ذكي و قوي .
موضوعنا اليوم سنتكلم فيه بشكل أساسي على نوع مختلف بعض الشئ من ثغرات الـ XSS و الذي يطلق عليه Dom-Based XSS و قد يكون الكثير ممن يقرؤون هذا المقال لم يتعرفوا إلى هذا النوع من ثغرات xss او يعرفوه اسماً فقط .
من المتعارف عند الجميع ان أشهر أنواع لثغرات XSS هي ما يطلق عليها الـ Reflected XSS و الـ Stored XSS .
و لكن يوجد ايضاً أنواع اخرى تقوم بنفس التأثير لثغرات XSS مثل الـ Flash XSS و Dom-Based XSS و الأخيرة هي التي سوف نقوم بالحديث عنها اليوم في هذة المقالة ان شاء اللًه .
ما هي فكرة ثغرات XSS و كيف تعمل؟
كما نعلم ثغرات XSS تكمن خطورتها في تعديل لمحتوى صفحات الموقع التي تظهر للمستخدم و ذلك عن طريق حقن اكواد HTML او Javascript , كانك تقوم بالضبط بالتعديل على ملفات الـ html و javascript الخاصة بالموقع من خلال احد برامح محرر صفحات الويب .فثغرات XSS تساعد المخترق على تعديل صفحات الموقع و عمل صفحات مزورة مع الاحتفاظ بنفس رابط الصفحة و الدومين , كما يستغلها لبعض لسرقة Sessions او الـ Cookies الخاصة بالمستخدمين و هو يعد اخطر استغلال لثغرات XSS و ذلك عن طريق استخدام داله جافا سكريبت التي تستطيع قراءة بينات الكوكيز مثل document.cookie و ايضاً يستخدم هاكرز أخرون ثغرات الـ XSS في اختراق صفحات الموقع في حال كانت الثغرة من نوع Stored Xss .
دعونا اولا نستعرض طريقة عمل XSS حتى يمكنا بعد ذلك فهم فكرة عمل ثغرات Dom Based Xss بسهولة , ببساطة ثغرات XSS تحدث عندما يقوم المستخدم بأرسل مدخل للصفحة و تقوم الصفحة بأخذ هذا المدخل من المستخدم وعرضه مباشرة كما هو في HTML عن طريق دوال البرمجة مثلا print و echo
مثال بسيط جداً على ذلك صفحة تطلب من المستخدم إدخال اسمه الشخصي
و يدخل اليها الاسم
Ahmed Aboul-Ela
بعد ذلك تقوم بعرض الجملة “Welcome Ahmed Aboul-ELa ”
و اذا استعرضنا html code يكون كالتالي
جميل , لكن ماذا سوف يحدث اذا أدخلت للصفحة اسماً مصحوب بـtags خاصة بالـhtml مثلا هذا الأسم
<h1> Ahmed Aboul-ELA </h1>
ببساطة سوف تكون النتيجة كالتالي
و اذا قمنا باستعراض html code هذة المرة سوف يصبح كالتالي
اذاً الأن تتضح لدينا المشكلة بوضوح , فعند كتابة الاسم مصحوباً بـ الـ tags الخاصة بالـhtml المتصفح هنا لم يفهم انه هذا هو مجرد اسم الشخص و لكنه قام بترجمة اكواد html في الاسم و قام بعرضة بالشكل المطلوب و عندها تغير شكل الاسم في الصفحة و أصبح بخط أكبر . اذاً فان المشكلة كلها كانت في ان الصفحة أخذت الاسم من المستخدم و أظهرته مباشرة دون اي تحقق من ان الاسم قد يحتوى على اكواد خاصة بالـ HTML .
دعونا الأن نحدد هنا من المسؤول عن أخذ الاسم من المستخدم في الصفحة و من المسؤول عن إظهار الأسم في html , في هذة الحالة فان المسؤول عن أخذ الاسم هي داله $_POST في لغة برمجة php و المسؤول عن إظهار الاسم في html هي داله echo . الأن هذة المقدمة كانت ضرورية لنا حتى نستطيع ان نستوعب فكرة عمل dom-based xss في الجزء التالي .
ما هي ثغرات Dom Based Xss و كيف تعمل ؟
ببساطة ثغرات XSS لا تختلف كثيراً في مفهموها عن ثغرات refelected xss و لكن الفرق بينها و بين ثغرات XSS في الأسلوب و الطريقة , فكما ذكرنا في ثغرات xss التقليدية فان من يقوم باستقبال المدخل من المستخدم هي لغة PHP عن طريق داله $_POST او $_GET التى تستطيع قرائه المدخلات من خلال form في صفحة ما او من خلال الرابط . لكن في حاله Dom-Based فأن من يقوم بأخذ المدخل من المستخدم هي دوال الـ javascript و من يقوم بطباعة المدخل ايضاً هي دوال الـ javascript دون الحاجة إلى اي لغات برمجة أخرى او حتى web server لترجمة و تشغيل الملفات .
سوف نطلق على دوال التي تقوم بأخذ المدخل من المستخدم هي دوال الـ sources و ان الدوال التي تقوم بطباعة هذا المدخل و إظهاره في html هي sinks . و الأن نبدأ بشرح بعض دوال sources و sinks و نرى كيف يمكن ان تؤدي بعد ذلك إلى ثغرات XSS .
ما هي دوال Sources ؟
دوال الـsources هي دوال في لغة javascript و التي من خلالها يمكن ان تقوم بإرسال مدخل إلى الصفحة في هذه الحالة غالبا يكون المدخل من المستخدم مرسل من خلال رابط الصفحة او url مثلا لدينا الرابط التالي :
https://site.com/home/file.html?name=ahmed#Securtiy4arabs
فمن الممكن من خلال هذة الدوال ان تقوم بقراءة رابط الصفحة بالكامل او فقط مسار الصفحة home/file.html/ او قيمة الاسم المدخل ahmed او الهاش تاج security4arabs كأنك بالضبط تقوم عمل تحليل الرابط و تقسيمه إلى إجزاء , جزء هو مسار الصفحة و اسم ملف الصفحة و جزء هي المتغيرات او parameters المرسلة إلى الصفحة
و يمكن عمل ذلك من خلال javascript ببساطة عن طريق الدوال التالية :
دوال تقوم بقرائه رابط الصفحة بالكامل
- document.URL
- document.documentURI
- document.URLUnencoded
- document.baseURI
- location
- location.href
مثال على ذلك اقوم بكتابة صفحة تحتوى على كود الجافا سكريبت التالي :
<script>
alert(location.href);
</script>
و بعد ذلك اقوم بتشغيل الصفحة و تكون النتيجة كالتالي :
نلاحظ ان الصفحة قامت باظهار msg box يحتوى على رابط الصفحة التي قمت بتشغيلها كما قمنا بكتابة في ملف html , و يكون نفس الحال مع باقي الدوال التي قمنا بذكرها , سوف تظهر رابط الصفحة بالكامل , الأن نتطرق إلى داله اخرى تقوم بقرائه اسم الصفحة فقط دون المدخلات إليها او اسم domain .
دوال تقوم بقرائه اسم الصفحة و مسارها
location.pathname
مع استخدام نفس كود الصفحة السابق و استبدال فقط اسم الدالة location.href باسم الدالة يصبح لدينا النتيجة التالية
الفكرة بسيطة أليست كذلك ؟ الأن نستكمل ذكر بعض الدوال الأخرى و التي تستطيع قرائه جزء من رابط الصفحة كالدوال السابقة .
دوال تقوم بقرائه المدخلات او parameters فقط المرسلة إلى الصفحة
- location.search
مثال على ذلك قمت بتشغيل الصفحة بهذة الدالة و ارسلت اليها بعض المدخلات مثلا
https://site.com/page.html?name=ahmed
تكون النتيجة كالتالي :
و اخيرا نقوم بذكر دالة تستخدم كثير في مواقع و هي داله تقوم بقرائة الـ hashtag # في الرابط
دوال تقوم بقرائه HashTag
- location.hash
نقوم بتشغيل الصفحة مرة اخرى بهذة الدالة و نرى النتيجة
قمنا فقط بفتح رابط الصفحة مع اضافة #Ahmed Aboul-Ela في نهاية الرابط و قامت الصفحة بأظهار هذا الجزء فقط من الرابط الأن تعرفنا الى جميع دوال sources الأن ننطلق إلى الدوال التي تستطيع ان تظهر هذة sources في مخرج الصفحة
ما هي دوال Sinks ؟
دوال sinks ببساطة كما ذكرنا هي المسؤلة عن إظهار و كتابة القيمة المرسلة من خلال داله من دوال sources بالظبط كداله print في لغات البرمجة
دوال الـsinks ليست صعبة و سوف اقوم بذكر اهمها
- داله document.write و doucment.writeln
هي داله المكافئة لدالة print في لغات البرمجة فتقوم مباشرة بطباعة الكلام داخل كود HTML
مثال على ذلك صفحة تحتوى على كود HTML التالي
<script>
document.write(‘hello world’) ;
</script>
ستكون النتيجة لدينا كما في الصورة
- داله anyElement.innerHTML
هذه الدالة ببساطة تقوم بقراءة او كتابة كود بداخل Tag معين في الصفحة
مثلا document.body.innerHTML سوف تقوم بقرائة محتوى <body> </body> بالكامل
و اذا قمت بعمل document.body.innerHTML = ‘ahmed’ سوف يقوم بعمل استبدال كامل لمحتوى تاج body و كتابة فيه الكلمة Ahmed
مثال على ذلك كود الصفحة التالي
<html>
<body>
Just a text in body tag
<script>
document.body.innerHTML = ‘www.security4arabs.com’;
</script>
</body>
</html>
عند تشغيل الصفحة ستقوم الـJavaScript بتغير محتوى الصفحة الأصلي
و المكتوب فيه Just a text in body tag بـالكلمة www.security4arabs.com
كما نلاحظ لم تظهر الجملة just a text in body tag الأن تعرفنا إلى اهم دوال html sinks و التي تستطيع كتابة كلام في الصفحة و تعرفنا الى دوال Sources التي تستطيع ان ترسل مدخل إلى الصفحة من خلال الرابط
الأن نتطرق إلى الخطوة الأخيرة و هي كيفية حدوث ثغرات dom based xss من خلال هذة الدوال
كيف تحدث ثغرات Dom-Based Xss باستخدام دوال Sources و Sinks
كما ذكرنا في السابق ان xss تحدث عندما يرسل المستخدم للصفحة مدخل و تقوم الصفحة بأخذ المدخل و عرضه مباشرة داخل الصفحة
و نحن الأن تعرفنا كيف من الممكن ان تقوم بقراءة جزء من رابط الصفحة كمدخل و تعرفنا كيف يمكن ان نقوم بكتابة كلام من خلال javascript بداخل الصفحة
اذاً الأن يتحقق لدنيا طرفي المعادلة التي تقوم بإحداث ثغرات XSS , نرى في الجزء التالي كيف يمكن ان تقوم بتنفيذ ثغرة XSS فقط من خلال Javascript
لن اسرد المزيد من الكلام النظري و دعونا ننتقل مباشرة إلى كود الصفحة التالي و نرى ماذا تفعل
<html>
<body>
<script>
document.body.innerHTML = location.hash;
</script>
</body>
الأن فقط بالنظر لكود الصفحة يمكن فهم ماذا تفعل
ببساطة الصفحة تقوم بكتابة location.hash و هو الهاش تاج # الذي يأتي في نهاية رابط الصفحة بداخل <body> </body>
نفتح الصفحة الأن من خلال المتصفح و نرسل اليها اي كلام بعد # لنرى اذا كان هذا الكلام صحيح ام لا
جميل لقد قامت الصفحة بطباعة الـhash tag كما كتبناه و عند تغير كلمة Test سوف تتغير النتيجة في الصفحة
طيب الأن ماذا سيحدث اذا ارسلنا كلمه test مصحوبة باكواد html او javascript ؟
مثل سوف ارسل للصفحة Xss Payload كالنالي :
<img src=x onerror=alert(1337)>
دعونا نرى النتيجة 🙂
هل لاحظت ما حدث ؟ الأن اتضحت لدنيا ثغرة xss بوضوح و تم تشغيل كود alert لـ 1337 🙂 هذا كان فقط مثال بسيط يوضح لدينا فكرة عمل ثغرات Dom-Based Xss
قد يسألني احد الأن هل تعتقد ان مثل هذة الثغرات قد تكون موجودة في كثير من المواقع !؟
الأجابة بالطبع نعم فثغرات Dom Based Xss ظهرت في اكبر المواقع العالمية مثل google , microsoft , yahoo , Adobe و غيرهم الكثير
و هذا مثال على احدى الثغرات الذي قمت باكتشافها بنفسي و ابلغت عنها في شركة Redhat
و الثغرة كانت في صفحة التسجيل الرئيسية لإنشاء الحسابات لموقع redhat.com
كيف يمكن إكتشاف ثغرات Dom Based Xss ؟
إكتشاف ثغرات Dom-Based Xss هي عملية ليست سهله لأنها تحتاج إلى فحص و تدقيق في اكواد Javascript و اغلب المواقع الأن تستخدم الكثير من اكواد Javascript قد يصل الكود فيها إلى الاف من الأسطر و سيصبح من الصعب ان تقوم بعمل ذلك و فحص هذة الأكواد بشكل يدوي
لكن اصبح هناك ادوات تساعد على اكتشاف مثل هذة الثغرات و من اشهر و اقوى هذة الأدوات هي اداة Dominitor و لكنها ليست مجانية للأسف والأداة هي عبارة عن متصفح firefox معدل يستطيع بتبع الـ Dom في الصفحات و يمكنه اكتشاف sinks و sources بمجرد زيارة الصفحة من خلال المتصفح
واليكم الفيديو التالي الذي يوضح فيه كيف استطاع مبرمج الأداة اكتشاف ثغرة Dom Based Xss في Google Plus Button
فيديو اخر لإكتشاف ثغرة اخرى في موقع google
و إلى هنا نكون قد غطينا اهم النقاط الأساسية في موضوعنا اليوم و اتمنى ان يكون الشرح كان واضحاً و سهلأً 🙂
المراجع
إطلاق برنامج Sculptor لحقن قواعد البيانات وبمميزات رائعة.
قبل البداية بكتابة المقال يسعدني القول بأن البرنامج من برمجة عربية مائة بالمائة ويتم تطويرة وتحديثة بشكل مستمر.
إسم البرنامج: Sculptor
إسم المبرمج: Mohamed Maati
الموقع الرسمي: http://sculptordev.com
برنامج Sculptor او ما يطلق عليه برنامج النحات باللغة العربية. يساعد البرنامج مختبري الاختراق في اكتشاف واستغلال الثغرات من نوع SQL Injection
ويجب التنبيه إلي ان البرنامج مجاني تماما وهو بديل رائع لبرنامج Havij الواسع الإنتشار في هذا المجال والذي يصل ثمنه الي 650 دولار أمريكي!
خصائص ومميزات برنامج النحات هي كالتالي:
1. يدعم الحقن في قواعد البيانات من نوع:
· MySQL
· SQL Server
·Microsoft Access
2. يدعم الأنواع التالية من الحقن:
Error Based + Union Injection
· Blind SQl Injection
3. خاصية : Auto Scanning الفحص التلقائي للموقع واختباره واكتشاف ما به من ثغرات ومن ثم يمكنك استغلالها بنفس البرنامج أيضا.
4. خاصية Authentication Bypass: اول برنامج يوجد به امكانية استغلال هذا النوع من الثغرات حيث تتيح لك هذه الخاصية تخطي لوحة دخول مدير الموقع من خلال تجريب عدة Payloads مثال علي هذه الثغرة or ‘1’=’a’– أو a’ or ‘a’=’a وغيرها.
5. خاصية Auto Detects : امكانية تحديد نوع الحقن وقاعدة البيانات بشكل تلقائي.
6. خاصية specific injections: يتيح لمختبر الاختراق بتحديد نوع الحقن وقاعدة البيانات.
7. البرنامج يدعم حقن المواقع التي تعمل ببروتوكول HTTPS وكما نعلم فإن النسخة المجانية من Havij ﻻ تدعم مثل هذه الخاصية.
8. يدعم البرنامج الحقن في GET and POST
9. خاصية HTTP Post Engine feature : امكانية استغلال ثغرات SQLI with POST Type بثلاثة طرق مختلفة مع واجهة بسيطة للمستخدم.
10. يتيح للمستخدم امكانية تنفيذ اوامر على قاعدة البيانات وعرض النتائج.
11. امكانية حفظ النتائج بامتداد XML Or HTML.
12. امكانية الحقن فى اكثر من قاعدة بيانات متاحه.
13. امكانية استخدام بروكسي للتخفي عند استخدام البرنامج.
14. امكانية البحث عن لوحة تحكم مدراء المواقع Admin page finder
15. البرنامج ذو واجهة رسومية جيدة وسهله للمستخدم وهذا ما يفرقه عن الأداة القوية SQL Map.
يمكنكم مشاهدة بعض الفيديوهات التي تشرح بعض خصائص البرنامج من خلال الروابط التالية:
Sculptor – Sql Injection – Get All DataBases
http://www.youtube.com/watch?v=Qo_5YYO1vBc
Sculptor – Blind SQl Injection
http://www.youtube.com/watch?v=iQ7MKD8DpbA
Sculptor – Sql Authentication Bypass
http://www.youtube.com/watch?v=yBgfGakJ6Lo
Sculptor – Sql injection – Http Post Method
http://www.youtube.com/watch?v=rSplmBCaKNY
باقي الفيديوهات: http://www.youtube.com/user/SculptorScanner?feature=watch
ويمكنكم تحميل البرنامج ومتابعة التحدثيات من خلال الموقع الرسمي للبرنامج: http://sculptordev.com