本当は怖い文字コードの話:第6回 先行バイトの埋め込み|gihyo.jp … 技術評論社(情報元のブックマーク数)

文字の先行バイトを与えて正規な文字を化けさせようと言う手法 %82とかだっけ?

ほとんどの符号化方式(文字エンコーディング)においては,ひらがなや漢字などASCII以外のほとんどの文字は,1文字が複数バイトにて構成されています。たとえば,ひらがなの「あ」は,Shift_JISにおいては0x82 0xA0という2バイト,UTF-8においては0xE3 0x81 0x82という3バイトで表現されます。

攻撃者がマルチバイト文字の先行バイト部分だけを与えることにより,本来存在している後続の文字を無効にしてしまうのが,今回紹介する「先行バイトの埋め込み」という攻撃方法です。

第6回 先行バイトの埋め込み:本当は怖い文字コードの話|gihyo.jp … 技術評論社

今回説明した攻撃方法は,マルチバイト文字の特性を積極的に悪用した,まさに文字コードを利用した攻撃の真髄と言えると思います。また,今回は具体例としてXSSを挙げましたが,この攻撃方法自体はXSSに限らず, SQLインジェクションやOSコマンドインジェクションをはじめ,文字列を扱う箇所であればあらゆる場面で攻撃につながる可能性があると思いますので,注意するようにしましょう。

第6回 先行バイトの埋め込み:本当は怖い文字コードの話|gihyo.jp … 技術評論社

screenshot