
वेब स्कैनर जो लक्ष्य वेबसाइटों पर 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/
पहचाने गए CMS के लिए प्लगइन्स खोजता है। सबसे बड़ी सूची (WordPress) में 980 विभिन्न प्लगइन्स शामिल हैं।
कमजोर और सबसे अधिक उपयोग की जाने वाली JavaScript लाइब्रेरीज़ खोजता है।
ईमेल पते खोजता है। स्पैम और/या सोशल इंजीनियरिंग हमलों के लिए दिलचस्प।
फोन नंबर खोजता है। सोशल इंजीनियरिंग हमलों और/या स्कैम के लिए दिलचस्प।
| Finding | स्कोर (0-100) |
|---------------------+---------------|
| CMS_ONLY | 100 |
| CMS_VERSION | 96 |
| CMS_VERSION_VULN | see below |
| PLUGIN_ONLY | 99 |
| PLUGIN_VERSION | 96 |
| PLUGIN_VERSION_VULN | see below |
| JS_LIB_ONLY | 99 |
| JS_LIB_VERSION | 96 |
| JS_LIB_VULN_VERSION | see below |
| 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 होगा।
इसके अलावा, किसी WordPress वेबसाइट पर jQuery v1.12.4 का खोज सामान्य कमजोर लाइब्रेरी की तरह नहीं मूल्यांकित किया जाएगा। इस खोज का परिणाम 90 का स्कोर होगा, लेकिन प्लेसहोल्डर अभी भी JS_LIB_VULN_VERSION रहेगा क्योंकि यह एक कमजोर लाइब्रेरी है।
आप स्कैनर को POST और GET अनुरोधों के माध्यम से चला सकते हैं।
यदि आप स्कैनर को POST अनुरोध के साथ चलाना चाहते हैं तो आपको पैरामीटर JSON एन्कोडेड प्रारूप में भेजने होंगे:
{
"url": "string",
"dangerLevel": 0,
"callbackurls": [
"string"
],
"userAgent": "string"
}
url वह URL परिभाषित करता है जिसे स्कैन किया जाना चाहिए।
dangerLevel प्रासंगिक नहीं है, बस इसे 0 परिभाषित करें।
callbackurls URL का एक सरणी है। ये 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"
| प्लेसहोल्डर | संदेश |
|---|
| SCAN CMS | |
| CMS_ONLY | प्रयुक्त Content-Management-System {cms} का पता चला। |
| CMS_VERSION | प्रयुक्त Content-Management-System {cms} और इसका संस्करण {version} का पता चला। |
| CMS_VERSION_VULN | कमजोर Content-Management-System {cms} संस्करण {version} का पता चला। |
| SCAN PLUGIN | |
| PLUGIN_ONLY | DOM-नोड {node} में node-content {node_content} के माध्यम से CMS प्लगइन {plugin} का पता चला। |
| PLUGIN_VERSION | DOM-नोड {node} में node-content {node_content} के माध्यम से CMS प्लगइन {plugin} और इसका संस्करण {plugin_version} का पता चला। |
| PLUGIN_VERSION_VULN | DOM-नोड {node} में node-content {node_content} के माध्यम से कमजोर CMS प्लगइन {plugin} और इसका संस्करण {plugin_version} का पता चला। |
| SCAN JS | |
| JS_LIB_ONLY | DOM-नोड {node} में node-content {node_content} के माध्यम से प्रयुक्त JavaScript लाइब्रेरी {js_lib_name} का पता चला। |
| JS_LIB_VERSION | DOM-नोड {node} में node-content {node_content} के माध्यम से प्रयुक्त JavaScript लाइब्रेरी {js_lib_name} और इसका संस्करण {js_lib_version} का पता चला। |
| JS_LIB_VULN_VERSION | DOM-नोड {node} में node-content {node_content} के माध्यम से कमजोर JavaScript लाइब्रेरी {js_lib_name} और इसका संस्करण {js_lib_version} का पता चला। |
| SCAN EMAIL | |
| EMAIL_FOUND | ईमेल पता {email_address} मिला। |
| SCAN PHONE | |
| NUMBER_FOUND | टेलीफोन नंबर {number} मिला। |
| ERRORS | |
| 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 फ्रेमिंग लेयर में स्ट्रीम त्रुटि। |