web-dev-qa-db-ja.com

JavaおよびFlashの脆弱性)を悪用する方法、または一般的なブラウザの悪用方法を学ぶには、どこから始めればよいですか?

別のJava 0dayが本日発見されました これにより、ブラウザの悪用(クライアントのブラウザでのリモート実行)がどのように機能するかを考えました。

ブラウザの悪用に関する書籍やリソースをオンラインで見つけることができません。デバッガを使用する方法をコーディングして知ることができます。ただし、JavaまたはFlashを使用してブラウザを活用する方法を学ぶ上で、どこから始めればよいかわかりません。リソースや前提条件のリストは非常に役立ちます。

3
Kush

FlashやJavaなどのサンドボックス化されたプラットフォームをターゲットにすることは、始めたばかりの場合は非常に難しいため、実行する前に歩くことを学ぶことをお勧めします。

知っておきたいこと:

  • Cのような低水準言語でコーディングする方法.
  • スタック、レジスター、ヒープなどの機能、およびさまざまな方法でオーバーフローした場合の動作。
  • 少なくとも基本的なx86アセンブリ。
  • ご使用のプラットフォームのほとんどのAPIスイート(Win32 APIなど)
  • 実行可能ファイルに実際に含まれるもの/動作方法。 Windowsの場合、これは PEファイル 、* nixの場合は [〜#〜] elf [〜#〜] です。
  • プラットフォームの例外処理メカニズム(例: ネイティブ例外[〜#〜] seh [〜#〜][〜#〜] veh [〜#〜]

チェックアウトするいくつかのリソース:

そこから、ブラウザの脆弱性がどのように機能するかを理解することができます。環境はブラウザと使用しているプラ​​グインに応じて非常に多様であるため、この種のことについての直接のチュートリアルは実際にはありません。

7
Polynomial

チェックアウト DOMレベル2および3のファジング

"概要
ファジング技術は、Webブラウザーの脆弱性を見つけるのに非常に効果的であることが判明しました。

時間の経過とともにいくつかの貴重なファザーが作成され、そのうちのいくつか(mangleme、cross_fuzz)は「事実上の」標準になり、セキュリティ研究コミュニティによって広く採用されています。

ブラウザーのファジングにおける最も一般的なアプローチは、DOM要素がランダムに作成、クロール、調整、および削除されるDOMレベル1インターフェースを利用します。

このアプローチを使用すると、すべての主流のブラウザーで何百ものメモリ破損のバグが発見されましたが、広範囲に及ぶため、新しいバグの発見はますます困難になっています。

ウィーンでのDeepSecカンファレンスで、W3C DOMレベル2およびレベル3仕様によって導入されたDOMインターフェースに依存するブラウザーファジングの進化的アプローチを示しました。このアプローチを使用して、ファザープロトタイプが構築され、IE9、IE10、およびChromeに対してテストされ、興味深い結果が得られました。70以上の異なるクラッシュが生成され、いくつかのメモリ破損エラーが見つかりました。そのうちのいくつかは悪用可能になりました。」

5
Tate Hansen