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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
POC-CVE-2022-30600 — إثبات مفهوم لـ CVE-2022-30600 | Kitploit
أدوات/GitHubGitHub/boonjune/poc-cve-2022-30600
هجمات كلمات المرورتحليل الثغرات الأمنيةالاستغلالاستغلال تطبيقات الويباختبار الاختراقالمصادقة
GitHubboonjune/poc-cve-2022-30600

POC-CVE-2022-30600

إثبات مفهوم لـ CVE-2022-30600

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

الأكثر شعبية

عرض الكل →

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

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

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

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

إثبات المفهوم لـ CVE-2022-30600

نظرة عامة

يحتوي هذا المستودع على تطبيقين لإثبات المفهوم الذي يستغل CVE-2022-30600.

CVE-2022-30600 هي ثغرة أمنية تسمح للمهاجم بتجاوز حد قفل الحساب داخل تطبيق moodle web.

كما هو موضح في الإدخال التالي في قاعدة بيانات NVD https://nvd.nist.gov/vuln/detail/CVE-2022-30600، من المعروف أن الإصدارات التالية معرضة لهذا الاستغلال.

3.9 - 3.9.13

3.10 - 3.10.10

3.11 - 3.11.6

تفاصيل الهجوم

كما هو موضح في الالتزام المستخدم لتصحيح هذه الثغرة، تكمن المشكلة في المنطق المستخدم للوصول إلى قيمة login_failed_count وزيادتها في قاعدة البيانات.

https://git.moodle.org/gw?p=moodle.git;a=commitdiff;h=59b5858da200f63ecb59a9113af2b99ef1496fe5;hp=a0f47c8bc4d6f5971025de7d63f22475701d2f86

في حالة حدوث أكثر من طلب تسجيل دخول متزامن واحد، فقد يفشل تطبيق moodle web في التحقق بشكل صحيح من قيمة تسجيل الدخول وتحديثها داخل التطبيق. ويؤدي ذلك إلى احتساب فشلين أو أكثر في تسجيل الدخول كفشل واحد فقط.

لفهم ذلك بشكل أفضل، يوضح الرسم البياني أدناه تحليلًا عالي المستوى لطلب تسجيل دخول فاشل من منظور العميل وتطبيق الويب وقاعدة البيانات.

root@kitploit:~
sequenceDiagram 
    participant C as Client 
    participant W as Webapp 
    participant D as Database 
    C->>W: Login Request 
    W->>D: Requests failed_login_attempt 
    D->>W: failed_login_attempt = 0 
    W->>W: local failed_login_attempt  = 0 
    W->>W: local failed_login_attempt  = 1 
    W->>D: failed_login_attempt = 1 
    W->>C: Login Failed

النتيجة هي أن قيمة failed_login_attempt في قاعدة البيانات صحيحة وستقوم محاولات تسجيل الدخول اللاحقة بتحديث القيمة بشكل صحيح.

إذا أرسل المهاجم عددًا من طلبات تسجيل الدخول المتزامنة، فستحدث المشكلة التالية.

root@kitploit:~
sequenceDiagram 
    participant C as Client 
    participant W as Webapp 
    participant D as Database 
    C->>W: Login Request (session 1) 
    C->>W: Login Request (session 2) 
    W->>D: Requests failed_login_attempt (session 1) 
    W->>D: Requests failed_login_attempt (session 2) 
    D->>W: failed_login_attempt = 0 (session 1) 
    D->>W: failed_login_attempt = 0 (session 2) 
    W->>W: local failed_login_attempt = 0 (session 1) 
    W->>W: local failed_login_attempt = 0 (session 2) 
    W->>W: local failed_login_attempt = 1 (session 1) 
    W->>W: local failed_login_attempt = 1 (session 2) 
    W->>D: failed_login_attempt = 1 (session 1) 
    W->>D: failed_login_attempt = 1 (session 2) 
    W->>C: Login Failed (session 1) 
    W->>C: Login Failed (session 2)

نتيجة هذا التفاعل هي أن قيمة قاعدة البيانات failed_login_attempt تزداد بمقدار 1 فقط على الرغم من حدوث طلبي تسجيل دخول فاشلين. يمكن توسيع نطاق ذلك إلى مئات الطلبات، وتكون الحدود هي عدد الطلبات المتزامنة التي يمكن للعميل إرسالها وعدد الطلبات التي يمكن لخادم الويب إدارتها بشكل متزامن.

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

