Skip to content
KitploitKITPLOIT
أدواتالمدونة
إرسال
أدواتالمدونة
إرسال

أدوات الاختراق واختبار الاختراق والأمن السيبراني لترسانتك الأمنية!

Kitploit هو دليل لأدوات الاختراق والأمن السيبراني واختبار الاختراق. اكتشف آخر تحديثات المشاريع للعثور على الثغرات وتحليل الأنظمة وأتمتة الاختبارات وتعزيز أمنك.

··الخلاصات·اتصال·الخصوصية·© 2026 Kitploit

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
skipfish — ماسح أمان لتطبيقات الويب من إنشاء lcamtuf لصالح google - مرآة غير رسمية | Kitploit
أدوات/GitHubGitHub/spinkham/skipfish
الاستطلاعماسحات الثغرات الأمنيةماسحات الثغرات الأمنية للويبالتحليل الديناميكي (عزل)استغلال تطبيقات الويبجمع المعلوماتأمن الويبالاختبار العشوائياختبار الاختراقزاحف الويب
GitHubspinkham/skipfish
87216651منذ 13 سنواتتمت المراجعة من قبل Kitploit

الأكثر شعبية

عرض الكل →

اكتشف الأدوات الأكثر استخدامًا من قبل مجتمعنا.

استكشف جميع الأدوات

تصفح مجموعتنا من الأدوات

عرض جميع الأدوات →
مشاركة

skipfish

ماسح أمان لتطبيقات الويب من إنشاء lcamtuf لصالح google - مرآة غير رسمية

عرض المستودعالموقع الإلكتروني

skipfish - ماسح أمان تطبيقات الويب

http://code.google.com/p/skipfish/

  • كُتب وتمت صيانته بواسطة:

    Michal Zalewski [email protected] Niels Heinen [email protected] Sebastian Roschke [email protected]

  • حقوق النشر 2009 - 2012 شركة Google، جميع الحقوق محفوظة.

  • صدر بموجب شروط وأحكام رخصة Apache، الإصدار 2.0.


  1. ما هو skipfish؟

Skipfish هي أداة استطلاع نشطة لأمن تطبيقات الويب. تقوم بإعداد خريطة موقع تفاعلية للموقع المستهدف عبر إجراء زحف متكرر واستفسارات مبنية على القواميس. تُحلَّى الخريطة الناتجة بعد ذلك بمخرجات عدد من الفحوصات الأمنية النشطة (غير المعطِّلة على أمل أن تكون كذلك). يُقصد من التقرير النهائي الذي تولّده الأداة أن يكون أساسًا لتقييمات أمنية احترافية لتطبيقات الويب.


  1. لماذا ينبغي أن أهتمّ بهذه الأداة تحديدًا؟

