Skip to content
KitploitKITPLOIT
도구익스플로잇블로그
Log in
제출
도구익스플로잇블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

피드문의개인정보© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
cakephp-trusted-proxies — CakePHP 5.4.2 - 높음 - 원격 - 프록시 - trustedProxies가 모든 REMOTE_ADDR의 X-Forwarded-*를 신뢰함 | Kitploit
도구/GitHubGitHub/abraxas/cakephp-trusted-proxies
Vulnerability AnalysisExploitationWeb Application ExploitationSecurity VirtualizationWeb SecurityPenetration Testing
GitHubabraxas/cakephp-trusted-proxies

cakephp-trusted-proxies

CakePHP 5.4.2 - 높음 - 원격 - 프록시 - trustedProxies가 모든 REMOTE_ADDR의 X-Forwarded-*를 신뢰함

저장소 보기
12일 전아직 검토되지 않음

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

Abraxas Labs - cakephp-trusted-proxies

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

cakephp-trusted-proxies

분류: HTTPS 리다이렉트 우회 / IP-호스트 스푸핑 도달 범위: 원격

CakePHP 5.4.2 (887b641) - Cake Software Foundation

trustedProxies => ['10.0.0.1']로 설정된 HttpsEnforcerMiddleware는 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를 스푸핑할 수 있다.

ID아직 CVE 없음
분류HTTPS 리다이렉트 우회 / IP-호스트 스푸핑
도달 범위원격 (인증되지 않은 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 리다이렉트 / HSTS 경로 건너뛰기GET / HTTP with X-Forwarded-Proto: https랩 입증. 200, scheme=https, JSON에 witness
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-IP를 통한 스푸핑X-Real-IP: 198.51.100.9랩 입증. client_ip=198.51.100.9
clientIp()에 기반한 IP ACL / 속도 제한 우회동일한 스푸핑추론. RateLimitMiddleware 기본 remote_addr는 이 버그가 아님
음성 대조/control에 동일한 전달 헤더 (no trustedProxies)랩 입증. 여전히 https로 301

이 잔여 사항에서 종료됨: 기본 trustedProxies => null; REMOTE_ADDR 자체는 랩에서 여전히 Docker 브리지 IP(192.168.208.1, 나열된 10.0.0.1이 아님). RCE 아님. 쿠키 항아리 버그 아님.

발견 방법

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는 나중에 XFF 체인에 대한 array_diff로 사용되며, 연결 피어에 대한 검사로 사용되지 않는다.

이미 기록된 잘못된 방향: 기본 미들웨어를 이 잔여 사항으로 취급(그렇지 않음); RateLimitMiddleware x-forwarded-for를 동일한 버그라고 부르기(5.4.1 bakery가 이미 해당 기본값을 remote_addr로 이동함); REMOTE_ADDR 자체가 스푸핑되었다고 주장. 연극: 리버스 셸.

랩

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

또는

cd lab
./run.sh

PHP 8.3에서 Composer cakephp/cakephp 5.4.2. 작은 앱: /는 trustedProxies => ['10.0.0.1'] 사용; /control은 사용하지 않음. 127.0.0.1:19430에서 루프백 HTTP.

  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 참조. 루프백 랩 전용. 보증 없음.

도구 다운로드