27
26

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

QiitaにあったXSSの脆弱性について(修正済)

Posted at

脆弱性の内容

記事編集画面にて以下の文字列を入力すると、XSSが発生するリンクが生成されます。

[xss](\ javascript:alert(1))

脆弱性の解説

[title](http://~)

という記法は、Markdownでリンクを生成するときに使用します。
通常記事編集画面では、javascript:から始まる文字列はリンクにならないように対策が施されています。
しかし、今回はMarkdownのエスケープ文字である\と半角スペースを組み合わせることによりXSSが発生するリンクが生成されてしまいました。
aタグのhref属性には、スキーム名の先頭に半角スペースを入れてもリンクとして認識されてしまうという特性があります。

<a href=" javascript:alert(1)">xss</a>

これを利用して、以下のような正規表現を回避することができます。

/^javascript:/

最後に

この脆弱性を報告したのは本日(2014/08/09)の08:03頃で、修正完了とのメールが来たのは同日の11:07頃でした。
対応が凄く早くて驚きです。
他にも2つの脆弱性を発見してQiitaに報告をしました。
その2つはわりとよくある脆弱性なので、公開はしないことにします。
Qiitaにも脆弱性報奨金制度があったら良かったと思った日でした。

27
26
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
27
26

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?