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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
Azure-APIM-Cross-Tenant-Signup-Bypass — استشارة أمنية: يتيح Azure APIM Developer Portal تسجيل حسابات عبر المستأجرين عن طريق تجاوز قيود التسجيل في UI. أُبلغ إلى MSRC مرتين - وأُغلق باعتباره «حسب التصميم». | Kitploit
أدوات/GitHubGitHub/bountyyfi/azure-apim-cross-tenant-signup-bypass
الاستطلاعتحليل الثغرات الأمنيةاستغلال تطبيقات الويبجمع المعلوماتأمن السحابةسوء التكوينأمن واجهات برمجة التطبيقات
GitHubbountyyfi/azure-apim-cross-tenant-signup-bypass

الأكثر شعبية

عرض الكل →

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

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

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

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

Azure-APIM-Cross-Tenant-Signup-Bypass

استشارة أمنية: يتيح Azure APIM Developer Portal تسجيل حسابات عبر المستأجرين عن طريق تجاوز قيود التسجيل في UI. أُبلغ إلى MSRC مرتين - وأُغلق باعتباره «حسب التصميم».

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

تجاوز تسجيل Azure APIM عبر المستأجرين

الحالة (01.12.2025): ما تزال هذه الثغرة نشطة وقابلة للاستغلال. لم تقم Microsoft بإصلاح هذه المشكلة وتعتبرها "تصميمًا مقصودًا".

استشارة أمنية

GHSA-vcwf-73jp-r7mv

CVE-2025-66390

الملخص

تسمح ثغرة أمنية في بوابة مطوّري Azure API Management (APIM) للمهاجمين بتسجيل حسابات على أي مثيل APIM تم فيه تمكين المصادقة الأساسية، حتى عندما يكون المسؤولون قد عطّلوا تسجيل المستخدمين في واجهة مستخدم البوابة.

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

الجدول الزمني للإفصاح

التاريخالإجراء
2025-09-30اكتشاف الثغرة
2025-09-30إرسال التقرير الأولي إلى MSRC
2025-10-30رد MSRC: تم إغلاقها باعتبارها "ليست ثغرة"
2025-11-01إرسال تقرير ثانٍ إلى MSRC مع تفاصيل إضافية
2025-11-20رد MSRC: تم إغلاقها باعتبارها "تصميمًا مقصودًا"
2025-11-20الإبلاغ إلى CERT-FI
2025-11-26الإفصاح العلني
2025-11-27طلب CVE من MITRE
2026-07-09تم تعيين CVE-2025-66390 من قبل MITRE TL-Root/CNA-LR

تفاصيل الثغرة

المشكلة

عند تكوين Azure APIM مع المصادقة الأساسية لبوابة المطور، يمكن للمسؤولين تعطيل تسجيل المستخدمين من خلال واجهة مستخدم Azure Portal. ومع ذلك، فإن هذا يخفي نموذج التسجيل في واجهة البوابة فقط.

تبقى نقطة نهاية واجهة برمجة تطبيقات التسجيل الأساسية نشطة وتقبل طلبات التسجيل مباشرة، متجاوزةً قيد واجهة المستخدم بالكامل.

السبب الجذري

تتضافر مشكلتان لتكوين هذه الثغرة:

  1. تقييد واجهة المستخدم فقط: تعطيل التسجيل يخفي النموذج في واجهة البوابة فقط. تبقى واجهة برمجة تطبيقات التسجيل الخلفية نشطة وقابلة للوصول.
  2. لا يوجد تحقق من المستأجر: لا تتحقق واجهة برمجة تطبيقات التسجيل من أن الطلب صادر من بوابة المستأجر نفسه. يمكن صياغة الطلبات من أي مصدر للتسجيل على أي مثيل معرّض للخطر.

ناقل الهجوم

