dev.toのXSS

先日 Pwned Together: Hacking dev.to という記事を見かけた。 dev.to ではブログ投稿機能において {% gist <gist url> %} という記法を使用することでいい感じに gist を挿入してくれるらしい。 html = <<~HTML <div class="ltag_gist-liquid-tag"&gt...

ipynb's XSS Vulnerability on Bitbucket

One day, I found that could render Jupyter Notebook on bitbucket. I have found the Jupyter Notebook(ipynb)’s XSS on GitLab. So, I searched for bitbucket thought that it had a similar vulnerabili...

Reactで安全にMarkdownをHTMLレンダリングする

ユーザー入力値をMarkdownとして受取り、HTMLとしてレンダリングしたい場面は少なくない。 当然ながらHTMLとして出力するため、onerrorやhref属性などは適切にサニタイズしなければならない。 import React, { Component } from 'react'; import marked from 'marked'; import Pr...

GitLab XSS via .ipynb

GitLabにXSSがあったので報告した。 https://about.gitlab.com/2018/01/16/gitlab-10-dot-3-dot-4-released/ 上記リンクのJupyter Notebook XSSというやつ。 PoC 以下の内容のipynbファイルを作成する。 ipynbファイルの実態はJSONである。 { "cells": [ { "c...

最近のJavaScriptフレームワークでのXSS

所謂、最近流行っているJavaScriptフレームワークでのXSSの例をいくつか挙げようと思う。 最近のJavaScriptフレームワークは賢いので、データをバインドする際にHTMLエスケープしてくれてXSSから保護してくれる。 しかしながら、保護が適用されないケースもあるため、過度にフレームワークに信頼しているとXSSを作り込んでしまう。 ここではReactとVue.jsでその例をいくつか挙げよ...