キャリッジリターンラインフィードインジェクション【CRLF】

Note:この記事は書きかけです

キャリッジリターンラインフィードインジェクションは、現在ライブラリによってガードされているため、ほぼほぼ攻撃が不可能です。

pythonのflask,nodeのexpressを対象に攻撃を行いましたが、Invalid character in header contentとエラー表示されました。

このため、この記事は技術調査の段階で頓挫しております。あらかじめご了承ください。

キャリッジリターンラインフィードとは

\n\rは特殊な文字コードの例として扱われます。

  • \r(キャリッジリターン) : 「カーソルを先頭に戻す」を表す文字コード
  • \n(ラインフィード) : 「カーソルを次の行に移す」を表す文字コード

サクラエディタで表すと以下の動きになる。

CR  : ← LF  : ↓

この二つの文字列を合わせると、キャリッジリターンラインフィードになる。

CRLF : ⤹

キャリッジリターンラインフィードインジェクションとは?

キャリッジリターンラインフィードインジェクションは、CRLFを適切にサニタイズしない場合に起こります。

特に、サーバーサイドでHTTPメッセージにCRLFを挿入できる場合は「HTTPリクエストスマグリング」と「HTTPレスポンス分割」につながります。

HTTPレスポンス分割

HTTPレスポンス分割(HTTP Response Splitting)は、攻撃者がサーバーに対して改行文字やレスポンスヘッダーを注入することで、意図しないレスポンスをクライアントに返す脆弱性です。

page:https://minegishirei.hatenablog.com/entry/2024/11/24/191834