web-dev-qa-db-ja.com

純粋にHTML + CSSに基づくブラウザエクスプロイト

2011年、Eli Fox-Epstein HTML + CSS3でRule 110マシンを実証

これは say につながり、HTML + CSS3の組み合わせは Turing complete になります。

HTML + CSS3が技術的にチューリング完全であるかどうかに関係なく、既知のエクスプロイトを(実際に、または概念実証として公開されて)攻撃ブラウザ(プラグイン、アドオンではなく、など)純粋にHTML + CSSを使用していますか?

その場合、そのようなエクスプロイトを少なくとも1つ要約してください。

3
sampablokuper

はい、過去には、悪意のあるHTMLおよびCSSコードにのみ依存するエクスプロイトが数多くあります。

複雑でチューリング完全な言語を解析するとエラーが発生しやすくなり、攻撃者がエクスプロイトを作成するためのツールが増える可能性があるというのはあなたの言うとおりです。しかし、使用されるCSSパーサーまたはコードの処理に関連する他のモジュールの実装が脆弱になる可能性がある多くの異なる方法があります。

例として、取る CVE-2010-2752-Mozilla FirefoxのCSSフォントフェイスにリモートでコードが実行される脆弱性 。この脆弱性は、特別に細工されたCSS font-faceルールを使用してWebサイトを作成するだけで引き起こされる可能性がありますが、ホストを危険にさらす可能性がありました。

欠陥のあるコードはMozillaのCSSパーサーにあり、些細なバグがありました:font-face参照を格納するためにメモリを割り当てるとき、インデックスに16ビット整数が使用されました。ただし、実際の値が入力されると、代わりに32ビット整数が使用されました。この不整合は、スタイルシートが多数の外部フォント参照を提供したときに整数オーバーフローを引き起こしました。その結果、攻撃者は予期しないメモリロケーションに書き込み、インデックスオーバーフローを任意のコード実行エクスプロイトに変える可能性があります。

MozillaコアのほとんどはC++で記述されているため、組み込みのオーバーフロー保護はなく、開発者はメモリを安全に処理する責任があります。 Python=で作成されたブラウザは、非常に異なる種類の脆弱性に直面する可能性があります(また、非常に遅い)。

7
Arminius