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

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

الأكثر شعبية

عرض الكل →

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

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

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

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

Abraxas Labs - cakephp-trusted-proxies

abraxaslabs.tech  ·  github.com/abraxas  ·  @abraxas_null  ·  [email protected]  ·  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
تجاوز قائمة ACL لعناوين 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 غير null. تُستخدم عناوين IP المُدرَجة لاحقًا كـ array_diff على سلسلة XFF، وليس كفحص للنظير المتصل.

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

المختبر

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 / بدون ترويسات مُمرَّرة -> 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 فقط. لا ضمان.

تنزيل الأداة