•  

    Comment obtenir une carte MasterCard ® en Algérie et recharger pour acheter sur Internet -2013-

       كيفية الحصول على فيزا كارد مجانا

     

     

     

     

     

     


    votre commentaire
  • 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

    مثال بسيط جداً على ذلك صفحة تطلب من المستخدم إدخال اسمه الشخصي

    1

    و يدخل اليها الاسم

    Ahmed Aboul-Ela

    بعد ذلك تقوم بعرض الجملة “Welcome Ahmed Aboul-ELa

    2

    و اذا استعرضنا html code يكون كالتالي

    3

    جميل , لكن ماذا سوف يحدث اذا أدخلت للصفحة اسماً مصحوب بـtags خاصة بالـhtml  مثلا هذا الأسم

    <h1> Ahmed Aboul-ELA </h1>

    ببساطة سوف تكون النتيجة كالتالي

    4

    و اذا قمنا باستعراض html code هذة المرة سوف يصبح كالتالي

    5

    اذاً الأن تتضح لدينا المشكلة بوضوح , فعند كتابة الاسم مصحوباً بـ الـ 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  مثلا لدينا الرابط التالي :

    http://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>

    و بعد ذلك اقوم بتشغيل الصفحة و تكون النتيجة كالتالي :
    dombased_xss1

    نلاحظ ان الصفحة قامت باظهار msg box يحتوى على رابط الصفحة التي قمت بتشغيلها كما قمنا بكتابة في ملف html , و يكون نفس الحال مع باقي الدوال التي قمنا بذكرها , سوف تظهر رابط الصفحة بالكامل , الأن نتطرق إلى داله اخرى تقوم بقرائه اسم الصفحة فقط دون المدخلات إليها او اسم domain .

    دوال تقوم بقرائه اسم الصفحة و مسارها

    location.pathname

    مع استخدام نفس كود الصفحة السابق و استبدال فقط اسم الدالة location.href  باسم الدالة يصبح لدينا النتيجة التالية

    dombased_xss2

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

    دوال تقوم بقرائه المدخلات او parameters فقط المرسلة إلى الصفحة

    • location.search

    مثال على ذلك قمت بتشغيل الصفحة بهذة الدالة و ارسلت اليها بعض المدخلات مثلا

    http://site.com/page.html?name=ahmed

    تكون النتيجة كالتالي :

    dombased_xss3

    و اخيرا نقوم بذكر دالة تستخدم كثير في مواقع و هي داله تقوم  بقرائة  الـ hashtag # في الرابط

    دوال تقوم بقرائه HashTag

    • location.hash

    نقوم بتشغيل الصفحة مرة اخرى بهذة الدالة و نرى النتيجة

     dombased_xss4

    قمنا فقط بفتح رابط الصفحة مع اضافة #Ahmed Aboul-Ela في نهاية الرابط و قامت الصفحة بأظهار هذا الجزء فقط من الرابط الأن تعرفنا الى جميع دوال sources الأن ننطلق إلى الدوال التي تستطيع ان تظهر هذة sources في مخرج الصفحة

    ما هي دوال Sinks ؟

    دوال sinks ببساطة كما ذكرنا هي المسؤلة عن إظهار و كتابة القيمة المرسلة من خلال داله من دوال sources بالظبط كداله print في لغات البرمجة

    دوال الـsinks ليست صعبة و سوف اقوم بذكر اهمها

    • داله document.write و doucment.writeln

    هي داله المكافئة لدالة print في لغات البرمجة فتقوم مباشرة بطباعة الكلام  داخل كود HTML

    مثال على ذلك صفحة تحتوى على كود HTML  التالي

    <script>
    document.write(‘hello world’) ;
    < /script>

    ستكون النتيجة لدينا كما في الصورة

    dombased_xss5

    • داله 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

    dombased_xss6

    كما نلاحظ لم تظهر الجملة 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>

    نفتح الصفحة الأن من خلال المتصفح و نرسل اليها اي كلام بعد #  لنرى اذا كان هذا الكلام صحيح ام لا

    dombased_xss7

    جميل  لقد قامت الصفحة بطباعة الـhash tag كما كتبناه و عند تغير كلمة Test سوف تتغير النتيجة في الصفحة

    طيب الأن ماذا سيحدث اذا ارسلنا كلمه test مصحوبة باكواد html  او javascript ؟

    مثل سوف ارسل للصفحة Xss Payload كالنالي :

    <img src=x onerror=alert(1337)>

    دعونا نرى النتيجة :)

    dombased_xss8

    هل لاحظت ما حدث ؟ الأن اتضحت لدنيا ثغرة xss بوضوح و تم تشغيل كود alert لـ 1337 :) هذا كان فقط مثال بسيط يوضح لدينا فكرة عمل ثغرات Dom-Based Xss

    قد يسألني احد الأن هل تعتقد ان مثل هذة الثغرات قد تكون موجودة في كثير من المواقع !؟

    الأجابة بالطبع نعم فثغرات Dom Based Xss ظهرت في اكبر المواقع العالمية مثل google , microsoft , yahoo , Adobe و غيرهم الكثير

    و هذا مثال على احدى الثغرات الذي قمت باكتشافها بنفسي و ابلغت عنها  في شركة Redhat

    و الثغرة كانت في صفحة التسجيل الرئيسية لإنشاء الحسابات لموقع redhat.com

    redhat

    كيف يمكن إكتشاف ثغرات Dom Based Xss ؟

    إكتشاف ثغرات Dom-Based Xss هي عملية ليست سهله لأنها تحتاج إلى فحص و تدقيق في اكواد Javascript و اغلب المواقع الأن تستخدم الكثير من اكواد  Javascript قد يصل الكود فيها إلى الاف من الأسطر و سيصبح من الصعب ان تقوم بعمل ذلك و فحص هذة الأكواد بشكل يدوي

    لكن اصبح هناك ادوات تساعد على اكتشاف مثل هذة الثغرات و من اشهر و اقوى هذة الأدوات هي اداة Dominitor و لكنها ليست مجانية للأسف والأداة هي عبارة عن متصفح firefox معدل يستطيع بتبع الـ Dom في الصفحات و يمكنه اكتشاف sinks و sources بمجرد زيارة الصفحة من خلال  المتصفح

    واليكم الفيديو التالي الذي يوضح فيه كيف استطاع مبرمج الأداة اكتشاف ثغرة Dom Based Xss في Google Plus Button

    فيديو اخر لإكتشاف ثغرة اخرى في موقع google

    و إلى هنا نكون قد غطينا اهم النقاط الأساسية في موضوعنا اليوم و اتمنى ان يكون الشرح كان واضحاً و سهلأً :)







     




     


    votre commentaire
  • قبل البداية بكتابة المقال يسعدني القول بأن البرنامج من برمجة عربية مائة بالمائة ويتم تطويرة وتحديثة بشكل مستمر.
    إسم البرنامج: Sculptor
    إسم المبرمج: Mohamed Maati
    الموقع الرسمي: http://sculptordev.com

    0

    برنامج Sculptor او ما يطلق عليه برنامج النحات باللغة العربية. يساعد البرنامج مختبري الاختراق في اكتشاف واستغلال الثغرات من نوع SQL Injection
    ويجب التنبيه إلي ان البرنامج مجاني تماما وهو بديل رائع لبرنامج Havij الواسع الإنتشار في هذا المجال والذي يصل ثمنه الي 650 دولار أمريكي!

    1-2

    خصائص ومميزات برنامج النحات هي كالتالي:

    1. يدعم الحقن في قواعد البيانات من نوع:

    · MySQL

    · SQL Server

    ·Microsoft Access

    1-3

    2. يدعم الأنواع التالية من الحقن:

    Error Based + Union Injection

    · Blind SQl Injection

    3. خاصية : Auto Scanning الفحص التلقائي للموقع واختباره واكتشاف ما به من ثغرات ومن ثم  يمكنك استغلالها بنفس البرنامج أيضا.

    5

    4. خاصية  Authentication Bypass: اول برنامج يوجد به امكانية استغلال هذا النوع من الثغرات حيث تتيح لك هذه الخاصية تخطي لوحة دخول مدير الموقع من خلال تجريب عدة Payloads مثال علي هذه الثغرة or ’1′=’a’– أو a’ or ‘a’=’a وغيرها.

    2-2

    5. خاصية Auto Detects : امكانية تحديد نوع الحقن وقاعدة البيانات بشكل تلقائي.

    6. خاصية specific injections: يتيح لمختبر الاختراق بتحديد نوع الحقن وقاعدة البيانات.

    7. البرنامج يدعم حقن المواقع التي تعمل ببروتوكول HTTPS وكما نعلم فإن النسخة المجانية من Havij ﻻ تدعم مثل هذه الخاصية.

    8. يدعم البرنامج الحقن في GET and POST

    9. خاصية HTTP Post Engine feature : امكانية استغلال ثغرات SQLI with POST Type بثلاثة طرق مختلفة مع واجهة بسيطة للمستخدم.

    10. يتيح للمستخدم امكانية تنفيذ اوامر على قاعدة البيانات وعرض النتائج.

    4

    11. امكانية حفظ النتائج بامتداد XML Or HTML.

    12. امكانية الحقن فى اكثر من قاعدة بيانات متاحه.

    13. امكانية استخدام بروكسي للتخفي عند استخدام البرنامج.

    14. امكانية البحث عن لوحة تحكم مدراء المواقع Admin page finder

    6

    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





    votre commentaire


    Suivre le flux RSS des articles de cette rubrique
    Suivre le flux RSS des commentaires de cette rubrique