Cat.6(ねころっく)

脆弱性のお金でご飯が食べたい

FirefoxのContent-Lengthの挙動と攻撃可能性

●概要

f:id:reinforchu:20180902152031p:plain

 ※スクリーンショットはあんまり記事に関係ないかも。

 

 当該記事を書こう書こうと思い一年くらい経過してしまい、もはや鮮度もなく、手元のログも埋もれてしまったので、下書きメモだけでも公開しようと。

 下記、原文ママです。

(昨年の)DEFCON CTF 2017のWeb問を解いてた時に気になったのでメモ。

HTTPヘッダインジェクションを発見したのでつついていると、Gekko系(Firefox)ブラウザはContent-Lengthヘッダを厳密に処理するので、Length分のbodyのみレンダリングされ、あふれた部分は無視される。
この挙動を悪用し、HTTPヘッダインジェクションを組み合わせることで、ちょっと変?な攻撃テクニックができる。
値を調整した任意のContent-Lengthヘッダを追加し、悪意あるコードを仕込んだbodyを追加することで、元々のbodyがどうであれレンダリング上は無視させ、悪意あるコードのみを実行させることが可能でした。
そもそもHTTPヘッダインジェクションができる時点でお察しだけど……

追加検証で、WebKit系(Chrome, Safari)は再現できなかったため、Content-Lengthヘッダを厳密に見ていないと思われる。
また、BurpやZAPなどのローカルプロキシツールでは、Content-Lengthヘッダを捻じ曲げられないため、お手軽検証ができなかった。

  もし、何か気になることがあったら、Twitterやメールなどでお問い合わせください。

 既知の事だったらはずかし。。。