
wig هي أداة لجمع معلومات تطبيقات الويب، يمكنها التعرف على العديد من أنظمة إدارة المحتوى والتطبيقات الإدارية الأخرى.
تعتمد بصمة التطبيق على المجاميع الاختبارية (checksums) ومطابقة السلاسل النصية للملفات المعروفة لإصدارات مختلفة من أنظمة إدارة المحتوى. ينتج عن ذلك حساب درجة لكل CMS مكتشف وإصداراته. يتم عرض كل CMS مكتشف مع الإصدار (أو الإصدارات) الأكثر احتمالاً له. يعتمد حساب الدرجة على الأوزان وكمية "الإصابات" لمجموع اختباري معين.
تحاول wig أيضًا تخمين نظام التشغيل على الخادم بناءً على الرؤوس 'server' و 'x-powered-by'. تتضمن wig قاعدة بيانات تحتوي على قيم رؤوس معروفة لأنظمة تشغيل مختلفة، مما يسمح لـ wig بتخمين إصدارات Microsoft Windows وتوزيعات Linux وإصداراتها.
تم بناء wig باستخدام Python 3، وبالتالي فهي غير متوافقة مع Python 2.
يمكن تشغيل wig من سطر الأوامر أو تثبيتها باستخدام distuils.
$ python3 wig.py example.com
قم بالتثبيت باستخدام
$ python3 setup.py install
ومن ثم يمكن استيراد wig من أي مكان كالتالي:
>>>> from wig.wig import wig
>>>> w = wig(url='example.com')
>>>> w.run()
>>>> results = w.get_results()
السلوك الافتراضي لـ wig هو التعرف على نظام إدارة المحتوى (CMS) والخروج بعد اكتشاف إصداره. يتم ذلك للحد من كمية الحركة المرسلة إلى الخادم المستهدف. يمكن تجاوز هذا السلوك بوضع العلامة '-a'، وفي هذه الحالة ستختبر wig جميع البصمات المعروفة. نظرًا لأن بعض تكوينات التطبيقات لا تستخدم الموقع الافتراضي للملفات والموارد، فمن الممكن أن تجلب wig جميع الموارد الثابتة التي تواجهها أثناء فحصها. يتم ذلك باستخدام الخيار '-c'. الخيار '-m' يختبر جميع البصمات مقابل جميع عناوين URL التي تم جلبها، وهو مفيد إذا تم تغيير الموقع الافتراضي.
usage: wig.py [-h] [-l INPUT_FILE] [-q] [-n STOP_AFTER] [-a] [-m] [-u] [-d]
[-t THREADS] [--no_cache_load] [--no_cache_save] [-N]
[--verbosity] [--proxy PROXY] [-w OUTPUT_FILE]
[url]
WebApp Information Gatherer
positional arguments:
url The url to scan e.g. http://example.com
optional arguments:
-h, --help show this help message and exit
-l INPUT_FILE File with urls, one per line.
-q Set wig to not prompt for user input during run
-n STOP_AFTER Stop after this amount of CMSs have been detected. Default:
1
-a Do not stop after the first CMS is detected
-m Try harder to find a match without making more requests
-u User-agent to use in the requests
-d Disable the search for subdomains
-t THREADS Number of threads to use
--no_cache_load Do not load cached responses
--no_cache_save Do not save the cache for later use
-N Shortcut for --no_cache_load and --no_cache_save
--verbosity, -v Increase verbosity. Use multiple times for more info
--proxy PROXY Tunnel through a proxy (format: localhost:8080)
-w OUTPUT_FILE File to dump results into (JSON)
$ python3 wig.py example.com
wig - WebApp Information Gatherer