Skip to content
KitploitKITPLOIT
FerramentasExploitsBlog
Log in
Enviar
FerramentasExploitsBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

FeedsContatoPrivacidade© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
cakephp-trusted-proxies — CakePHP 5.4.2 - Alto - Remoto - Proxy - trustedProxies honra X-Forwarded-* de qualquer REMOTE_ADDR | Kitploit
Ferramentas/GitHubGitHub/abraxas/cakephp-trusted-proxies
Análise de VulnerabilidadesExploraçãoExploração de Aplicações WebVirtualização para SegurançaSegurança WebTestes de Penetração
GitHubabraxas/cakephp-trusted-proxies

cakephp-trusted-proxies

CakePHP 5.4.2 - Alto - Remoto - Proxy - trustedProxies honra X-Forwarded-* de qualquer REMOTE_ADDR

Ver Repositório
1há 2 diasAinda não revisado

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar

Abraxas Labs - cakephp-trusted-proxies

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

cakephp-trusted-proxies

Classe: Bypass de redirecionamento HTTPS / spoof de IP-host Alcance: Remoto

CakePHP 5.4.2 (887b641) - Cake Software Foundation

HttpsEnforcerMiddleware com trustedProxies => ['10.0.0.1'] chama setTrustedProxies, que define trustProxy = true e nunca compara a lista com REMOTE_ADDR. Depois disso, scheme(), host() e clientIp() honram X-Forwarded-Proto / X-Forwarded-For / X-Forwarded-Host / X-Real-IP do atacante.

O middleware padrão tem trustedProxies nulo e não habilita isso. A configuração documentada de load-balancer é o caso exposto. Um cliente HTTP não autenticado que não é o proxy listado pode pular o redirecionamento HTTPS e falsificar o IP do cliente e o Host.

IDsem CVE ainda
ClasseBypass de redirecionamento HTTPS / spoof de IP-host
AlcanceRemoto (HTTP não autenticado; app definiu trustedProxies)
CWECWE-441, CWE-346
CVSSAlto: 7.5 CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:H/A:N
ProdutoCakePHP
Afetado5.4.2 (887b641de9f7aba06071f98f17edcbc573cbcf63)
Authnenhuma. App definiu HttpsEnforcerMiddleware trustedProxies
LicençaGNU Affero GPL v3.0
Labapenas 127.0.0.1

O que um atacante pode fazer

Precisa de um app que tenha habilitado trustedProxies (típico de enforce de HTTPS por reverse-proxy). Não precisa conectar de um IP de proxy listado.

PrivilégioMétodo / sinkComprovado em lab ou inferido
Pular redirecionamento HTTPS / caminho HSTSGET / HTTP com X-Forwarded-Proto: httpsComprovado em lab. 200, scheme=https, witness em JSON
Falsificar clientIp()X-Forwarded-For: 203.0.113.50Comprovado em lab. client_ip=203.0.113.50
Falsificar host()X-Forwarded-Host: spoof.invalidComprovado em lab. host=spoof.invalid
Falsificar via X-Real-IPX-Real-IP: 198.51.100.9Comprovado em lab. client_ip=198.51.100.9
Burlar ACL de IP / rate limit baseado em clientIp()Mesmo spoofInferido. O padrão remote_addr do RateLimitMiddleware não é este bug
Controle negativoMesmos cabeçalhos encaminhados em /control (sem trustedProxies)Comprovado em lab. Ainda 301 para https

Fechado neste resíduo: padrão trustedProxies => null; o próprio REMOTE_ADDR ainda é o IP da bridge do Docker no lab (192.168.208.1, não o listado 10.0.0.1). Não é RCE. Não é bug de cookie-jar.

Como eu encontrei

Fixe em 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 chama isso sempre que trustedProxies é não nulo. Os IPs listados são usados depois como um array_diff na cadeia XFF, não como uma verificação do peer que conecta.

Caminhos errados já registrados: tratar o middleware padrão como este resíduo (não é); chamar o x-forwarded-for do RateLimitMiddleware do mesmo bug (a bakery 5.4.1 já moveu esse padrão para remote_addr); afirmar que o próprio REMOTE_ADDR foi falsificado. Teatro: um reverse shell.

Lab

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

ou

cd lab
./run.sh

Composer cakephp/cakephp 5.4.2 em PHP 8.3. App mínimo: / usa trustedProxies => ['10.0.0.1']; /control não. HTTP em loopback em 127.0.0.1:19430.

  1. GET / sem cabeçalhos encaminhados -> 301 https.
  2. GET /control com proto/for/host/real-ip -> 301 https.
  3. GET / com X-Forwarded-Proto: https -> 200, scheme https, trust_proxy=true, REMOTE_ADDR não é 10.0.0.1.
  4. GET / com XFF + Host -> client_ip=203.0.113.50, host=spoof.invalid.
  5. GET / com 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

A correção

Só honrar cabeçalhos encaminhados quando REMOTE_ADDR estiver na lista de trusted-proxy (Symfony isFromTrustedProxy()). Lista vazia não deve habilitar a confiança.

Referências

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

Licença

GNU Affero GPL v3.0. Veja LICENSE. Apenas lab em loopback. Sem garantia.

Baixar ferramenta