يتطلب الهجوم مثيلين من APIM:

  1. مثيل المهاجم: أي بوابة مطور APIM مع تمكين التسجيل (أو مثيل APIM خاص بالمهاجم)
  2. المثيل المستهدف: بوابة مطور APIM الخاصة بالضحية مع "تعطيل" التسجيل في واجهة المستخدم ولكن المصادقة الأساسية ما تزال مُكوّنة

الخطوات:

  1. يصل المهاجم إلى صفحة التسجيل في بوابة مطور APIM الخاصة به (حيث يكون التسجيل ممكّنًا)
  2. يملأ المهاجم نموذج التسجيل ويعترض الطلب (على سبيل المثال، باستخدام Burp Suite)
  3. يغيّر المهاجم ترويسة Host من مثيله إلى المثيل المستهدف
  4. يرسل المهاجم الطلب المعدّل
  5. يتم إنشاء الحساب على المثيل المستهدف على الرغم من أن التسجيل "معطّل" في وحدة التحكم الإدارية لديهم
  6. يحصل المهاجم على وصول إلى بوابة المطور المستهدفة كمستخدم مسجّل

تفصيل تقني أساسي: يعمل التجاوز عبر المستأجرين عن طريق التلاعب بترويسة Host في طلب POST الخاص بالتسجيل. تعالج نقطة النهاية /signup الطلبات استنادًا إلى ترويسة Host دون التحقق من حدود المستأجرين.

مثال على التلاعب بالطلب:

root@kitploit:~
POST /signup HTTP/1.1
Host: target-apim.developer.azure-api.net   <-- Changed from attacker's instance
Origin: https://attacker-apim.developer.azure-api.net
Content-Type: application/json

{"challenge":{...},"signupData":{"email":"[email protected]",...}}

المشكلة الأساسية: تعطيل التسجيل في واجهة المستخدم لا يعطّل واجهة برمجة التطبيقات الأساسية. تقبل نقطة نهاية واجهة برمجة التطبيقات الطلبات عبر المستأجرين استنادًا إلى ترويسة Host.

التأثير

  • إنشاء حسابات عبر المستأجرين - التسجيل على أي مثيل APIM مع تمكين المصادقة الأساسية
  • تجاوز الضوابط الإدارية - قيود التسجيل غير فعّالة
  • الوصول إلى توثيقات واجهات برمجة التطبيقات التي قد تحتوي على معلومات داخلية حساسة
  • إمكانية طلب مفاتيح اشتراك واجهات برمجة التطبيقات اعتمادًا على تكوين البوابة
  • كشف البوابة الداخلية - يمكن للمهاجمين الخارجيين التسجيل على بوابات "داخلية"

التكوينات المتأثرة

يكون مثيل APIM الخاص بك معرّضًا للخطر إذا:

  • تم تكوين مزود هوية المصادقة الأساسية (حتى إذا كان التسجيل "معطّلًا" في واجهة المستخدم)
  • تم نشر بوابة المطور وكانت قابلة للوصول

مثيل APIM الخاص بك ليس معرّضًا للخطر إذا:

  • تمت إزالة مزود هوية المصادقة الأساسية بالكامل (وليس مجرد تعطيل التسجيل)
  • تم تكوين مصادقة Azure AD / OAuth فقط
  • لم يتم نشر بوابة المطور أو كانت معطّلة

نقطة أساسية: تعطيل التسجيل في واجهة مستخدم Azure Portal ليس كافيًا. يجب إزالة مزود هوية المصادقة الأساسية بالكامل لمنع تجاوز التسجيل عبر المستأجرين.

خصائص موارد Azure

استخدم قيم الخصائص هذه لتحديد مثيلات APIM المعرّضة للخطر عبر Azure Resource Graph أو قوالب ARM أو Azure Policy.

خصائص التكوين المعرّض للخطر

فحص مزود الهوية (مورد فرعي)

مزود هوية المصادقة الأساسية هو مورد منفصل ضمن مثيل APIM:

root@kitploit:~
Resource Type: Microsoft.ApiManagement/service/identityProviders
Name: basic

معرّض للخطر إذا كان موجودًا: وجود مورد مزود هوية basic يشير إلى أن المصادقة الأساسية مُكوّنة.

إعدادات تسجيل البوابة (مورد فرعي)

root@kitploit:~
Resource Type: Microsoft.ApiManagement/service/portalsettings/signup
Property: properties.enabled
الخاصيةالقيمةالمعنى
properties.enabledtrueالتسجيل ظاهر في واجهة المستخدم
properties.enabledfalseالتسجيل مخفي في واجهة المستخدم (واجهة برمجة التطبيقات ما تزال تعمل إذا كانت المصادقة الأساسية موجودة!)

استعلام Azure Resource Graph

استخدم هذا الاستعلام للعثور على مثيلات APIM التي يحتمل أن تكون معرّضة للخطر:

root@kitploit:~
resources
| where type == "microsoft.apimanagement/service"
| where properties.developerPortalStatus == "Enabled"
| where sku.name != "Consumption"
| project name, resourceGroup, subscriptionId, location, sku.name, properties.developerPortalStatus

للتحقق من مزودي هوية المصادقة الأساسية:

root@kitploit:~
resources
| where type == "microsoft.apimanagement/service/identityproviders"
| where name endswith "/basic"
| project apimInstance=tostring(split(id, "/providers/Microsoft.ApiManagement/service/")[1]), resourceGroup, subscriptionId

أوامر Azure CLI

تحقق من حالة بوابة المطور:

root@kitploit:~
az apim show --name <apim-name> --resource-group <rg-name> --query "{name:name, portalStatus:developerPortalStatus, sku:sku.name}"

اسرد مزودي الهوية (تحقق من وجود 'basic'):

root@kitploit:~
az apim identity-provider list --resource-group <rg-name> --service-name <apim-name> --query "[].name"

تحقق من إعدادات التسجيل:

root@kitploit:~
az rest --method get --url "https://management.azure.com/subscriptions/<sub-id>/resourceGroups/<rg-name>/providers/Microsoft.ApiManagement/service/<apim-name>/portalsettings/signup?api-version=2022-08-01" --query "properties.enabled"

جدول الملخص

التركيبة الحرجة: يكون المثيل معرّضًا لتجاوز التسجيل عندما:

  • properties.developerPortalStatus == 'Enabled' و
  • مورد identityProviders/basic موجود و
  • portalsettings/signup.properties.enabled == false

تحديد مثيلات APIM في مؤسستك

إخلاء مسؤولية قانوني: المعلومات أدناه مقدمة فقط لتحديد وتأمين مثيلات Azure APIM الخاصة بمؤسستك. الوصول غير المصرح به إلى أنظمة الكمبيوتر غير قانوني. اختبر فقط الأنظمة التي تملكها أو لديك تفويض كتابي صريح لاختبارها.

Google Dorks

العثور على بوابات مع تسجيل المصادقة الأساسية (الأكثر احتمالًا للتعرّض للخطر):

root@kitploit:~
site:developer.azure-api.net "Sign up" "Email" "Password"
root@kitploit:~
site:developer.azure-api.net "Create account" "Username"
root@kitploit:~
site:developer.azure-api.net inurl:/signup "register"

العثور على بوابات تحتوي على صفحات تسجيل دخول (يشير إلى أن المصادقة الأساسية قد تكون مُكوّنة):

root@kitploit:~
site:developer.azure-api.net "Sign in" "Email" "Password" -"Azure AD" -"Microsoft account"
root@kitploit:~
site:developer.azure-api.net inurl:/signin "password"

العثور على بوابات مطور تحتوي على توثيقات واجهات برمجة تطبيقات مكشوفة:

root@kitploit:~
site:developer.azure-api.net inurl:/apis "Subscribe"
root@kitploit:~
site:developer.azure-api.net "API" "Products" "Subscribe"

