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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
cakephp-trusted-proxies — CakePHP 5.4.2 - عالي - عن بعد - وكيل - trustedProxies يحترم X-Forwarded-* من أي REMOTE_ADDR | Kitploit
أدوات/GitHubGitHub/abraxas/cakephp-trusted-proxies
تحليل الثغرات الأمنيةالاستغلالاستغلال تطبيقات الويبالمحاكاة الافتراضية للأمانأمن الويباختبار الاختراق
GitHubabraxas/cakephp-trusted-proxies

cakephp-trusted-proxies

CakePHP 5.4.2 - عالي - عن بعد - وكيل - trustedProxies يحترم X-Forwarded-* من أي REMOTE_ADDR

عرض المستودع
15منذ 6 أياملم تتم المراجعة بعد

الأكثر شعبية

عرض الكل →

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

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

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

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

Abraxas Labs - cakephp-trusted-proxies

abraxaslabs.tech  ·  github.com/abraxas  ·  @abraxas_null  ·  [email protected]  ·  cakephp-trusted-proxies

المقال التقني: https://abraxaslabs.tech/research/cakephp-trusted-proxies

cakephp-trusted-proxies

الفئة: تجاوز إعادة توجيه HTTPS / انتحال IP-host النطاق: عن بُعد

CakePHP 5.4.2 (887b641) - Cake Software Foundation

HttpsEnforcerMiddleware مع trustedProxies => ['10.0.0.1'] يستدعي setTrustedProxies، الذي يضبط trustProxy = true ولا يقارن القائمة بـ REMOTE_ADDR أبدًا. بعد ذلك، تحترم scheme() وhost() وclientIp() ترويسات المهاجم X-Forwarded-Proto / X-Forwarded-For / X-Forwarded-Host / X-Real-IP.

الوسيط الافتراضي لديه trustedProxies بقيمة null ولا يفعّل هذا السلوك. إعداد موازن التحميل الموثّق هو الحالة المكشوفة. يمكن لعميل HTTP غير مصادَق عليه، ليس هو الوسيط المدرج، تجاوز إعادة توجيه HTTPS وانتحال IP العميل وHost.

المعرّفلا يوجد CVE بعد
الفئةتجاوز إعادة توجيه HTTPS / انتحال IP-host
النطاقعن بُعد (HTTP غير مصادَق عليه؛ التطبيق ضبط trustedProxies)
CWECWE-441، CWE-346
CVSSمرتفع: 7.5 CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:H/A:N
المنتجCakePHP
المتأثر5.4.2 (887b641de9f7aba06071f98f17edcbc573cbcf63)
المصادقةلا شيء. التطبيق ضبط HttpsEnforcerMiddleware trustedProxies
الترخيصGNU Affero GPL v3.0
المختبر127.0.0.1 فقط

ما يمكن للمهاجم فعله

يحتاج إلى تطبيق فعّل trustedProxies (عادةً فرض HTTPS عبر وكيل عكسي). لا يحتاج إلى الاتصال من عنوان IP وسيط مدرج.

الصلاحيةالطريقة / نقطة الوصولمُثبت مختبريًا أو مُستنتج
تجاوز إعادة توجيه HTTPS / مسار HSTSGET / عبر HTTP مع X-Forwarded-Proto: httpsمُثبت مختبريًا. 200، scheme=https، دليل في JSON
انتحال clientIp()X-Forwarded-For: 203.0.113.50مُثبت مختبريًا. client_ip=203.0.113.50
انتحال host()X-Forwarded-Host: spoof.invalidمُثبت مختبريًا. host=spoof.invalid
الانتحال عبر X-Real-IPX-Real-IP: 198.51.100.9مُثبت مختبريًا. client_ip=198.51.100.9
تجاوز قائمة التحكم بالوصول IP / حد المعدل المعتمد على clientIp()نفس الانتحالمُستنتج. القيمة الافتراضية remote_addr في RateLimitMiddleware ليست هذه الثغرة
الضابط السلبينفس الترويسات المُمرَّرة على /control (بدون trustedProxies)مُثبت مختبريًا. لا يزال 301 إلى https

مغلق على هذه البقايا: الافتراضي trustedProxies => null؛ REMOTE_ADDR نفسه لا يزال عنوان IP لجسر Docker في المختبر (192.168.208.1، وليس 10.0.0.1 المدرج). ليس RCE. ليس ثغرة cookie-jar.

كيف وجدتها

ثبّتُ cakephp/cakephp 5.4.2. ServerRequest::setTrustedProxies():

public function setTrustedProxies(array $proxies): void
{
    $this->trustedProxies = $proxies;
    $this->trustProxy = true;
    $this->uri = $this->uri->withScheme($this->scheme());
}

يستدعي HttpsEnforcerMiddleware ذلك كلما كانت trustedProxies غير فارغة. تُستخدم عناوين IP المدرجة لاحقًا في array_diff على سلسلة XFF، وليس كفحص للنظير المتصل.

المسارات الخاطئة المسجّلة مسبقًا: اعتبار الوسيط الافتراضي من بقايا هذا (وهو ليس كذلك)؛ ووصف x-forwarded-for في RateLimitMiddleware بأنه نفس الخلل (فقد نقل مخبز 5.4.1 ذلك الافتراضي بالفعل إلى remote_addr)؛ والادعاء بأن REMOTE_ADDR نفسه قد جرى انتحاله. المسرح: صدفة عكسية.

المختبر

python3 cakephp-trusted-proxies-Abraxas-Labs.py

أو

cd lab
./run.sh

Composer cakephp/cakephp 5.4.2 في PHP 8.3. تطبيق صغير: / يستخدم trustedProxies => ['10.0.0.1']؛ بينما /control لا يستخدمه. HTTP عبر loopback على 127.0.0.1:19430.

  1. GET / بدون ترويسات forwarded -> 301 https.
  2. GET /control مع proto/for/host/real-ip -> 301 https.
  3. GET / مع X-Forwarded-Proto: https -> 200، scheme https، trust_proxy=true، REMOTE_ADDR ليس 10.0.0.1.
  4. GET / مع XFF + Host -> client_ip=203.0.113.50، host=spoof.invalid.
  5. GET / مع X-Real-IP -> client_ip=198.51.100.9.
SUCCESS cakephp-trusted-proxies pin=5.4.2 how=app remote-addr=192.168.208.1 listed-proxy=10.0.0.1 proto-bypass=200 control-redirect=301 client-ip=203.0.113.50 host=spoof.invalid x-real-ip=198.51.100.9 CAKEPHP-TRUSTED-PROXIES-WITNESS

الإصلاح

لا يتم اعتماد الرؤوس المُمرَّرة إلا عندما يكون REMOTE_ADDR ضمن قائمة الوكلاء الموثوقين (Symfony isFromTrustedProxy()). يجب ألا تؤدي القائمة الفارغة إلى تفعيل الثقة.

المراجع

  • github.com/cakephp/cakephp وسم 5.4.2 (887b641de9f7aba06071f98f17edcbc573cbcf63)
  • src/Http/ServerRequest.php · src/Http/Middleware/HttpsEnforcerMiddleware.php
  • CWE-441 · CWE-346

الترخيص

GNU Affero GPL v3.0. راجع LICENSE. للاستخدام في مختبر loopback فقط. دون أي ضمان.

تنزيل الأداة