يتوفر عدد من الأدوات التجارية ومفتوحة المصدر ذات وظائف مشابهة بسهولة (مثل Nikto وNessus)؛ التزم بالأداة التي تناسبك أكثر. ومع ذلك، تحاول skipfish معالجة بعض المشكلات الشائعة المرتبطة بماسحات أمان الويب. وتشمل المزايا المحددة:

  • أداء عالٍ: لوحظت 500+ طلبًا في الثانية ضد أهداف إنترنت سريعة الاستجابة، و2000+ طلبًا في الثانية على شبكات LAN / MAN، و7000+ طلب ضد النسخ المحلية، مع استهلاك متواضع جدًا للمعالج والشبكة والذاكرة. ويمكن أن يُعزى ذلك إلى:

    • نموذج معالجة بيانات وشبكة أحادي الخيط بكامل الإدخال/الإخراج غير المتزامن متعدد الإرسال، مما يلغي أوجه القصور في إدارة الذاكرة وجدولة المهام والاتصال بين العمليات الموجودة في بعض العملاء متعددي الخيوط.

    • ميزات HTTP/1.1 المتقدمة مثل طلبات النطاق وضغط المحتوى واتصالات keep-alive، إلى جانب فرض حد أقصى لحجم الاستجابة، لإبقاء الحمل على مستوى الشبكة تحت السيطرة.

    • تُستخدم التخزين المؤقت الذكي للاستجابات واستدلالات سلوك الخادم المتقدمة لتقليل الحركة غير الضرورية.

    • تنفيذ نقي بلغة C موجه نحو الأداء، بما في ذلك مكدس HTTP مخصص.

  • سهولة الاستخدام: skipfish عالية التكيف والموثوقية. يتميز الماسح بـ:

    • تعرّف استدلالي على أنظمة معالجة المعاملات الغامضة القائمة على المسار والاستعلام.

    • تعامل رشيق مع المواقع متعددة الأطر التي تتبع فيها بعض المسارات دلالات مختلفة تمامًا، أو تخضع لقواعد تصفية مختلفة.

    • إنشاء تلقائي لقوائم الكلمات استنادًا إلى تحليل محتوى الموقع.

    • ميزات فحص احتمالية للسماح بتقييمات دورية ومحددة زمنيًا للمواقع المعقدة بأي درجة.

    • فحوصات أمنية مصممة جيدًا: تهدف الأداة إلى تقديم نتائج دقيقة وذات مغزى:

      • توفر القواميس المصممة يدويًا تغطية ممتازة وتسمح باختبار شامل لنمط $keyword.$extension في إطار زمني معقول.

      • تُفضَّل الاستقصاءات التفاضلية ثلاثية الخطوات على فحوصات التوقيعات لكشف الثغرات.

      • يُستخدم منطق بأسلوب Ratproxy لرصد المشكلات الأمنية الدقيقة: تزوير الطلبات عبر المواقع، إدراج النصوص البرمجية عبر المواقع، المحتوى المختلط، مشكلات عدم تطابق MIME ومجموعة الأحرف، توجيهات التخزين المؤقت غير الصحيحة، إلخ.

      • صُممت الفحوصات الأمنية المرفقة للتعامل مع السيناريوهات الصعبة: XSS المخزّن (المسار، المعاملات، الترويسات)، حقن SQL أو XML الأعمى، أو حقن الأوامر الصدفية الأعمى.

      • توقيعات محتوى بأسلوب Snort تُبرز أخطاء الخادم أو تسريبات المعلومات أو تطبيقات الويب التي يحتمل أن تكون خطيرة.

      • تعمل المعالجة اللاحقة للتقرير على تقليل الضوضاء الناتجة عن أي نتائج إيجابية كاذبة متبقية أو حيل خادم بشكل كبير عبر تحديد الأنماط المتكررة.

ومع ذلك، فإن skipfish ليست حلًا سحريًا، وقد لا تكون مناسبة لأغراض معينة. على سبيل المثال، لا تلبي معظم المتطلبات الموضحة في معايير تقييم ماسحات أمان تطبيقات الويب WASC (بعضها عن قصد، وبعضها بدافع الضرورة)؛ وبخلاف معظم المشاريع الأخرى من هذا النوع، لا تأتي مع قاعدة بيانات شاملة للثغرات المعروفة لفحوصات نوع اللافتة.


  1. الفضول شديد! ما الاختبارات المحددة المنفذة؟

