水無月ばけらのえび日記

bakera.jp > 水無月ばけらのえび日記 > はてなのexpressionのXSSが修正された

はてなのexpressionのXSSが修正された

2009年3月30日(月曜日)

はてなのexpressionのXSSが修正された

更新: 2009年3月31日10時25分頃

はてなブックマークのスタイルシートに

*{color:expression(alert(document.cookie))}

と書くと、「危険な文字」とみなされた "expression" と "cookie" がサニタイズされて以下のようになります。

*{color:(alert(document.))}

この手のサニタイズでありがちな罠として、削除対象の文字列を一度しか走査しないで済ませてしまっている場合があります。たとえば、以下のように書いたとき、

*{color:eexpressionxpression(alert(document.ccookieookie))}

削除のための走査を一度だけで済ませていると、expression と cookie が一度ずつ取り除かれて以下のようになります。

*{color:expression(alert(document.cookie))}

というわけで、こんな感じで貫通してしまう場合があるのです。実際、はてなでは今日の20時頃まではこのパターンで貫通していましたが、現在では修正済みです。

※全角の「expression」が貫通していた件も一緒に修正されたようです。

関連する話題: セキュリティ / クロスサイトスクリプティング脆弱性

最近の日記

関わった本など