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

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

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

피드문의개인정보© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
cakephp-attachment-crlf — CakePHP 5.4.2 - 높음 - 원격 - CRLF - 첨부 파일 Content-Type 및 Content-ID 잔여물 | Kitploit
도구/GitHubGitHub/abraxas/cakephp-attachment-crlf
Vulnerability AnalysisExploitationWeb Application ExploitationSecurity VirtualizationWeb SecurityPenetration Testing
GitHubabraxas/cakephp-attachment-crlf

cakephp-attachment-crlf

CakePHP 5.4.2 - 높음 - 원격 - CRLF - 첨부 파일 Content-Type 및 Content-ID 잔여물

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

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

Abraxas Labs - cakephp-attachment-crlf

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

cakephp-attachment-crlf

분류: MIME 파트 헤더 주입 도달 범위: 원격

CakePHP 5.4.2 (887b641) - Cake Software Foundation

5.4.2는 이미 멀티파트 name= / filename=에서 ", \r, \n을 제거한다 (FormDataPart::_headerParameterToString). 이것이 대조군이다. Content-Type과 Content-ID는 원시 문자열 연결로 남겨졌다. Message::setAttachments는 UploadedFile 클라이언트 미디어 타입을 별도의 필터 없이 해당 타입 필드에 복사한다.

사용자 업로드를 첨부하거나 사용자 contentId를 전달하는 앱은 그 바이트를 MIME 파트에 넣는다. 그러면 getBodyString()은 해당 파트 아래에 두 번째 헤더 줄을 표시한다.

ID아직 CVE 없음
분류MIME 파트 헤더 주입
도달 범위원격 (사용자 업로드 또는 사용자 contentId를 첨부하는 앱)
CWECWE-93
CVSS중간: 5.4 CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:L/A:N
제품CakePHP
영향받는 버전5.4.2 (887b641de9f7aba06071f98f17edcbc573cbcf63)
인증사용자 업로드(UploadedFile 클라이언트 MIME) 또는 사용자 contentId를 첨부하는 애플리케이션
라이선스GNU Affero GPL v3.0
랩127.0.0.1 전용

공격자가 할 수 있는 일

앱이 Message::setAttachments / addAttachment에 전달하는 첨부 메타데이터에 영향을 줄 수 있는 사람은 MIME 파트 헤더를 주입할 수 있다.

권한메서드 / 싱크종류랩 입증 또는 추론
추가 Content-Type 헤더 줄setAttachments에 'mimetype' => "text/plain\\r\\nX-Injected: …"MIME 파트 헤더 무결성랩 입증. 증거 줄 존재
추가 Content-ID 헤더 줄'contentId' => "cid@…>\\r\\nX-Injected: …" (인라인 파트)MIME 파트 헤더 무결성랩 입증. 증거 줄 존재
업로드 MIME을 통한 동일 주입UploadedFile::getClientMediaType()이 mimetype에 복사됨MIME 파트 헤더 무결성랩 입증. 증거 줄 존재
filename= CRLFCR/LF가 포함된 첨부 이름차단됨랩 입증 차단됨. 5.4.2 제거 유지
이 싱크를 통한 봉투 RCPT / Bcc본문 내 MIME 파트 헤더차단됨이는 SmtpTransport의 쌍 전용 제거로, 별개의 문제
SMTP 전송랩은 getBodyString()만 호출차단됨트랜스포트 없음, 셸 없음

동일한 문자열 연결에서 추론되었으나 입증되지 않음: 멀티파트 경계를 포함하는 조작된 type 또는 contentId는 수신 MUA에서 메시지를 추가 파트로 분할할 수 있다. 나는 메일을 보내지 않았다.

동일 핀 잔여물: window SQLi, collate SQLi, cache unserialize.

발견 방법

멀티파트 Content-Disposition filename= 주입이 수정되었다는 bakery 노트 이후 cakephp/cakephp 5.4.2를 핀했다. _headerParameterToString이 새니타이저다:

$transliterated = Text::transliterate(str_replace(['"', "\r", "\n"], '', $value));

__toString()은 여전히 다음을 수행한다:

if ($this->type) {
    $out .= 'Content-Type: ' . $this->type . "\r\n";
}
if ($this->contentId) {
    $out .= 'Content-ID: <' . $this->contentId . ">\r\n";
}

Message::setAttachments는 업로드 클라이언트 타입을 제거 없이 복사한다. 그런 다음 attachFiles / attachInlineFiles가 $part->type($fileInfo['mimetype'])와 $part->contentId($fileInfo['contentId'])를 호출한다.

이미 기록된 잘못된 방향: 봉투 RCPT를 이 잔여물로 취급(추가 줄은 본문에 있음); filename=이 여전히 주입된다고 주장(그렇지 않음); SMTP 전송; 리버스 셸. 연극.

랩

python3 cakephp-attachment-crlf-Abraxas-Labs.py

또는

cd lab
./run.sh

오직 http://127.0.0.1:19460만 대상으로 한다. PHP 8.3, 빌드 시 CakePHP 태그 5.4.2 클론. lab_server.php가 Message::setAttachments를 노출한다. 네 가지 케이스: filename 대조군, mimetype, contentId, UploadedFile 미디어 타입.

SUCCESS cakephp-attachment-crlf how=live pin=5.4.2 sha=887b641de9f7aba06071f98f17edcbc573cbcf63 mimetype=yes contentId=yes upload=yes filename-stripped=yes CAKEPHP-ATTACHMENT-CRLF-WITNESS

수정 방법

type, contentId, transferEncoding을 _headerParameterToString과 동일한 " / \r / \n 제거를 거치게 하라. 제거 후에도 줄 바꿈이 포함되어 있으면 값을 거부하라. 메일러 테스트에서 filename=뿐만 아니라 UploadedFile 클라이언트 MIME과 명시적 mimetype / contentId도 커버하라.

참고 자료

  • github.com/cakephp/cakephp 태그 5.4.2 (887b641de9f7aba06071f98f17edcbc573cbcf63)
  • FormDataPart.php · Message.php
  • 인접 패치: 5.4.2 bakery filename= 제거
  • 동일 핀: cakephp-window-sqli · cakephp-collate-sqli · cakephp-cache-unserialize
  • CWE-93

라이선스

GNU Affero GPL v3.0. LICENSE 참조. 루프백 랩 전용. 보증 없음.

도구 다운로드