web-dev-qa-db-ja.com

このJavaScript mailtoリダイレクトはXSSに対して脆弱ですか?

私はXSS攻撃に取り組んでおり、何時間も試行しても脆弱ではないと思います。しかし、セカンドオピニオンは素晴らしいでしょう。

<script language='javascript'>
  var redirecturl = 'mailto:[email protected]?mkt_tok=mailtokenhere%3D%3D';
  function redirect() {
    var anchor = window.location.hash;
    window.self.location = redirecturl + anchor;
  }
</script>

これに対する私の最初の魅力は、anchorの値をwindow.self.location = redirecturl + anchor;に渡すことでした。ただし、ここでmailtoを使用するとXSSが不可能になると思います。

1
m0chan

これはXSSよりも多くのインジェクションですが、 Mailtoリンクにはいくつかの機能があります 乱用可能です。たとえば、TOのみが入力された状態でポップアップする電子メールプログラムの代わりに、CC、BCC、件名、本文を事前に入力できます。これは、クエリ文字列を編集することで行われます。 ?subject=xyz&[email protected]

私の最初の考えは、window.location.hashが原因で、#がクエリ文字列に何も追加しないようにすることでした。しかし、私はそれをChromeでテストしました、そしてそれは可能であるようです。

したがって、これを使用すると、悪意のある誰かがいくつかのことを電子メールにこっそり追加して、それが気付かれずに済むことを期待できます。たとえば、悪意のある俳優は、彼らが制御するアカウントにブラインドカーボンコピーを送信できます。

https://example.com/contact#&[email protected]

mailto:[email protected]?mkt_tok=mailtokenhere%3D%3D#&[email protected]

または、広告を挿入することもできます。

https://example.com/contact#&body=%0A%0A%0A%0A%0A%0A%0A%0A%0A%0A%0ABuy%20your%20foobar%20cheap%20at%20example.com%2Ffoobar

mailto:[email protected]?mkt_tok=mailtokenhere%3D%3D#&body=%0A%0A%0A%0A%0A%0A%0A%0A%0A%0A%0ABuy%20your%20foobar%20cheap%20at%20example.com%2Ffoobar

これは、これらの他のヘッダーを含めるかどうか、電子メールクライアントに依存します。 RFC6068 は、件名、キーワード、本文など、安全であると見なされるヘッダーの「限定されたセット」以外のものをクライアントが追加しないようにします。

3
Fire Quacker