اكتشاف عام:

root@kitploit:~
site:*.developer.azure-api.net
root@kitploit:~
inurl:developer.azure-api.net "Developer Portal"

Shodan

العثور على بوابات مطور APIM:

root@kitploit:~
http.title:"Developer Portal" http.html:"azure-api.net"
root@kitploit:~
ssl.cert.subject.cn:"*.developer.azure-api.net"
root@kitploit:~
http.html:"developerPortal" http.html:"azure"

الفحص الجماعي باستخدام Nuclei

بعد اكتشاف الأهداف، افحصها باستخدام Nuclei:

root@kitploit:~
# Save targets to file
echo "https://target1.developer.azure-api.net" > targets.txt
echo "https://target2.developer.azure-api.net" >> targets.txt

# Mass scan
nuclei -t azure-apim-signup-bypass.yaml -l targets.txt -o vulnerable.txt

اكتشاف الأصول لمؤسستك

إذا كانت مؤسستك تستخدم Azure APIM، يمكنك تحديد مثيلاتك الخاصة باستخدام:

Azure Portal:

  • انتقل إلى Azure Portal ← جميع الموارد ← صفِّ حسب "API Management"
  • أو استخدم مستكشف Azure Resource Graph مع الاستعلامات الواردة في القسم السابق

Azure CLI (لاشتراكاتك):

root@kitploit:~
# List all APIM instances in your subscriptions
az apim list --query "[].{name:name, resourceGroup:resourceGroup, url:developerPortalUrl}"

التحقق من مثيلاتك الخاصة

استخدم هذه الطرق للتحقق مما إذا كانت مثيلات APIM الخاصة بمؤسستك معرّضة للخطر:

باستخدام سكربت التحقق:

root@kitploit:~
# Check your own instance
python apim_vuln_checker.py https://YOUR-ORG.developer.azure-api.net

# With Azure RM property checks (recommended for internal audits)
python apim_vuln_checker.py --azure -s YOUR-SUB-ID -g YOUR-RG -n YOUR-APIM-NAME

باستخدام Nuclei لعمليات التدقيق الأمني الداخلية:

root@kitploit:~
# Scan your organization's APIM instances
nuclei -t azure-apim-signup-bypass.yaml -u https://YOUR-ORG.developer.azure-api.net

مؤشرات التكوين المعرّض للخطر

عند تدقيق مثيلاتك الخاصة، ابحث عن:

  • تعرض بوابة المطور خيار "Sign up" مع حقلي Email/Password (وليس فقط "Sign in with Microsoft")
  • مزود هوية المصادقة الأساسية مُكوّن في Azure Portal
  • التسجيل "معطّل" في واجهة المستخدم ولكن مزود المصادقة الأساسية ما يزال موجودًا

مؤشرات عدم التعرّض للخطر:

  • خيارات "Sign in with Microsoft" أو "Azure AD" فقط هي الظاهرة
  • لا يوجد مزود هوية مصادقة أساسية مُكوّن
  • بوابة المطور معطّلة بالكامل

اختبار الاختراق المصرح به

إذا كنت مختصًا أمنيًا تجري اختبارات مصرحًا بها:

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

الإفصاح المسؤول

إذا اكتشفت مثيل APIM تابعًا لجهة خارجية معرّضًا للخطر:

  1. لا تحاول إنشاء حسابات أو الوصول إلى النظام
  2. اتصل بفريق الأمان في المنظمة مباشرة
  3. زوّدهم بهذه الاستشارة حتى يتمكنوا من المعالجة
  4. امنح وقتًا معقولًا للمعالجة قبل أي إفصاح

سكربت التحقق

يتم توفير سكربت Python للتحقق مما إذا كان مثيل APIM الخاص بك معرّضًا للخطر.

التثبيت