فيما يلي قائمة تقريبية بالفحوصات الأمنية التي تقدمها الأداة.

  • ثغرات عالية الخطورة (قد تؤدي إلى اختراق النظام):

    • حقن الاستعلامات في جانب الخادم (بما في ذلك النواقل العمياء والمعاملات الرقمية).
    • صيغة صريحة شبيهة بـ SQL في معاملات GET أو POST.
    • حقن أوامر الصدفة في جانب الخادم (بما في ذلك النواقل العمياء).
    • حقن XML / XPath في جانب الخادم (بما في ذلك النواقل العمياء).
    • ثغرات سلسلة التنسيق.
    • ثغرات تجاوز الأعداد الصحيحة.
    • مواقع تقبل HTTP PUT.
  • ثغرات متوسطة الخطورة (قد تؤدي إلى اختراق البيانات):

    • نواقل XSS مخزنة ومنعكسة في نص المستند (دعم XSS عبر JS محدود).
    • نواقل XSS مخزنة ومنعكسة عبر إعادة توجيه HTTP.
    • نواقل XSS مخزنة ومنعكسة عبر تقسيم ترويسات HTTP.
    • اجتياز الدلائل / LFI / RFI (بما في ذلك النواقل المقيدة).
    • ملفات POI متنوعة (مصادر جانب الخادم، الإعدادات، إلخ).
    • نواقل إدراج نصوص برمجية وCSS مقدمّة من المهاجم (مخزنة ومنعكسة).
    • نواقل إدراج نصوص برمجية وCSS خارجية غير موثوقة.
    • مشكلات المحتوى المختلط على موارد النصوص البرمجية وCSS (اختياري).
    • نماذج كلمات مرور تُرسل من أو إلى صفحات غير SSL (اختياري).
    • أنواع MIME غير صحيحة أو مفقودة على العناصر القابلة للعرض.
    • أنواع MIME عامة على العناصر القابلة للعرض.
    • ترميزات أحرف غير صحيحة أو مفقودة على العناصر القابلة للعرض.
    • معلومات MIME / ترميز أحرف متعارضة على العناصر القابلة للعرض.
    • توجيهات تخزين مؤقت سيئة على استجابات تعيين ملفات تعريف الارتباط.
  • مشكلات منخفضة الخطورة (تأثير محدود أو خصوصية منخفضة):

    • نواقل تجاوز سرد الدلائل.
    • إعادة توجيه إلى عناوين URL مقدمة من المهاجم (مخزنة ومنعكسة).
    • محتوى مضمّن مقدم من المهاجم (مخزن ومنعكس).
    • محتوى مضمّن خارجي غير موثوق.
    • محتوى مختلط على موارد فرعية غير قابلة للبرمجة النصية (اختياري).
    • إرسال نماذج HTML عبر HTTPS -> HTTP (اختياري).
    • بيانات اعتماد HTTP في عناوين URL.
    • شهادات SSL منتهية الصلاحية أو غير صالحة بعد.
    • نماذج HTML بدون حماية XSRF.
    • شهادات SSL موقعة ذاتيًا.
    • عدم تطابق اسم المضيف في شهادة SSL.
    • توجيهات تخزين مؤقت سيئة على محتوى أقل حساسية.
  • تحذيرات داخلية:

    • محاولات جلب موارد فاشلة.
    • تجاوز حدود الزحف.
    • فشل فحوصات سلوك 404.
    • تم اكتشاف تصفية IPS.
    • تباينات استجابة غير متوقعة.
    • عقد زحف يبدو أنها مصنفة بشكل خاطئ.
  • إدخالات معلوماتية غير محددة:

    • معلومات عامة عن شهادة SSL.
    • ملفات تعريف ارتباط HTTP المتغيرة بشكل كبير.

إلى جانب قائمة المشكلات المحددة، توفر skipfish أيضًا نظرات عامة ملخصة لأنواع المستندات وأنواع المشكلات الموجودة؛ وخريطة موقع تفاعلية، مع الإشارة إلى العقد المكتشفة عبر القوة العمياء بطريقة مميزة.

ملاحظة: كقرار تصميمي واعٍ، لن تشكو skipfish مرارًا بشأن مشكلات غير محددة للغاية، بما في ذلك على سبيل المثال لا الحصر:

  • ملفات تعريف ارتباط غير httponly أو غير آمنة،
  • نماذج غير HTTPS أو مفعّل فيها الإكمال التلقائي،
  • تعليقات HTML المكتشفة في الصفحة،
  • كشف مسارات نظام الملفات في رسائل الخطأ،
  • كشف إصدار الخادم أو الإطار،
  • خوادم تدعم طلبات TRACE أو OPTIONS،
  • مجرد وجود تقنيات معينة، مثل WebDAV.

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


  1. حسنًا، أريد تجربته. ما الذي أحتاج إلى معرفته؟

قبل كل شيء، يرجى ألا تكن خبيثًا. استخدم skipfish فقط ضد الخدمات التي تملكها، أو التي لديك إذن باختبارها.

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

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

تشغيل الأداة ضد مواقع تجريبية مقدمة من البائعين ليس طريقة جيدة لتقييمها، لأنها عادةً تقارب الثغرات بشكل غير كامل للغاية؛ ولم نبذل أي جهد لاستيعاب هذه الحالات.

أخيرًا، الماسح ببساطة غير مصمم للتعامل مع خوادم HTTP المارقة وسيئة السلوك - ولا يقدم أي ضمانات لسلوك آمن (أو معقول) هناك.


  1. كيف تشغّل الماسح؟

لتجميعه، ببساطة فك ضغط الأرشيف وجرّب make. الأرجح أنك ستحتاج إلى تثبيت libidn أولاً.

بعد ذلك، تحتاج إلى قراءة التعليمات الواردة في doc/dictionaries.txt لاختيار ملف القاموس الصحيح وتهيئته بشكل صحيح. لهذه الخطوة تأثير عميق على جودة نتائج الفحص لاحقًا، فلا تتخطها.

بمجرد اختيار القاموس، يمكنك استخدام -S لتحميل هذا القاموس، و-W لتحديد ملف فارغ مبدئيًا لأي كلمات رئيسية جديدة خاصة بالموقع يتم تعلمها (ستكون مفيدة في التقييمات المستقبلية):

