2016-06-02 14 views
0

DOMベースのXSS攻撃の例を学生に示したかったのです。私は、innerHTMLによる悪意あるスクリプトの挿入が十分であると考えました。しかし、驚いたことに私がスクリプトを挿入すると、呼び出されないようです。DOMベースのXSSに失敗しました。スクリプトの挿入innerHTML

例はこちらhttps://jsfiddle.net/vo9baffu/6/example

私の質問です:それは私の例で提示方法でDOMベースのXSS攻撃を行うことが可能です。そうでなければ、私は何を変えるべきですか?

BTW。 DOMベースのXSSの良い例が分かっていれば、コメントに投稿してください。

<img src="/bad.png" onerror="alert(-2)" /> 

全コード:/bad.pngonerrorをトリガーする必要があり

function showName() { 
    tt = "script"; 
    badCode = "John<img onerror='alert(-2)' src='/bad.png'>"; 
    console.log(badCode); 
    document.getElementById("name").innerHTML = badCode; 
} 

答えて

1

簡単に言えば:あなたはあなたの例で提示方法で、DOMベースのXSS攻撃をすることはできません。

あなたのHTMLにjQueryを組み込み、代わりにhtml()メソッドを使用する必要があります。これは、html()メソッドがscriptタグに埋め込まれたコードを評価するため、あなたが求めているものを正確に達成します。

純粋なJavaScriptでは、挿入するスクリプトはほとんどの場合実行されないため、XSS攻撃を行うことはできません。これは、元のページが解析されたときにのみインラインスクリプトが実行されるためです。

下図のようにあなたはimgタグとエラーイベントを使用してXSS攻撃あなたの学生を表示することができます:

<img src="whatever.png" onerror="alert('XSS')" /> 

このfiddleに示すように。

2

は、古き良きイメージを使用してください。

そして、あなたのJSFiddle

関連する問題