root@kitploit:~
# Basic installation (HTTP probe only)
pip install requests colorama

# Full installation (includes Azure RM property checks)
pip install requests colorama azure-identity

الاستخدام

يدعم السكربت وضعين:

  1. HTTP Probe - فحص خارجي بنمط الصندوق الأسود عبر نقاط نهاية بوابة المطور
  2. Azure RM Check - فحص داخلي للخصائص عبر واجهة Azure Resource Manager API
root@kitploit:~
# HTTP probe (external check)
python apim_vuln_checker.py https://your-apim.developer.azure-api.net

# Azure RM property check (requires az login)
python apim_vuln_checker.py --azure -s <subscription-id> -g <resource-group> -n <apim-name>

# Combined check (both HTTP probe and Azure RM)
python apim_vuln_checker.py https://your-apim.developer.azure-api.net \
    --azure -s <subscription-id> -g <resource-group> -n <apim-name>

# Verbose output
python apim_vuln_checker.py https://your-apim.developer.azure-api.net -v

# Skip SSL verification
python apim_vuln_checker.py https://your-apim.developer.azure-api.net -k

# JSON output
python apim_vuln_checker.py https://your-apim.developer.azure-api.net --json

فحوصات خصائص Azure RM

عند استخدام وضع --azure، يستعلم السكربت مباشرة من واجهة Azure Resource Manager API للتحقق من:

الخاصية

المتطلبات الأساسية لوضع Azure RM:

  1. ثبّت azure-identity: pip install azure-identity
  2. سجّل الدخول إلى Azure: az login
  3. تأكد من أن لديك وصول Reader إلى مورد APIM

مثال على المخرجات

root@kitploit:~
   ___                 __              ____      
  / _ )___  __ _____  / /___ ____ __  / __ \__ __
 / _  / _ \/ // / _ \/ __/ // / // / / /_/ / // /
/____/\___/\_,_/_//_/\__/\_, /\_, /  \____/\_, / 
                        /___//___/        /___/    
  
    Author: Mihalis Haatainen, Bountyy Oy - www.bountyy.fi

======================================================================
Azure APIM Vulnerability Checker
Cross-Tenant Signup Bypass Detection
======================================================================

[?] Checking signup endpoint accessibility...
[i] Signup endpoint is accessible
[?] Checking if Basic Auth signup API is accessible...
[!] Basic Auth signup API ACTIVE (captcha validation)
[?] Checking if signup is hidden/disabled in UI...
[i] Signup page returns 404 (hidden in UI)

======================================================================
VULNERABILITY ASSESSMENT RESULTS
======================================================================

Target: https://example.developer.azure-api.net

Risk Level: CRITICAL - VULNERABLE TO SIGNUP BYPASS

Detailed Checks:

  [!] signup_ui: Signup endpoint is accessible
  [!] basic_auth_api: Basic Auth signup API ACTIVE (captcha validation)
  [+] signup_ui_hidden: Signup page returns 404 (hidden in UI)

Recommendations:

CRITICAL: SIGNUP BYPASS VULNERABILITY CONFIRMED

The Basic Auth signup API is accessible even though UI hides signup.
Attackers can register accounts by calling the API directly.

Immediate actions:
  1. DISABLE Basic Authentication in Azure Portal immediately
  2. Audit all developer portal user accounts for unauthorized signups
  3. Review user creation logs - check for API-based registrations
  4. Implement Azure AD authentication only

قالب Nuclei

يتم توفير قالب Nuclei للفحص الآلي.

الاستخدام

root@kitploit:~
# Single target
nuclei -t azure-apim-signup-bypass.yaml -u https://target.developer.azure-api.net

# Multiple targets from file
nuclei -t azure-apim-signup-bypass.yaml -l targets.txt

# With proxy (for debugging)
nuclei -t azure-apim-signup-bypass.yaml -u https://target.developer.azure-api.net -proxy http://127.0.0.1:8080

