CRLF インジェクション
CRLF インジェクション とは何ですか?
CRLF インジェクションHTTP ヘッダ・ログファイル・その他のテキストプロトコルへ CR/LF を注入して新たな行を偽造し、意味を改変する攻撃。
CRLF インジェクションは、多くのテキストベース・プロトコルで行末を示す CR(0x0D)と LF(0x0A)バイト列の特殊な意味を悪用します。アプリケーションが検証されていないユーザ入力を HTTP レスポンスヘッダ、ログ、SMTP コマンド、LDAP クエリへ反映する場合、攻撃者は CRLF と追加コンテンツを挿入してヘッダを偽造する、レスポンスを分割する、ログを隠す、コマンドを密輸するといった攻撃が可能となります。Web では HTTP レスポンス分割が最も危険で、共有キャッシュ汚染、任意 Cookie 設定、レスポンスボディへの XSS 注入につながります。対策にはヘッダに渡る入力からの CR/LF 拒否、自動エスケープを行う上位 API、厳格なログエンコーダの利用などがあります。
● 例
- 01
Set-Cookie: id=foo%0d%0aSet-Cookie: admin=true — CRLF で 2 つ目の Cookie を追加。
- 02
Location: /redir%0d%0aContent-Length:0%0d%0a%0d%0a<html>... — HTTP レスポンス分割。
● よくある質問
CRLF インジェクション とは何ですか?
HTTP ヘッダ・ログファイル・その他のテキストプロトコルへ CR/LF を注入して新たな行を偽造し、意味を改変する攻撃。 サイバーセキュリティの 攻撃と脅威 カテゴリに属します。
CRLF インジェクション とはどういう意味ですか?
HTTP ヘッダ・ログファイル・その他のテキストプロトコルへ CR/LF を注入して新たな行を偽造し、意味を改変する攻撃。
CRLF インジェクション からどのように防御しますか?
CRLF インジェクション に対する防御は通常、上記の定義で述べたとおり、技術的統制と運用上の実践を組み合わせます。
CRLF インジェクション の別名は何ですか?
一般的な別名: 改行コードインジェクション, ログインジェクション。