攻撃者がCSRFトークンも盗むことができるように、クリックジャッキングを通じてソースコードを盗むことは可能ですか?
これはデモ攻撃のWebサイトです。
<!DOCTYPE html>
<html>
</div>
<div draggable="true" ondragstart="test();">
<h3>DRAG ME!!</h3>
<script>
function test(){
var v1 = document.createElement('iframe');
v1.src = "http://demo.testfire.net/search.aspx?txtSearch="
v1.setAttribute("style", "opacity:0.5");
v1.setAttribute("border", "0");
v1.setAttribute("scrolling", "0");
v1.setAttribute("id", "pi");
document.body.appendChild(v1);
document.getElementById("pi").onload =function(){
alert(this.responseText);
}
}
</script>
</html>
ご覧のとおり、警告ボックスを利用してソースコードを盗もうとしています。しかし、私はそれに成功しませんでした。
ここで何が欠けていますか?
クリックジャッキングを使用して、Webページのソースコードへのクロスオリジンアクセスを取得することはできません。このアクセスは same-Originポリシー によって制限されており、クリックジャッキングではバイパスされません。これは、CSRF攻撃と同様に、クリックジャッキングを伴うクロスオリジンアクションを引き起こすことができますが、このアクションの結果を読み取ることはできません。
元のクロスドラッグアンドドロップを使用してクリックジャッキングを使用してコンテンツを取り出すことが可能であったことをコメントで指摘してくれたArminiusに感謝します。たとえば ドラッグアンドドロップによるクリックジャッキング2. または Firefoxのこのバグ を参照してください。これはしばらくの間ブラウザで禁止されているようです。つまり、最近のブラウザはこれによる影響を受けません。