web-dev-qa-db-ja.com

クリックジャッキングによるページソースの盗用

私はJavascriptを学んでいます。また、Webベースの脆弱性を調査して学習します。 Javascriptを使用して、クリックジャッキングを介してページのソースやテキスト、またはページに漏れているトークンを盗むにはどうすればよいのでしょうか。それがどのように機能するかを確認するには、デモpocが必要です。 Ctrl + Cを使用してWebページ上のリークテキストをコピーし、Ctrl + Vを使用してコピーしたトークンをハイジャック用の入力ボックスに貼り付けることができます。そして、攻撃者サーバーに送信します。

1
user11177344

情報を盗むことは簡単には不可能であり、クリックジャッキングの本当の目的でもありません。

クリックジャッキングは、オリジンを越えてサイトでアクションを実行できるという点で機能的にCSRFに似ていますが、情報を取得することはできません。

クリックジャッキングを使用すると、任意のクリックアクションを実行できます。また、テキストをiframeにドラッグして入力することもできます(ブラウザによって異なります)。ただし、同じOriginポリシーでテキストをドラッグできないため、テキストをiframeからドラッグすることはできません。

Ctrl + Cを使用してWebページ上のリークテキストをコピーし、Ctrl + Vを使用してコピーしたトークンをハイジャック用の入力ボックスに貼り付けることができます。

これは素晴らしいアイデアですが、ユーザーとの対話が必要になる可能性はほとんどありません。

簡単な例として、これを検討してください。

// attacker.com/clickjack.html
<div style="position: absolute; left: 10px; top: 10px; pointer-events: none;">Copy this (double click -> CTRL+C)</div>
<iframe style="opacity: 0;" height="100" width="100" scrolling="no" src="http://example.com/steal.html"></iframe>
<input type="text" placeholder="to here (CTRL+V)" oninput="alert('stolen: ' + this.value)">

// example.com/steal.html
secret

攻撃を成功させるには、ユーザーはページの左上をダブルクリックして(確かに実行可能)、CTRL + Cを押し(可能性は低い)、入力を選択して、CTRL + Vを押す必要があります(これも可能性は低いです)。

Chromeは非表示のテキストを選択できないため、これはFirefoxでものみ機能します。

たとえば、ページのフォーカスが失われたときにオーバーレイテキストを「強調表示」(「これをコピー」)することで、攻撃を改善できる可能性があります(したがって、ダブルクリックでiframe内のテキストではなく、実際にそのテキストが選択されたように見えます) 。 JavaScriptと通常の高度なクリックジャッキング技術(マウスカーソルの自動追跡など)を使用して、攻撃をさらに改善できます。

この方法でソースコードを盗む方法はありません(iframeのsrcとしてview-source:...を使用することはできません)

2
tim