Policyモナバコ脆弱性報奨金制度で認定された401インジェクションモナバコ脆弱性報奨金制度で認定された401インジェクション2018年5月5日に「モナバコ」というQ&Aサービスが脆弱性報奨金制度を導入した。国内の小規模サービスによるバグバウンティの独自開催は珍しく、モナコインという仮想通貨での報奨金支払いも異例だったため、興味をひかれ参加した。そこで認定された401インジェクションの脆弱性についてまとめる。モナバコの概要モナバコはTwitterを介したQ&Aサービスであり、Twitterアカウントでログインしてサービスを利用する。初回ログイン時に質問を受け付けるページが開設されるので、募集する質問内容をそこへ記入する。その後、質問ページを自身のTwitterで告知して質問を募る。質問ページを訪れたフォロワーはモナコインを付けて質問でき、それに回答した対価としてモナコインをもらえる仕組みである。開設された質問ページにはアクセス制御が施されていないため、URLを知っていれば誰でもアクセスできる。脆弱性はこのページに存在していた。画像などを表示する際のURLを任意の値に指定できる場合、Basic認証などが設定されたページのURLを挿入することで、ソース読み込み時に認証ダイアログが表示される問題が401インジェクションである。認証時のステータスコードである401が名前の由来になっている。この問題は一部のブラウザでのみ発生する挙動であり、今回はSafari、Edge、IE11で実証した。よって、Twitterアカウントと同様のプロフィール名とアイコン画像が設定される。以下のように操作することで任意のURLをアイコン画像のソースに指定できた。実証では私が所有するHeroku上にBasic認証を設定したページを用意し、そのURLを挿入した。Tsunoda"}質問ページにはアイコン画像が設置されるため、一部のブラウザからアクセスすると認証ダイアログが表示される。以下はSafariからアクセスした際の様子である。imgタグのsrc属性にはBasic認証を設定したページのURLが挿入されている。攻撃者は不正なURLを仕込んだ質問ページをTwitterなどで拡散する。そこにアクセスした被害者が表示された認証タイアログをモナバコのログイン認証と誤認した場合、入力した認証情報が攻撃者の手に渡る恐れがあった。URLしか指定できないように修正された。ような任意のドメインのURLを指定できた。設定することで、そのドメイン上のリソースを挿入できる状態だった。所感401インジェクションはTwitterで認定された事例もあるが、著名なバグハンターである@EdOverflow氏が公開するセキュリティポリシーでは「通常許容されるリスク」として認定外になっている。認定される脆弱性ではないが、imgタグが読み込んだリソースをブラウザが処理する際にセキュリティリスクが生じる可能性もあるため、外部リソースを指定できる場合は401インジェクションを挙げて報告する価値はある。今回発見した脆弱性は、制度に従いモナバコ公式Twitter(@monabako)へDMで報告した。you」を意味すると思われる39MONAを頂いた1。認定の連絡から1時間もたたずに入金されたのには驚き、仮想通貨での報奨金支払いのメリットを実感した。入金された2018年5月9日時点では、39MONAは日本円で19,110円(1MONA/490円換算)の価値があった。