# Skip SSL verification
nuclei -t azure-apim-signup-bypass.yaml -u https://target.developer.azure-api.net -insecure

تفاصيل القالب

  • يرسل طلب POST إلى نقطة نهاية /signup مع بيانات captcha اختبارية
  • يكتشف واجهة برمجة تطبيقات التسجيل النشطة من خلال التحقق من استجابات أخطاء captcha/التحقق
  • درجة CVSS: 6.5 (متوسطة-عالية)
  • CWE-284: التحكم غير السليم في الوصول

التخفيف

إجراءات فورية

  1. قم بإزالة مزود هوية المصادقة الأساسية بالكامل في Azure Portal:
  • انتقل إلى مثيل APIM الخاص بك
  • اذهب إلى Developer Portal ← Identities
  • احذف مزود هوية "Username and password" بالكامل
  • ملاحظة: مجرد تعطيل التسجيل في واجهة المستخدم ليس كافيًا
  1. دقق الحسابات الموجودة:
  • راجع جميع حسابات مستخدمي بوابة المطور
  • ابحث عن الحسابات التي تم إنشاؤها عبر واجهة برمجة التطبيقات (تحقق من الطوابع الزمنية وأنماط الإنشاء)
  • أزل أي حسابات غير مصرح بها
  1. فعّل مصادقة Azure AD:
  • قم بتكوين Azure AD كمزود هوية وحيد
  • يفرض هذا حدود المستأجرين المناسبة

توصيات طويلة الأجل

  • استخدم مصادقة Azure AD حصريًا
  • لا تعتمد على قيود التسجيل على مستوى واجهة المستخدم
  • راقب نشاط تسجيل بوابة المطور
  • دقق حسابات مستخدمي البوابة بانتظام

استجابة Microsoft

تم إخطار مركز استجابة أمان Microsoft (MSRC) مرتين بشأن هذه الثغرة. تم إغلاق التقريرين مع التحديد التالي:

"تصميم مقصود"

لا يعتبر MSRC هذه ثغرة أمنية على الرغم من تجاوز الضوابط الإدارية والآثار عبر المستأجرين.

الملفات

  • apim_vuln_checker.py - سكربت التحقق من الثغرة بلغة Python
  • azure-apim-signup-bypass.yaml - قالب Nuclei للفحص الآلي
  • README.md - هذا الملف

المؤلف

Mihalis Haatainen
Bountyy Oy - شركة فنلندية لاختبار الاختراق وأبحاث الأمن السيبراني

  • الموقع الإلكتروني: www.bountyy.fi

الترخيص

تم إصدار هذه الاستشارة والأدوات المرتبطة بها لأغراض دفاعية. استخدمها بمسؤولية.

MIT License - راجع ملف LICENSE للحصول على التفاصيل.

المراجع

  • مقال المدونة: عندما لا يعني "معطّل" معطّلًا
  • وثائق Azure API Management
  • نظرة عامة على بوابة مطور APIM
تنزيل الأداة
مسار الخاصية
القيمة المعرّضة
الوصف
properties.developerPortalStatusEnabledبوابة المطور قابلة للوصول
sku.nameDeveloper, Basic, Standard, Premiumالطبقات غير الاستهلاكية (طبقة Consumption لها ميزات بوابة محدودة)
الشرطالخاصية/الموردالقيمة المعرّضة
البوابة مفعّلةproperties.developerPortalStatus== 'Enabled'
SKU غير استهلاكيsku.name!= 'Consumption'
المصادقة الأساسية موجودةمورد identityProviders/basicالمورد موجود
التسجيل مخفي (التجاوز ممكن)portalsettings/signup.properties.enabled== false (مع المصادقة الأساسية)
القيمة المعرّضة
properties.developerPortalStatus== 'Enabled'
sku.name!= 'Consumption'
مورد identityProviders/basicموجود
portalsettings/signup.properties.enabled== false