
ماسح ضوئي لإثبات المبدأ (Proof-of-concept) يفحص خوادم Grafana بحثًا عن CVE-2019-15043 عبر التحقق من الإصدار واختبار الوصول غير المصادق إلى واجهة برمجة تطبيقات اللقطات (snapshot API).
فحص إثبات المفهوم للتحقق مما إذا كان خادم Grafana معرضًا لثغرة CVE-2019-15043. يتحقق من رقم إصدار خادم Grafana، ويتحقق مما إذا كانت واجهة API الخاصة باللقطات تسمح بطلبات بدون مصادقة.
ثغرة CVE-2019-15043 هي ثغرة رفض الخدمة (Denial-of-service) موجودة في واجهة API الخاصة بلقطات Grafana.
تم إصلاح هذه الثغرة في الإصدارين 5.4.5 و6.3.4.
تحتاج فقط إلى مكتبة requests.
ثبّتها باستخدام pip3 install requests
$ ./cve-2019-15043.py -h
usage: cve-2019-15043.py [-h] [-u URL] [-c]
For checking if a Grafana instance is vunlerable to CVE-2019-15043
optional arguments:
-h, --help show this help message and exit
-u URL, --url URL URL of the target Grafana instance e.g. '-u
https://localhost:3000'
-c, --check-version Only check the Grafana versio
التحقق من رقم الإصدار فقط:
$ ./cve-2019-15043.py -u http://192.168.3.38:3000 -c
[-] Testing http://192.168.3.38:3000...
[-] Status: 200
[-] Checking for version...
[-] Grafana version appears to be: 6.3.3
[+] Version seems to indicate it might be vulnerable!
$ ./cve-2019-15043.py -u http://192.168.3.38:3000 -c
[-] Testing http://192.168.3.38:3000...
[-] Status: 200
[-] Checking for version...
[-] Grafana version appears to be: 6.3.4
[!] Version seems to indicate it's probably not vulnerable.
التحقق مما إذا كانت API اللقطات تتطلب المصادقة:
$ ./cve-2019-15043.py -u http://192.168.3.38:3000
[-] Testing http://192.168.3.38:3000...
[-] Status: 200
[-] Checking for version...
[-] Grafana version appears to be: 6.3.3
[+] Version seems to indicate it might be vulnerable!
[-] Checking if snapshot api requires authentiation...
[+] Snapshot endpoint doesn't seem to require authentication! Host may be vulnerable.
./cve-2019-15043.py -u http://192.168.3.38:3000
[-] Testing http://192.168.3.38:3000...
[-] Status: 200
[-] Checking for version...
[-] Grafana version appears to be: 6.3.4
[!] Version seems to indicate it's probably not vulnerable.
[-] Checking if snapshot api requires authentiation...
[!] Status: 401
[!] Snapshot endpoint requires authentication! Host not vulnerable.