"Enter"a basıp içeriğe geçin

SoderCTF – HackAydın – WriteUp Soru çözümleri

Tüm soruların dosyalarına Github repomdan ulaşabilirsiniz.

Start

Soru ufak bir OSINT sorusuydu, kolaylıkla bulup yapabildiğimiz bir soru.

flag{blackboxsectr}

Mobile-1

APK’ı indirip Jadx programı ile decompile ettiğimizde kodlar “obfuscate” edilmeden yayınlandığı için flag’ın “base64” ile encode edilmiş hali karşımıza çıkmaktaydı.
“ZmxhZ3t0ZWJyaWtsZXItbW9iaWwxMDItaWJua2hhbGR1bn0” -> flag{tebrikler-mobil102-ibnkhaldun}
Soruyla uğraşmak isteyen varsa yukarıda verdiğim github reposundan soruya ulaşabilirsiniz.

Mobile-2

APK’ı indirip Jadx programı ile decompile ettiğimizde kodlar “obfuscate” edilmeden yayınlandığı için flag’ın “base64” ile encode edilmiş hali karşımıza çıkmaktaydı.
“ZmxhZ3ttb2JpbDEwMy10ZWJyaWtsZXJ9” -> flag{mobil103-tebrikler}
Soruyla uğraşmak isteyen varsa yukarıda verdiğim github reposundan soruya ulaşabilirsiniz.

Mobile-3

APK’ı indirip Jadx programı ile decompile ettiğimizde kodlar “obfuscate” edilmeden yayınlandığı için flag’ın “base64” ile encode edilmiş hali karşımıza çıkmaktaydı.
“ZmxhZ3t0ZWJyaWtsZXItbW9iaWwxMDF9” -> flag{tebrikler-mobil101}
Soruyla uğraşmak isteyen varsa yukarıda verdiğim github reposundan soruya ulaşabilirsiniz.

Web-0

Websayfasına girdiğimiz karşımıza matrixde kırmızı elbiseli kadın çıkıyordu. lakin karşımızda 1 adet “kaynak koda bak” şeklinde link vardı. buraya girdiğimizde ise “Bu kadar kolay olmamali degil mi? ” yazısı karşımızdaydı. Resmin altında ise bir input ve button vardı. Ne işe yarıyor anlamak için hemen “deneme” yazıp enterlıyoruz.

karşımıza hata çıkıyor,bu hata bize “index.” dosyasının 14. satırında “create_function()” olduğunu fakat hata verdiğini söylemektedir.
*create_function” fonksiyonu phpde dinamik olarak fonksiyon oluşturmamızı sağlar. * Kaynak

Bu hatadan anlıyoruz ki bu fonksiyonu abuse etmemiz gerekecek.bunun için öncelikle kendi fonksiyomuzdan çıkmayı deneyelim ve istediğimiz bir methodun çalıştığını doğrulayalım.
bunun için olması gerektiği gibi basit bir kod yazalım. “return “1”;” gibi. kodumuz çalıştığında şu ekranla karşılaştık.

