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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
CVE-2023-45503 — مرجع CVE-2023-45503 | Kitploit
أدوات/GitHubGitHub/ally-petitt/cve-2023-45503
تحليل الثغرات الأمنيةالاستغلالاستغلال تطبيقات الويباختبار الاختراقالتعلم والتعليمأمن قواعد البيانات
GitHubally-petitt/cve-2023-45503

CVE-2023-45503

مرجع CVE-2023-45503

عرض المستودع
3منذ 2 سنواتلم تتم المراجعة بعد

الأكثر شعبية

عرض الكل →

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

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

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

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

تفاصيل الثغرة CVE-2023-45503

نظرة عامة

في الإصدارات 1.1.4f والإصدارات السابقة من نظام إدارة المحتوى (CMS) Macrob7 Macs Framework، يؤدي التعامل غير الآمن مع مدخلات المستخدم إلى 16 ثغرة من نوع حقن SQL (SQL Injection). القدرة على تنفيذ استعلامات SQL عشوائية قد تؤدي إلى تسريب بيانات خاصة، بما في ذلك تجزئات كلمات مرور المستخدمين، وإمكانية تعديل بيانات اعتماد المستخدمين الآخرين ومستوى صلاحياتهم. يمكن أن يشمل الأثر تصعيد الصلاحيات واحتمالية تنفيذ تعليمات برمجية عن بُعد (RCE).

يمكن العثور على جدول بيانات يوضح كل نقطة نهاية (endpoint) متأثرة، والمعامل القابل للاستغلال، والدوال القابلة للاستغلال عبر هذا الرابط.

تصنيف CWE: CWE-89: Improper Neutralization of Special Elements used in an SQL Command ('SQL Injection')

أبلغ عنها: Ally Petitt

المنتج المتأثر: Macrob7 Macs CMS

الإصدارات المتأثرة: 1.1.4f والإصدارات السابقة

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

في 16 موضعًا رصدتها، تم استلام مدخلات المستخدم دون تنظيف مناسب (sanitization) أو معالجة بالمعاملات (parameterization) بشكل صحيح. على سبيل المثال، في وظيفة "نسيان كلمة المرور" (Forgot Password) في نظام إدارة المحتوى هذا، يُطلب عنوان بريد إلكتروني.

Application/plugins/CMS/controllers/CMS.php:224

root@kitploit:~
    public function forgotPasswordProcess()
    {
      $this->loadModels();
      $emailAddress = Post::getByKey('emailAddress');

      $user = $this->usersModel->getUserByEmailAddress($emailAddress);

يتم بعد ذلك تمرير عنوان البريد الإلكتروني إلى الدالة getUserByEmailAddress()، والتي تمرر البريد الإلكتروني إلى ، وهي دالة لا توفر حماية صحيحة ضد استعلامات SQL المحقونة.

تنزيل الأداة
selectSingle()

Application/plugins/CMS/models/Users_Model.php:41

root@kitploit:~
    public function getUserByEmailAddress($emailAddress)
    {
       return $this->selectSingle( $this->getCMSTableNameUsers(), array('EmailAddress'=>$emailAddress));
    }

بعد ذلك، تستدعي الدالة selectSingle() الدالة select() مع تمرير مدخلات المستخدم إليها.

Application/core/DB.php:200

root@kitploit:~
    public function selectSingle($tableName, array $where = array(), array $fields = array('*'))
    {
      $return = $this->select($tableName, $where, $fields);

      $single = NULL;

      if( count($return) > 0 )
        $single = $return[0];

      return $single;
    }

تقوم الدالة select() القابلة للاستغلال بعد ذلك بربط (concatenate) المعاملات الممررة إليها في استعلام SQL يتم تنفيذه لاحقًا.

Application/core/DB.php:186

root@kitploit:~
    public function select($tableName, array $where = array(), array $fields = array('*'))
    {      
      $fieldsString = $this->generatePair($fields, ',');
      $whereString = $this->generateKeyValuePair($where, '=', 'AND');

      $sql = 'SELECT '.$fieldsString.' FROM '.$tableName;

      if($whereString !='')
        $whereString = ' WHERE '.$whereString;

      $sql = $sql.' '.$whereString.';';     
      return $this->execute($sql)->fetchAll($this->returnType, $this->className);
    }

بسبب عدم وجود تنظيف للمدخلات والتحقق منها ومعالجتها بالمعاملات (parameterization)، تظل هذه الدالة عرضة لهجمات حقن SQL.

التخفيف

لسوء الحظ، فإن عدم وجود صيانة لنظام إدارة المحتوى هذا يعني عدم توفر تحديث مصحح للثغرة. يمكن للمستخدمين الأفراد تعديل الكود البرمجي لاستخدام استعلامات SQL معتمدة على المعاملات بدلاً من الاعتماد على الربط (concatenation) لتمرير مدخلات المستخدم إلى قاعدة البيانات. تُعد العبارات المجهزة (Prepared Statements) مثالاً على إجراء تخفيفي يمكنه تحقيق ذلك.