Skip to content
KitploitKITPLOIT
ツールエクスプロイトブログ
Log in
提出
ツールエクスプロイトブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

フィードお問い合わせプライバシー© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
cakephp-attachment-crlf — CakePHP 5.4.2 - 高 - リモート - CRLF - attachment Content-Type および Content-ID の残存 | Kitploit
ツール/GitHubGitHub/abraxas/cakephp-attachment-crlf
脆弱性分析エクスプロイトウェブアプリケーション悪用セキュリティ仮想化ウェブセキュリティペネトレーションテスト
GitHubabraxas/cakephp-attachment-crlf

cakephp-attachment-crlf

CakePHP 5.4.2 - 高 - リモート - CRLF - attachment 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 のクライアントメディアタイプを、追加のフィルタなしでその type フィールドにコピーする。

ユーザーアップロードを添付するアプリ、またはユーザーの contentId を渡すアプリは、それらのバイト列を MIME パート上に載せてしまう。getBodyString() はそのパートの下に 2 行目のヘッダー行を表示する。

IDCVE 未採番
クラスMIMEパートヘッダーインジェクション
到達範囲リモート(ユーザーアップロードまたはユーザーの contentId を添付するアプリ)
CWECWE-93
CVSSMedium: 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 を公開する。4 つのケース: 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 を参照。ループバックラボのみ。無保証。

ツールをダウンロード