تنفيذ Python3

الوصف

poc.py هو تنفيذ بايثون 3 لهذا الهجوم. يستخدم الخيوط (threads) من أجل تنفيذ الطلبات المتزامنة. على الرغم من أن إثبات المفهوم هذا يعمل، إلا أن قفل المفسر العام (GIL) الموجود في بايثون 3 يعيق فائدة استخدام خيوط متعددة في هذه الظروف. أوصي بشدة باستخدام تنفيذ C++ لأنه يعمل بشكل أفضل عند تنفيذ الهجوم على عميل واحد.

الاستخدام

poc.py [-h] -u USERNAME -url TARGET -w WORDLIST -t THREADS [-a ATTEMPTS] [-d DELAY]

options: -h, --help
 يعرض رسالة المساعدة هذه
-u USERNAME, --username USERNAME
 اسم المستخدم للحساب المستهدف
-url TARGET, --target TARGET
 عنوان URL الأساسي لتطبيق moodle web المستهدف
-w WORDLIST, --wordlist WORDLIST
 المسار إلى ملف قائمة الكلمات المستخدمة
-t THREADS, --threads THREADS
 عدد الخيوط التي سيتم إنشاؤها لكل محاولة
-a ATTEMPTS, --attempts ATTEMPTS
 عدد المحاولات التي ترغب في القيام بها. القيمة الافتراضية هي 1
-d DELAY, --delay DELAY  هذا هو عدد الثواني بين كل محاولة. القيمة الافتراضية هي 2

مثال

python3 poc.py -u admin -url https://moodle/ -w /usr/share/wordlists/rockyou.txt -t 15 -a 8

الهدف : https://moodle/
اسم مستخدم الحساب : admin
قائمة الكلمات : /usr/share/wordlists/rockyou.txt
الخيوط : سيتم إجراء 15 طلب تسجيل دخول في كل محاولة
المحاولات : سيتكرر الهجوم 8 مرات بإجمالي.

في هذا المثال، سيتم إجراء 120 (8 * 15) طلب تسجيل دخول. سيكون هناك تأخير لمدة ثانيتين بين كل محاولة

تنفيذ C++

الوصف

poc.cpp هو تنفيذ C++ للهجوم الذي يستخدم مكتبة curl لتنفيذ الهجوم. وبالتالي، يحتاج إلى بعض علامات المترجم (compiler flags) لكي يتم تجميع التطبيق. بشكل عام، يعمل هذا التنفيذ بشكل أفضل من إصدار بايثون 3 حيث أن الخيوط قادرة على استخدام جميع أنوية جهاز العميل مما يسمح باتصالات متزامنة أكثر في وقت أقصر. هذا يعني أن الاستغلال قادر على العمل بشكل أكثر اتساقًا.

علامات المترجم

g++ poc.cpp -o poc -lcurl

الاستخدام

Usage: poc [OPTION...]
-a, --attempts

 عدد مرات تنفيذ الهجوم.
-t, --threads

 عدد الخيوط المستخدمة في كل محاولة.
-n, --username
 مستخدم الحساب الذي تستهدفه
-u, --URL
 عنوان URL الأساسي لتطبيق moodle web
-d, --delay
 التأخير الزمني بين المحاولات. القيمة الافتراضية هي 5
-v, --version
 إظهار الإصدار
-h, --help
 عرض رسالة المساعدة
-w, --wordlist arg
 قائمة كلمات كلمات المرور.

مثال

./poc -w /usr/share/wordlists/rockyou.txt -u https://moodle/ -n admin -a 3 -t 5 -d 2

قائمة الكلمات : /usr/share/wordlists/rockyou.txt
عنوان URL : https://moodle/
اسم مستخدم الحساب : admin
المحاولات : سيتم إجراء 3 محاولات
الخيوط : سيتم استخدام 5 خيوط في كل محاولة
التأخير : سيكون هناك تأخير لمدة ثانيتين بين كل محاولة

بيئة الاختبار

من أجل تطوير واختبار وتصحيح هذه النصوص البرمجية، قمت بإنشاء آلة افتراضية. استخدمت هذه الآلة الافتراضية البرامج والإصدارات التالية.

Moodle 3.9.0 PHP 7.2.34 MySQL 8.0.30 Ubuntu 5.15.0-41-generic Apache 2.4.52

إشعار

أنا لا أقر باستخدام كود المصدر الخاص بي في أنشطة غير قانونية.

تنزيل الأداة