
ماسح ويب يكتشف إصدارات CMS، الإضافات، مكتبات جافا سكريبت الضعيفة، عناوين البريد الإلكتروني، وأرقام الهواتف على المواقع المستهدفة، مع تقييم مخاطر تسرب المعلومات.
قم أولاً بتشغيل docker run --rm -p 8000:80 siwecos/infoleak-scanner.
افتح متصفحك واستخدم الماسح: http://localhost/?url=<URL>
احصل على php5 و curl وخادم ويب:
sudo apt-get install apache2 php5 php5-curl
انسخ التطبيق إلى خادم الويب:
cp -R . /var/www/html/
يبحث عن الإضافات لنظام إدارة المحتوى المكتشف. أكبر قائمة (wordpress) تحتوي على 980 إضافة مختلفة.
يبحث عن مكتبات JavaScript الضعيفة والأكثر استخدامًا.
يبحث عن عناوين البريد الإلكتروني. مفيدة لهجمات البريد العشوائي و/أو الهندسة الاجتماعية.
يبحث عن أرقام الهواتف. مفيدة لهجمات الهندسة الاجتماعية و/أو الاحتيال.
| Finding | Score (0-100) |
|---------------------+---------------|
| CMS_ONLY | 100 |
| CMS_VERSION | 96 |
| CMS_VERSION_VULN | انظر أدناه |
| PLUGIN_ONLY | 99 |
| PLUGIN_VERSION | 96 |
| PLUGIN_VERSION_VULN | انظر أدناه |
| JS_LIB_ONLY | 99 |
| JS_LIB_VERSION | 96 |
| JS_LIB_VULN_VERSION | انظر أدناه |
| EMAIL_FOUND | 96 |
| NUMBER_FOUND | 98 |
إذا كان هناك اكتشاف مثل:
CMS_VERSION_VULN
PLUGIN_VERSION_VULN
JS_LIB_VULN_VERSION
فسيتم تحديد النتيجة الإجمالية إلى 20 وكل ثغرة إضافية ستقلل النتيجة الإجمالية بمقدار 10. مما يعني أنه إذا تم إرجاع CMS_VERSION_VULN و PLUGIN_VERSION_VULN و JS_LIB_VULN_VERSION، فستكون النتيجة الإجمالية 0.
أيضًا، اكتشاف jQuery v1.12.4 على موقع Wordpress لن يتم تقييمه كمكتبة ضعيفة معتادة. سينتج عن هذا الاكتشاف نتيجة 90، ولكن عنصر الاستبدال سيبقى JS_LIB_VULN_VERSION لأنه مكتبة ضعيفة.
يمكنك تشغيل الماسح عبر طلبات POST و GET.
إذا كنت ترغب في تشغيل الماسح باستخدام طلب POST، فيجب عليك إرسال المعلمات بتنسيق JSON مشفر:
{
"url": "string",
"dangerLevel": 0,
"callbackurls": [
"string"
],
"userAgent": "string"
}
يحدد url عنوان URL الذي يجب مسحه.
dangerLevel غير ذي صلة، ببساطة عرفه بـ 0.
callbackurls هو مصفوفة من عناوين URL. ستتلقى هذه العناوين نتيجة الماسح (تُرسل عبر POST).
userAgent يحدد وكيل المستخدم الفردي الذي تريد إرساله عند المسح.
تشغيل الماسح باستخدام طلب GET أسهل بكثير. كل ما عليك فعله هو تشغيل التطبيق بعنوان URL معين:
http://localhost/?url=<URL>
لا توجد اكتشافات في أي عمليات مسح:
{
"name": "InfoLeak-Scanner",
"version": "1.0.0",
"hasError": false,
"errorMessage": null,
"score": 100,
"tests": [
{
"name": "CMS",
"hasError": false,
"errorMessage": null,
"score": 100,
"scoreType": "info",
"testDetails": null
},
{
"name": "CMS_PLUGINS",
"hasError": false,
"errorMessage": null,
"score": 100,
"scoreType": "warning",
"testDetails": null
},
{
"name": "JS_LIB",
"hasError": false,
"errorMessage": null,
"score": 100,
"scoreType": "warning",
"testDetails": null
},
{
"name": "EMAIL_ADDRESS",
"hasError": false,
"errorMessage": null,
"score": 100,
"scoreType": "info",
"testDetails": null
},
{
"name": "PHONE_NUMBER",
"hasError": false,
"errorMessage": null,
"score": 100,
"scoreType": "info",
"testDetails": null
}
]
}
على الأقل اكتشاف واحد في كل عملية مسح:
{
"name": "InfoLeak-Scanner",
"version": "1.0.0",
"hasError": false,
"errorMessage": null,
"score": 20,
"tests": [
{
"name": "CMS",
"hasError": false,
"errorMessage": null,
"score": 96,
"scoreType": "info",
"testDetails": [
{
"placeholder": "CMS_VERSION",
"values": {
"cms": "wordpress",
"version": "4.9.6",
"node": "meta",
"node_content": "WordPress 4.9.6"
}
}
]
},
{
"name": "CMS_PLUGINS",
"hasError": false,
"errorMessage": null,
"score": 99,
"scoreType": "warning",
"testDetails": [
{
"placeholder": "PLUGIN_ONLY",
"values": {
"plugin": "contact-form-7",
"node": "href",
"node_content": "https://[...]/wp-content/plugins/contact-form-7/includes/css/styles.css?ver=5.0.2"
}
}
]
},
{
"name": "JS_LIB",
"hasError": false,
"errorMessage": null,
"score": 0,
"scoreType": "warning",
"testDetails": [
{
"placeholder": "JS_LIB_VULN_VERSION",
"values": {
"js_lib_name": "jquery",
"js_lib_version": "1.12.4",
"node": "src",
"node_content": "https://[...]/wp-includes/js/jquery/jquery.js?ver=1.12.4"
}
}
]
},
{
"name": "EMAIL_ADDRESS",
"hasError": false,
"errorMessage": null,
"score": 96,
"scoreType": "info",
"testDetails": [
{
"placeholder": "EMAIL_FOUND",
"values": {
"email_adress": [
[
"[email protected]"
]
]
}
}
]
},
{
"name": "PHONE_NUMBER",
"hasError": false,
"errorMessage": null,
"score": 98,
"scoreType": "info",
"testDetails": [
{
"placeholder": "NUMBER_FOUND",
"values": {
"number": [
"1234-12 11 22-3",
"123-11 22 333-4"
]
}
}
]
}
]
}
تم اختباره بشكل خاص على:
Mozilla Firefox 45.7.0
PHP 5.6.30-0+deb8u1 (cli) (built: Feb 8 2017 08:50:21)
Copyright (c) 1997-2016 The PHP Group
Zend Engine v2.6.0, Copyright (c) 1998-2016 Zend Technologies
Server version: Apache/2.4.10 (Debian)
Server built: Feb 24 2017 18:40:28
Server's Module Magic Number: 20120211:37
Server loaded: APR 1.5.1, APR-UTIL 1.5.4
Compiled using: APR 1.5.1, APR-UTIL 1.5.4
Architecture: 64-bit
Server MPM: prefork
threaded: no
forked: yes (variable process count)
Server compiled with....
-D APR_HAS_SENDFILE
-D APR_HAS_MMAP
-D APR_HAVE_IPV6 (IPv4-mapped addresses enabled)
-D APR_USE_SYSVSEM_SERIALIZE
-D APR_USE_PTHREAD_SERIALIZE
-D SINGLE_LISTEN_UNSERIALIZED_ACCEPT
-D APR_HAS_OTHER_CHILD
-D AP_HAVE_RELIABLE_PIPED_LOGS
-D DYNAMIC_MODULE_LIMIT=256
-D HTTPD_ROOT="/etc/apache2"
-D SUEXEC_BIN="/usr/lib/apache2/suexec"
-D DEFAULT_PIDLOG="/var/run/apache2.pid"
-D DEFAULT_SCOREBOARD="logs/apache_runtime_status"
-D DEFAULT_ERRORLOG="logs/error_log"
-D AP_TYPES_CONFIG_FILE="mime.types"
-D SERVER_CONFIG_FILE="apache2.conf"
| عنصر الاستبدال | الرسالة |
|---|
| مسح CMS | |
| CMS_ONLY | تم اكتشاف نظام إدارة المحتوى {cms} المستخدم. |
| CMS_VERSION | تم اكتشاف نظام إدارة المحتوى {cms} وإصداره {version}. |
| CMS_VERSION_VULN | تم اكتشاف نسخة ضعيفة من نظام إدارة المحتوى {cms} الإصدار {version} |
| مسح الإضافات | |
| PLUGIN_ONLY | تم اكتشاف إضافة CMS {plugin} في عقدة DOM {node} عبر محتوى العقدة {node_content}. |
| PLUGIN_VERSION | تم اكتشاف إضافة CMS {plugin} وإصدارها {plugin_version} في عقدة DOM {node} عبر محتوى العقدة {node_content}. |
| PLUGIN_VERSION_VULN | تم اكتشاف إضافة CMS ضعيفة {plugin} وإصدارها {plugin_version} في عقدة DOM {node} عبر محتوى العقدة {node_content}. |
| مسح JS | |
| JS_LIB_ONLY | تم اكتشاف مكتبة JavaScript المستخدمة {js_lib_name} في عقدة DOM {node} عبر محتوى العقدة {node_content}. |
| JS_LIB_VERSION | تم اكتشاف مكتبة JavaScript المستخدمة {js_lib_name} وإصدارها {js_lib_version} في عقدة DOM {node} عبر محتوى العقدة {node_content}. |
| JS_LIB_VULN_VERSION | تم اكتشاف مكتبة JavaScript ضعيفة {js_lib_name} وإصدارها {js_lib_version} في عقدة DOM {node} عبر محتوى العقدة {node_content}. |
| مسح البريد الإلكتروني | |
| EMAIL_FOUND | تم العثور على عنوان البريد الإلكتروني {email_address}. |
| مسح الهاتف | |
| NUMBER_FOUND | تم العثور على رقم الهاتف {number}. |
| الأخطاء | |
| NO_SOURCE_CODE | عنوان URL المحدد لا يحتوي على كود مصدر. |
| INVALID_URL | عنوان URL المحدد ليس عنوان URL صالحًا. |
| INFOLEAK_LOCALHOST_SCAN_NOT_ALLOWED | مسح localhost غير مسموح به. |
| NO_RESPONSE | عنوان URL المحدد غير قابل للوصول. |
| INFOLEAK_PORT_DISALLOWED | عنوان URL المحدد يحتوي على منفذ غير مسموح به. |
| INFOLEAK_DONT_LEAK_USER_CREDS | عنوان URL المحدد يحتوي على بيانات اعتماد مستخدم. |
| INFOLEAK_JSON_DECODE_ERROR | تعذر فك ترميز طلب POST المحدد. |
| INFOLEAK_REDIRECT_ERROR | عنوان URL يقوم بإعادة توجيه محظورة. |
| UNSUPPORTED_PROTOCOL | الموقع يستخدم بروتوكولًا غير مدعوم. |
| FAILED_INIT | فشل الماسح في تهيئة الاتصال |
| URL_MALFORMAT | عنوان URL غير منسق بشكل صحيح |
| COULDNT_RESOLVE_HOST | لم يتم حل اسم المضيف البعيد المحدد |
| COULDNT_CONNECT | فشل الاتصال بالمضيف أو الوكيل |
| REMOTE_ACCESS_DENIED | تم رفض الوصول إلى المورد المحدد في عنوان URL |
| HTTP2_ERROR | تم اكتشاف مشكلة في طبقة تأطير HTTP2 |
| TOO_MANY_REDIRECTS | كان هناك عدد كبير جدًا من عمليات إعادة التوجيه |
| SEND_ERROR | فشل إرسال بيانات الشبكة |
| RECV_ERROR | فشل استقبال بيانات الشبكة |
| BAD_CONTENT_ENCODING | ترميز نقل غير معروف |
| SSL_ENGINE_INITFAILED | فشل بدء تشغيل محرك SSL |
| TIMEOUT | تم الوصول إلى فترة المهلة المحددة وفقًا للشروط |
| CONV_FAILED | فشل تحويل الأحرف |
| REMOTE_FILE_NOT_FOUND | المورد المشار إليه في عنوان URL غير موجود |
| HTTP2_STREAM | خطأ في التدفق في طبقة تأطير HTTP/2 |