2016-12-11 5 views
1

私はXSS領域にビットを掘るとJavaScriptで面白いものを見つけました:予想通りのjavascriptエンジンで機能やセキュリティの抜け穴

eval(\`// alert(document.cookie)\`) 

は何もしませんが、

eval(\`// \r alert(document.cookie)\`) 

は、トークンとの警告をポップアップ表示... \rコメントを外してスクリプトを実行します。

は、IE11、EdgeおよびChromeでテストされていますが、すべて同じ動作をしています。

これは何か予想されますか?私は、問題として...

よろしく、 エフゲニー

+0

私はこの問題を再現することができません:http://jsbin.com/tetocaj/1/edit?js,console,output – Quentin

+0

それは引用符を食べました....あなたは ''にコードを入れましたか? – Evgeny

+0

これはどういう質問か分かりません。 'eval'は渡されたJavaScriptを実行します。誰も 'eval'に渡された値に' // '接頭辞を付けません。これは' eval'の目的を打ち消します。あなたが見つけた正確なセキュリティホールは何ですか? – Dai

答えて

0

これは期待される動作であることを考えるでしょう。

\rは送料の返品となります。新しい行が始まります。

//は行コメントであり、その行がコメントアウトされているだけです。


evalのセキュリティ上の問題はこれ以上発生しません。あなたがそれを使うなら、あなたはそれを与えている入力を理解する必要があります。

+0

大丈夫、私の誤解のように見える。私は\ nだけ新しい行を開始すると思った.. \ r行の先頭に戻る...ありがとう。 – Evgeny

+0

@Evgenyあなたは[ここ](http://www.ecma-international.org/ecma-262/6.0/#sec-line-terminators)でJSが改行とみなすものを読むことができます – Bergi

関連する問題