Help us understand the problem. What is going on with this article?

Bitbucketにあった2つのStored XSS

More than 1 year has passed since last update.

本記事は脆弱性"&'<<>\ Advent Calendar 2016の15日目の記事です。

Bitbucketに2つXSSを報告したお話です。

XSS on branch name (upon delete)

alert-1.png

alert-2.png

画像が全てです。ブランチを削除した時に表示されるメッセージがエスケープされていなかったためXSSが可能でした。ワンタイムですがStored XSSのため、任意のブラウザで発現可能でした。言うまでもなくユーザーインタラクションが必要なため、弱めのXSSです。

XSS with issue title and commit message

Issueを git commit -m "fix #1" としてコミットメッセージからresolveした場合、Web UI上ではコミットメッセージ内のIssue番号がIssueのタイトルで置換されて表示される仕様でした。その際、Issueタイトルがエスケープされずに表示されていたため、

  1. "><script>alert(document.domain)</script> というタイトルのissueを立てる。
  2. git commit -m "fix #1" && git push でこのissueをresolveする。

という手順でStored XSSが作れました。

alert.png

s_tag.png

これはログイン状態に関わらずIssueのページに誘導するだけで発現させられた他、Bitbucketトップページの"Recent Activity"の中にも表示されており、Bitbucket上で自分をフォローしている全てのユーザーのトップページにXSSを仕込めるようになっていたため、強力なXSSでした。

結果

AtlassianのSecurity Hall of Fameに名前を載せてもらった他、Tシャツを貰いました。

おわり

shinkbr
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away