root@kitploit:~
$ touch new_dict.wl
$ ./skipfish -o output_dir -S existing_dictionary.wl -W new_dict.wl \
  http://www.example.com/some/starting/path.txt

يمكنك استخدام -W- إذا كنت لا تريد تخزين الكلمات الرئيسية المتعلمة تلقائيًا في أي مكان.

لاحظ أنه يمكنك توفير أكثر من عنوان URL بداية إذا رغبت؛ سيتم الزحف إلى جميعها. من الممكن أيضًا قراءة عناوين URL من ملف، باستخدام الصيغة التالية:

root@kitploit:~
$ ./skipfish [...other options...] @../path/to/url_list.txt

ستعرض الأداة بعض الإحصاءات المفيدة أثناء تقدم الفحص. يمكنك أيضًا التبديل إلى قائمة طلبات HTTP قيد التنفيذ بالضغط على مفتاح الإدخال.

في المثال أعلاه، ستقوم skipfish بفحص www.example.com بأكمله (بما في ذلك الخدمات على المنافذ الأخرى، إذا كانت مرتبطة من الصفحة الرئيسية)، وتكتب تقريرًا إلى output_dir/index.html. يمكنك بعد ذلك عرض هذا التقرير بمتصفحك المفضل (يجب تمكين JavaScript؛ وبسبب تحسينات أمان file:/// الأخيرة في بعض المتصفحات، قد تحتاج إلى الوصول إلى النتائج عبر HTTP). ملف index.html ثابت؛ تُخزَّن النتائج الفعلية كتسلسل هرمي من ملفات JSON، مناسبة للمعالجة الآلية أو لواجهات عرض مختلفة إذا لزم الأمر. بالإضافة إلى ذلك، سيتم حفظ قائمة بجميع عناوين URL المكتشفة في ملف واحد، pivots.txt، لسهولة المعالجة اللاحقة.

يمكن استخدام سكربت مصاحب بسيط، sfscandiff، لحساب الفرق بين فحصين نُفذا ضد نفس الهدف بنفس الخيارات. سيتم تعليق التقرير الأحدث بشكل غير مُتلف بإضافة خلفية حمراء إلى جميع العقد الجديدة أو المتغيرة؛ وخلفية زرقاء إلى جميع المشكلات الجديدة أو المتغيرة التي تم العثور عليها.

قد تتطلب بعض المواقع مصادقة، ودعمنا لها موصوف في doc/authentication.txt. في معظم الحالات، سترغب في استخدام طريقة مصادقة النموذج القادرة على اكتشاف الجلسات المعطلة لإعادة المصادقة.

بمجرد المصادقة، قد تقوم بعض عناوين URL في الموقع بتسجيل خروج جلستك؛ يمكنك مواجهة ذلك بطريقتين: باستخدام الخيار -N، الذي يجعل الماسح يرفض محاولات تعيين ملفات تعريف الارتباط أو حذفها؛ أو باستخدام المعامل -X، الذي يمنع جلب عناوين URL المطابقة:

root@kitploit:~
$ ./skipfish -X /logout/logout.aspx ...other parameters...

خيار -X مفيد أيضًا لتسريع الفحوصات عبر استبعاد /icons/ و/doc/ و/manuals/ وغيرها من المواقع القياسية الاعتيادية على هذا المنوال. عمومًا، يمكنك استخدام -X و-I (زحف فقط إلى عناوين URL المطابقة لسلسلة فرعية) لتحديد نطاق الفحص بالطريقة التي تريدها - بما في ذلك قصره على بروتوكول ومنفذ معينين فقط:

root@kitploit:~
$ ./skipfish -I http://example.com:1234/ ...other parameters...

وظيفة ذات صلة، -K، تسمح لك بتحديد أسماء معاملات لا ينبغي تخمينها (مفيدة للتطبيقات التي تضع معرفات الجلسة في عنوان URL، لتقليل الضوضاء).

خيار تحديد نطاق مفيد آخر هو -D - يتيح لك تحديد مضيفين أو نطاقات إضافية لاعتبارها ضمن نطاق الاختبار. افتراضيًا، تتم إضافة جميع المضيفين الظاهرين في عناوين URL بسطر الأوامر إلى القائمة - ولكن يمكنك استخدام -D لتوسيع هذه القواعد، على سبيل المثال:

root@kitploit:~
$ ./skipfish -D test2.example.com -o output-dir http://test1.example.com/

...أو لمطابقة بطاقة بدل للنطاق، استخدم:

root@kitploit:~
$ ./skipfish -D .example.com -o output-dir http://test1.example.com/

في بعض الحالات، لا تريد فعليًا الزحف إلى نطاق خارجي، لكنك تثق في مالك ذلك النطاق بما يكفي لعدم القلق بشأن تضمين محتوى عبر النطاقات من ذلك الموقع. لكتم التحذيرات، يمكنك استخدام الخيار -B، على سبيل المثال:

root@kitploit:~
$ ./skipfish -B .google-analytics.com -B .googleapis.com ...other
parameters...

افتراضيًا، ترسل skipfish ترويسات HTTP ضئيلة لتقليل كمية البيانات المتبادلة عبر الشبكة؛ ومع ذلك، تفحص بعض المواقع سلاسل User-Agent أو ترتيب الترويسات لرفض العملاء غير المدعومين. في هذه الحالة، يمكنك استخدام -b ie أو -b ffox أو -b phone لمحاكاة أحد المتصفحين الشائعين (أو iPhone).

عندما يتعلق الأمر بتخصيص طلبات HTTP، يمكنك أيضًا استخدام الخيار -H لإدراج أي ترويسات إضافية غير قياسية؛ أو -F لتحديد تعيين مخصص بين مضيف وعنوان IP (تجاوزًا لمحلل الأسماء). الميزة الأخيرة مفيدة بشكل خاص للخدمات غير المُطلقة بعد أو القديمة.

قد تكون بعض المواقع كبيرة جدًا لفحصها في إطار زمني معقول. إذا كان الموقع يتضمن "tarpits" محددة جيدًا - على سبيل المثال، 100,000 ملف تعريف مستخدم شبه متطابق كجزء من شبكة اجتماعية - فيمكن استبعاد هذه المواقع المحددة باستخدام -X أو -S. في حالات أخرى، قد تحتاج إلى اللجوء إلى إعدادات أخرى: -d يحد من عمق الزحف إلى عدد محدد من الدلائل الفرعية؛ -c يحد من عدد العناصر الفرعية لكل دليل؛ -x يحد من العدد الإجمالي للأحفاد لكل فرع من شجرة الزحف؛ و-r يحد من العدد الإجمالي للطلبات المرسلة في الفحص.

خيار مثير للاهتمام متاح للتقييمات المتكررة: -p. من خلال تحديد نسبة مئوية بين 1 و100%، يمكن إخبار الزاحف بمتابعة أقل من 100% من جميع الروابط، وتجربة أقل من 100% من جميع إدخالات القاموس. هذا - بطبيعة الحال - يحد من اكتمال الفحص، ولكن على عكس معظم الإعدادات الأخرى، يفعل ذلك بطريقة متوازنة وغير حتمية. وهو مفيد للغاية عندما تقوم بإعداد تقييمات دورية محدودة الوقت للبنية التحتية الخاصة بك. خيار ذو صلة آخر هو -q، الذي يعين البذرة العشوائية الأولية للزاحف إلى قيمة محددة. يمكن استخدامه لإعادة إنتاج فحص سابق بدقة لمقارنة النتائج. يتم الاعتماد على العشوائية بشكل كبير في وضع -p، ولكن أيضًا لاتخاذ بعض قرارات إدارة الفحص الأخرى في أماكن أخرى.

قد تتضمن بعض الخدمات المعقدة بشكل خاص (أو المعطلة) عددًا كبيرًا جدًا من الصفحات المتطابقة أو شبه المتطابقة. على الرغم من أن هذه الحالات تكون افتراضيًا معتمة في التقرير، إلا أنها تستهلك بعض مساحة الشاشة وتستغرق وقتًا في المعالجة على مستوى JavaScript. في مثل هذه الحالات القصوى، يمكنك استخدام الخيار -Q لكتم الإبلاغ عن العقد المكررة تمامًا، قبل كتابة التقرير. قد يعطيك هذا فهمًا أقل شمولاً لكيفية تنظيم الموقع، لكنه لا يؤثر على تغطية الاختبار.

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

تهتم بعض المواقع التي تتعامل مع بيانات مستخدم حساسة بأمر SSL - وبفعل ذلك بشكل صحيح. يمكن لـ skipfish مساعدتك اختياريًا في اكتشاف المحتوى المختلط الإشكالي أو سيناريوهات إرسال كلمات المرور - استخدم الخيار -M لتفعيل هذا. سيشكو الماسح من حالات مثل تحميل نصوص http:// على صفحات https:// - لكنه سيتجاهل السيناريوهات غير الخطرة مثل الصور.

وبالمثل، قد تهتم بعض المواقع شديدة الدقة بحالات يكون فيها التخزين المؤقت مقيدًا على مستوى HTTP/1.1، ولكن لا يتم تقديم توجيه تخزين مؤقت صريح HTTP/1.0؛ تحديد -E في سطر الأوامر يجعل skipfish يسجل كل هذه الحالات بعناية.

في بعض المناسبات، قد ترغب في تحديد الطلبات في الثانية للحد من الحمل على خادم الهدف (أو ربما لتجاوز حماية DoS). يمكن استخدام العلم -l لتعيين هذا الحد، والقيمة المعطاة هي الحد الأقصى لعدد الطلبات في الثانية الذي تريد أن تنفذه skipfish.

عادةً لا ينبغي أن تستغرق الفحوصات أسابيع. في كثير من الحالات، ربما تريد تحديد مدة الفحص بحيث تتناسب ضمن نافذة زمنية معينة. يمكن القيام بذلك باستخدام العلم -k، الذي يسمح بتحديد مقدار الساعات والدقائق والثواني بصيغة H:M:S. يمكن أن يؤثر استخدام هذا العلم على تغطية الفحص إذا انتهت مهلة الفحص قبل اختبار جميع الصفحات.

أخيرًا، في بعض التقييمات التي تشمل مواقع مكتفية ذاتيًا دون محتوى مستخدم واسع، قد يهتم المدقق بأي رسائل بريد إلكتروني خارجية أو روابط HTTP ظاهرة، حتى لو لم يكن لها تأثير أمني فوري. استخدم الخيار -U لتسجيل هذه.

إدارة القاموس موضوع خاص، كما ذكرنا، وهو مغطى بمزيد من التفاصيل في doc/dictionaries.txt. يرجى قراءة هذا الملف قبل المتابعة. تتضمن بعض الخيارات ذات الصلة -S و-W (تم تغطيتهما سابقًا)، و-L لكتم التعلم التلقائي، و-G للحد من حجم وعاء تخمين الكلمات الرئيسية، و-R لإسقاط إدخالات القاموس القديمة، و-Y لتعطيل تخمين $keyword.$extension المكلف.

تتميز skipfish أيضًا بآلية إكمال تلقائي للنماذج لتعظيم تغطية الفحص. يجب أن تكون القيم غير خبيثة، لأنها ليست مخصصة لتنفيذ فحوصات أمنية - بل لتجاوز منطق التحقق من الإدخال. يمكنك تحديد قواعد إضافية، أو تجاوز القواعد الموجودة، باستخدام الخيار -T (-T form_field_name=field_value، على سبيل المثال -T login=test123 -T password=test321 - مع ملاحظة أن -C و-A هما طريقة أفضل بكثير لتسجيل الدخول).هناك أيضًا مجموعة من الخيارات المتعلقة بالأداء. استخدم -g لتعيين الحد الأقصى لعدد الاتصالات التي يتم الحفاظ عليها، على مستوى عام، لجميع الأهداف (من الحكمة إبقاؤها أقل من 50 أو نحو ذلك لتجنب إرباك حزمة TCP/IP على نظامك أو على أجهزة NAT/جدار الحماية القريبة)؛ و-m لتعيين الحد لكل عنوان IP (جرّب قليلًا: 2-4 عادةً ما تكون جيدة للنطاق المحلي (localhost)، و4-8 للشبكات المحلية، و10-20 للأهداف الخارجية، و30+ للأجهزة البطيئة جدًا أو غير الداعمة للإبقاء على الاتصال). يمكنك أيضًا استخدام -w لتعيين مهلة الإدخال/الإخراج (أي أن skipfish سينتظر لفترة محددة فقط لعملية قراءة أو كتابة فردية)، و-t لتعيين مهلة الطلب الإجمالية، لمراعاة المواقع البطيئة جدًا أو السريعة جدًا.

أخيرًا، يتحكم -f في الحد الأقصى لعدد أخطاء HTTP المتتالية التي ترغب في رؤيتها قبل إحباط الفحص؛ و-s يحدد الحد الأقصى لطول الاستجابة التي يتم جلبها وتحليلها (سيتم اقتطاع الاستجابات الأطول).

عند فحص مواقع كبيرة وكثيفة الوسائط المتعددة، قد ترغب أيضًا في تحديد -e. فهذا يمنع الاحتفاظ بالوثائق الثنائية في الذاكرة لأغراض إعداد التقارير، ويحرر قدرًا كبيرًا من ذاكرة الوصول العشوائي.

يتوفر مزيد من التحكم في معدل الطلبات عبر أدوات وضع المستخدم التابعة لجهات خارجية مثل trickle، أو تشكيل حركة المرور على مستوى النواة.

أوه، ويمكن كتم إحصاءات الفحص في الوقت الفعلي باستخدام -u.


  1. لكن بجدية، كيف يتم تشغيله؟

فحص قياسي ومُصادق عليه لموقع جيد التصميم ومكتفٍ ذاتيًا (يحذر من جميع الروابط الخارجية ورسائل البريد الإلكتروني والمحتوى المختلط ومشاكل ترويسات التخزين المؤقت)، بما في ذلك القوة العمياء المعتدلة:

$ touch new_dict.wl $ ./skipfish -MEU -S dictionaries/minimal.wl -W new_dict.wl
-C "AuthCookie=value" -X /logout.aspx -o output_dir
http://www.example.com/

زحف بخمس اتصالات، ولكن بدون القوة العمياء؛ مع التظاهر بأنه متصفح MSIE والثقة بمحتوى example.com:

$ ./skipfish -m 5 -L -W- -o output_dir -b ie -B example.com
http://www.example.com/

القوة العمياء الثقيلة فقط (بدون استخراج روابط HTML)، مقتصرة على دليل واحد مع انتهاء المهلة بعد 5 ثوانٍ:

$ touch new_dict.wl $ ./skipfish -S dictionaries/complete.wl -W new_dict.wl
-P -I http://www.example.com/dir1/ -o output_dir -t 5 -I
http://www.example.com/dir1/

للحصول على قائمة مختصرة بجميع خيارات سطر الأوامر، جرّب ./skipfish -h.


  1. كيف تفسّر المشاكل المُبلغة وتتعامل معها؟

معظم المشاكل التي يُبلغ عنها skipfish يجب أن تكون واضحة بذاتها، بافتراض أن لديك فهمًا جيدًا لأساسيات أمان الويب. إذا كنت بحاجة إلى تذكير سريع ببعض المواضيع الأكثر تعقيدًا، مثل فحص MIME (MIME sniffing)، فقد يعجبك دليلنا الشامل "Browser Security Handbook" كنقطة انطلاق:

http://code.google.com/p/browsersec/

إذا كنت لا تزال بحاجة إلى مساعدة، فهناك العديد من المنظمات التي تبذل جهدًا كبيرًا في توثيق وشرح العديد من تهديدات أمان الويب الشائعة، وتقديم النصائح للجمهور حول كيفية التعامل معها. أشجعك على الرجوع إلى المواد المنشورة من قبل OWASP وWeb Application Security Consortium، من بين جهات أخرى:

  • http://www.owasp.org/index.php/Category:Principle
  • http://www.owasp.org/index.php/Category:OWASP_Guide_Project
  • http://www.webappsec.org/projects/articles/

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


  1. القيود المعروفة / قائمة الميزات المطلوبة

فيما يلي قائمة بالميزات المفقودة حاليًا في skipfish. إذا كنت ترغب في تحسين الأداة من خلال المساهمة بكود في أحد هذه المجالات، فيرجى إخباري بذلك:

  • فحوصات تجاوز سعة المخزن المؤقت: بعد دراسة متأنية، أشك في وجود طريقة موثوقة لاختبار تجاوز سعة المخزن المؤقت عن بُعد. ومثل حالة الخطأ الفعلية التي نبحث عنها تمامًا، قد تؤدي فحوصات حجم المخزن المؤقت السليمة أيضًا إلى استثناءات غير ملتقطة، ورسائل 500، وما إلى ذلك. ومع ذلك، سأحب أن يثبت أنني مخطئ.

  • كشف XSS في JavaScript بشكل كامل: توجد عدة فحوصات بدائية في الكود، ولكن لا يوجد محرك نصوص مناسب مدمج لتقييم التعبيرات والوصول إلى DOM.

  • أخطاء استهلاك الأحرف / الحقن في تشفير الطول المتغير: يبدو أن هذه المشاكل قد عولجت إلى حد كبير على مستوى المتصفح في هذه المرحلة، لذا كانت أولويتها أقل بكثير في وقت كتابة هذا النص.

  • فحوصات الأمان واستخراج الروابط للمحتوى القائم على المكونات الإضافية التابع لجهات خارجية (Flash وJava وPDF وما إلى ذلك).

  • القوة العمياء لكلمات المرور والاستكشاف بالقوة العمياء لأسماء الملفات الرقمية.

  • التكامل مع محركات البحث (المضيفات الافتراضية، مسارات البداية).

  • فك ترميز VIEWSTATE.

  • مصادقة NTLM وDigest.

  • اختبارات PHP أكثر تحديدًا (حقن eval، RFI).

  • دعم الوكيل: يتوفر دعم وكيل HTTP تجريبي من خلال توجيه #define في config.h. إضافة دعم البروكسي لـ HTTPS أكثر تعقيدًا، ولا يزال قيد التطوير.

  • خيار استئناف الفحص، ومعلومات وقت تشغيل أفضل.

  • دعم التثبيت المستقل (make install).

  • واجهة ويب للجدولة والإدارة.


  1. أوي! حدث شيء خاطئ بشكل مريع!

لا يوجد زاحف ويب جيد إلى درجة لا يجد فيها إطار عمل ويب ما يُشعل فيه النار في يوم من الأيام. إذا واجهت ما يبدو سلوكًا سيئًا (مثل فحص يستغرق وقتًا طويلاً ويولّد عددًا كبيرًا جدًا من الطلبات، أو عُقدًا زائفة تمامًا في مخرجات الفحص، أو أعطالًا كاملة)، فيرجى أولاً مراجعة صفحة المشاكل المعروفة لدينا:

http://code.google.com/p/skipfish/wiki/KnownIssues

إذا لم تجد إجابة مرضية هناك، أعد تجميع الماسح الضوئي باستخدام:

$ make clean debug

...وأعد تشغيله بهذه الطريقة:

$ ./skipfish [...previous options...] 2>logfile.txt

يمكنك بعد ذلك فحص logfile.txt لمعرفة ما حدث؛ إذا بدا أنها مشكلة في الماسح الضوئي، فيرجى إزالة أي معلومات حساسة من ملف السجل وإرسالها إلى المؤلف.

إذا تعطل الماسح الضوئي، فيرجى إعادة تجميعه كما هو موضح أعلاه، ثم اكتب:

$ ulimit -c unlimited $ ./skipfish [...previous options...] 2>logfile.txt $ gdb --batch -ex back ./skipfish core

...وتأكد من إرسال مخرجات هذا الأمر الأخير إلى المؤلف أيضًا.


  1. الشكر والملاحظات

أصبح Skipfish ممكنًا بفضل مساهمات وملاحظات فريق هندسة أمن المعلومات في Google.

إذا كان لديك أي تقارير عن أخطاء، أو أسئلة، أو اقتراحات، أو مخاوف بشأن التطبيق، يمكن الوصول إلى المؤلف الأساسي على [email protected].

تنزيل الأداة
  • تغيّر ترويسات Server أو Via أو X-...
  • توقيعات 404 جديدة.
  • موارد يتعذر الوصول إليها.
  • موارد تتطلب مصادقة HTTP.
  • روابط معطلة.
  • أخطاء الخادم.
  • جميع الروابط الخارجية غير المصنفة خلاف ذلك (اختياري).
  • جميع رسائل البريد الإلكتروني الخارجية (اختياري).
  • جميع معيدات توجيه URL الخارجية (اختياري).
  • روابط لبروتوكولات غير معروفة.
  • حقول نماذج تعذر إكمالها تلقائيًا.
  • نماذج إدخال كلمات المرور (للقوة العمياء الخارجية).
  • نماذج رفع الملفات.
  • نماذج HTML أخرى (غير مصنفة خلاف ذلك).
  • أسماء ملفات رقمية (للقوة العمياء الخارجية).
  • روابط مقدمّة من المستخدم تُعرض في صفحة.
  • نوع MIME غير صحيح أو مفقود على محتوى أقل أهمية.
  • نوع MIME عام على محتوى أقل أهمية.
  • ترميز أحرف غير صحيح أو مفقود على محتوى أقل أهمية.
  • معلومات MIME / ترميز أحرف متعارضة على محتوى أقل أهمية.
  • اصطلاحات تمرير معاملات شبيهة بـ OGNL.