bu demek oluyor ki biz bu fonksiyona müdahelede bulunabiliyoruz. daha sonra bu fonksiyondan kaçmak için “}” karakterini kullanıyoruz ve çalışmasını istediğimiz kodu yazıyoruz. burada “;}system(“ls”);/*” komutunu çalıştırdım.

görüldüğü üzere flag.php diye bir dosyamız mevcut hemen system komutunu “cat flag.php” ile değiştirelim. flag karşımızda

flag{SODER_Y3z_ab1_b4_fl4g}

Web-1

Emacs Backup Form şeklinde bir form karşılıyordu bizi.

ilk bakışta anlamamız gereken şey ise “emacs”ın auto save özellikliğininden faydalanamız gerekmekte. emacs her dosyayı kaydetdiğinde “lodos.txt” sonunda “~,~1~,~2~,~~,.emacs” gibi uzantılar atıyor. index e ve login formunda resme bunları atmamıza rağmen bir sonuca ulaşamadım. daha sonra forma bir deneme yaptımızda bizi farklı bir yere attı buradan farklı bir adrese oradan da farklı bir adrese attı. ama ne dosyalarda ne resimlerde emacs backup file yoktu.

gobuster yada ffuf gibi yazılımları çalıştırğımızda, passwords dosyası olduğunu gördük

ve bu sayfaya tilde işaretini atınca karşımza bazı username ve passwordlar çıktı. bunları anasayfadaki login formu deneyince flag ortaya çıktı.

Flag{L1nUx_B@ckuP_F1L3}

Web-2

Karşımıza “yetkiniz yok” yazısı çıkmakta ve bizi “?file=attacker.php” adresine yönlendirmekteydi.

burada LFI olduğunu sezip hemen ilk payloadumuz olarak “../../../../../../../etc/passwd” yazıyoruz. ve bingo. LFI’miz doğrulandı.

LFI bulduğumuzda shell almanın bazı yolları vardır, bunları deneyerek shell almaya çalıştım fakat başarılı olamadım. daha sonra yapılacak iş “/var/www/html” klasöründe flag.txt,flag.php gibi dosyaları aramak ama buda başarısız. o zaman “attacker.php”e bakmanın zamanı gelmiş demektir. fakat dosyaya baktığımızda derlenerek cevap veriyordu.

o zaman php://filter in çalıştığını doğrulamamız lazımdı.

php://filter çalıştığına göre “/convert.base64-encode” kullanarak “attacker.php”yi base64 e çevirerek bakalım dedik.

ve basse64u decode ettiğimizde nur topu gibi “exec” komutumuz bizi bekliyordu, lakin burada bir parola koruması var bunuda COOKIE değerimizden alıyor bu değer “attacker.php” de olmadığı için, “connect.php” dosyasında olmalıydı.

buradaki parolayı COOKIE değerimize girdikten sonra karşımıza bir alan açıldı.ve artık “exec” komutuna erişimimiz var.

burada printf ve echo kısmı var ve bu ikisinen birini sömürmemiz lazım. “printf” komutu “formatlarayarak ekrana yazı yazdıran” bir komuttur ilk parametresine aldığı “%s %d” gibi karakterleri sonrasında gelen parametre ile formatlar ve çıktı verir. bizim kodumuz şöyle olmalı “printf ‘%s’ `whoami` ” gibi, ve komutumuz “%s’ `whoami`” gibi gönderiyoruz ve komutumuz istediğimiz çalışıyor. şimdi sunucuda biraz gezinelim.

Web-3

XXE Konulu bir bölüme geldiğimizi direkt sayfanın kaynak koduna baktığımızda anlıyorduk. Bu isteği kendimiz yapıp biraz düzenlediğimizde bize okumamız gereken dosyayı zaten sistem kendisi söylüyordu. o dosyayı xxe yöntemiyle okuduğumuzda bizim karşımıza bir kaynak kod ve bu kodun nerede çalıştığı ile alakalı bir ip adresi geldi. Bu kaynak kodu incelediğimizde düzgün yazılmamış bir yetki kontrolü vardı basit bir şekilde aşılarak cevaba ulaşabiliyorduk.

Pwn-0

Sunucuya telnet-nc ile bağlandığımızda karşımıza ping atma kabileti olan bir servis çıkıyordu. bunda basit komut çalıştırma karakterleri girmeyi denedim. bazıları kara listedeydi ama biri hariç 🙂

Pwn-1

Bu sorunun çok fazla ilgi alanım olmadığından bilmiyorum. eğer başka yazılarda bulursam nasıl çözüldüğünü eklerim.
Soruyla uğraşmak isteyen varsa yukarıda verdiğim github reposundan soruya ulaşabilirsiniz.

Reverse-1

Bu sorunun çok fazla ilgi alanım olmadığından bilmiyorum. eğer başka yazılarda bulursam nasıl çözüldüğünü eklerim.
Soruyla uğraşmak isteyen varsa yukarıda verdiğim github reposundan soruya ulaşabilirsiniz.

Reverse-2

Bu sorunun çok fazla ilgi alanım olmadığından bilmiyorum. eğer başka yazılarda bulursam nasıl çözüldüğünü eklerim.
Soruyla uğraşmak isteyen varsa yukarıda verdiğim github reposundan soruya ulaşabilirsiniz.

Reverse-3

Bu sorunun çok fazla ilgi alanım olmadığından bilmiyorum. eğer başka yazılarda bulursam nasıl çözüldüğünü eklerim.
Soruyla uğraşmak isteyen varsa yukarıda verdiğim github reposundan soruya ulaşabilirsiniz.

Reverse-4

Bu sorunun çok fazla ilgi alanım olmadığından bilmiyorum. eğer başka yazılarda bulursam nasıl çözüldüğünü eklerim.
Soruyla uğraşmak isteyen varsa yukarıda verdiğim github reposundan soruya ulaşabilirsiniz.

Reverse-5

Bu sorunun çok fazla ilgi alanım olmadığından bilmiyorum. eğer başka yazılarda bulursam nasıl çözüldüğünü eklerim.
Soruyla uğraşmak isteyen varsa yukarıda verdiğim github reposundan soruya ulaşabilirsiniz.

Reverse-6

Çözümün Detaylı Açıklaması Burada: https://cybersaxostiger.github.io/2020/07/30/Unpacking-pyarmor-Soder-CTF/

Soruyla uğraşmak isteyen varsa yukarıda verdiğim github reposundan soruya ulaşabilirsiniz.

ASM-1

Verilen bir ASM kodunun çıktısını isteyen bir soruydu. basit bir şekilde işlem yaparak cevap bulunabiliyordu.

Soruyla uğraşmak isteyen varsa yukarıda verdiğim github reposundan soruya ulaşabilirsiniz.

ASM-2

yine erilen bir ASM kodunun çıktısını isteyen bir soruydu. Derlemeye gerek kalmadan da hesaplanabilen ve çözülebilen bir soruydu.

Soruyla uğraşmak isteyen varsa yukarıda verdiğim github reposundan soruya ulaşabilirsiniz.

OSINT-1

Soruda bir ipucu veriliyor ve elimizde yalnızca mac adresine benzer “82:2a:a8:7b:6b:f1” bir adres var. fakat vendor list’e baktığımızda hiç bir vendor’a ait olmadığını görüyoruz. bunun bssid olduğunu tahmin ediyorum, ve dünya üzerindeki wifi ağlarını gösteren bir sitede aratmak istiyorum. ve karşıma bu bssid e ait bir adet wifi çıkıyor, istanbula yakınlatığımızda “ayasofya”‘a ait bir wifi ağı olduğunu gördük. flag formatıyla yazdığımızda doğru cevabı bulmuş olduk.

flag{AYASOFYA2020!}

Stego-1

Çözemediğim sorulardan bi tanesi de buydu.

Soruyla uğraşmak isteyen varsa yukarıda verdiğim github reposundan soruya ulaşabilirsiniz.

3 Yorum

  1. İsmail İsmail

    Reverse sorularının çözümleri gelicek mi ?

  2. Çözemediğim için hayır, fakat writeuplarını yazan oldukça konuya ekleyeceğim.

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

This site uses Akismet to reduce spam. Learn how your comment data is processed.