Writeup HackerClass Compfest

Salam kenal saya KW atau di sebut Kang Writeup akan membagikan writeup buatan saya sendiri yang lagi belajar di HackerClass Compfest 2019. jika ada kesalahan atau ada yang kurang jelas bisa lampirkan di kolom komentar karena saya juga masih belajar. atau ada yang mau submit writeup nya ? saya akan menerima dengan senang hati 😊.

Disini saya akan buat urutannya pertama soal terus penyelesaian, jadi jika ada yang tidak ikut Hackerclass Bisa mencoba soalnya juga. Oke langsung saja kita ke pembahasan :

FORENSIC

So far so good [50]

work smart not hard
P.zip

Pembahasan :

Kita di berikan sebuah file zip yang isi nya banyak sekali file zip lainnya atau yang di sebut Nested Zip , sebetulnya bisa kita ektrak / unzip satu persatu tapi itu memakan waktu yang lama.

Akhirnya saya mencari di google dengan keyword "python unzip nested zip" dan menemukan sebuah kode python di stack overflow. kira kira kode python nya seperti ini 


import zipfile, re, os
    def extract_nested_zip(zippedFile, toFolder):
        """ Unzip a zip file and its contents, including nested zip files
            Delete the zip file(s) after extraction
        """
        with zipfile.ZipFile(zippedFile, 'r') as zfile:
            zfile.extractall(path=toFolder)
        os.remove(zippedFile)
        for root, dirs, files in os.walk(toFolder):
            for filename in files:
                if re.search(r'\.zip$', filename):
                    fileSpec = os.path.join(root, filename)
                    extract_nested_zip(fileSpec, root)

    

     extract_nested_zip("P.zip","/root/Unduhan/hacker class compfest/")

Untuk direktorinya sesuaikan dengan laptop kalian masing masing, tinggal jalankan script pythonnya dan file zip nya akan terektrak semua.Setelah itu kita cari dengan keyword flag seperti ini :



Nah kita menemukan 1 file flag.txt pas saya coba buka ternyata isi nya tidak ada flag melainkan hanya tulisan flag.txt saja. memang ngeselin ini adminnya kena tipu saya. saya perhatikan baik baik ternyata path direktori nya seperti membentuk encode base64 seperti ini :



kalau kurang jelas saya copy disini path nya :

/root/Unduhan/hacker class compfest/P/G/F/1/d/G/h/v/c/i/B/h/c/m/l/x/Y/m/F/z/e/W/F/y/P/i/B/h/a/C/B/p/I/H/N/l/Z/S/B/5/b/3/V/y/I/G/h/h/c/m/Q/g/d/2/9/y/a/y/w/g/a/G/V/y/Z/S/B/p/c/y/B/5/b/3/V/y/I/G/Z/s/Y/W/c/g/Q/0/9/N/U/E/Z/F/U/1/Q/x/M/X/t/i/Y/X/M/z/X/3/N/p/e/H/R/5/X/2/Y/w/d/X/J/f/Y/X/R/f/M/X/R/z/X/2/Z/p/b/m/V/z/d/H/0/=

tinggal kita copy path file flag.txt tadi terus kita rapikan sedikit dan decode base64. dan di dapatkan teks yang berisi flag seperti ini :

<author ariqbasyar> ah i see your hard work, here is your flag COMPFEST11{bas3_sixty_f0ur_at_1ts_finest}
flag : COMPFEST11{bas3_sixty_f0ur_at_1ts_finest}



Greb Floog [50]

Akan terdapat flag dalam aliran service berikut. Tangkap flagnya dengan format COMPFEST11{<string>}
nc 18.136.167.108 18018

Pembahasan :   

sesuai di soal kita di berikan perintah netcat / nc yang nanti nya digunakan untuk terhubung ke ip address 18.135.167.108 dengan port 18018, dan coba kita jalankan perintah tersebut :



untuk menghentikannya tekan ctrl+c. Wow ternyata setelah kita terhubung kita di suguhkan oleh teks acak yang bisa bikin sakit mata, kalau sesuai judul soal yaitu greb floog mungkin maksudnya kita di suruh menggunakan grep untuk mendapatkan flagnya dengan format COMPFEST11{<string>}. kita coba jalankan perintah nc + grep :

 nc 18.136.167.108 18018 | grep COMPFEST11{

setelah itu kita tunggu sampai muncul flagnya seperti ini.


flag : COMPFEST11{grab_or_grep_0fa15c8fcc6d91096de46bfe812215fa}



Creamy coffee [50]

let's play with your mood

Pembahasan :   

hal yang pertama saya lakukan adalah mengecek menggunakan binwalk siapa tau di dalam file coffee.jpg tersembunyi file lain.

binwalk coffee.jpg

dan ternyata benar di dalam file coffee.jpg tersembunyi 2 file yaitu JPEG dan ZIP. Lebih jelas nya lihat gambar di bawah :



untuk ektraknya kita bisa pakai foremost atau binwalk -e , kita coba ektrak menggunakan tool foremost dengan perintah :

foremost coffee.jpg

setelah itu kita cek di folder output dan di dapatkan gambar yang berisih flag. mungkin karena terburu buru jadi si pembuat soalnya lupa menghapus gambar flag.png yang seharusnya sudah di kompress zip.




Secret Message [50]

I found a flag archive on a certain site. But it's encrypted by something with Asymmetric Encryption
by: @Arisu

file : klik disini


Pembahasan :   

Di berikan file hasil capture ya anggap aja wireshark, jadi kita coba buka pakai wireshark. Hal yang biasa saya lakukan di wireshark adalah mengecek trafic POST dan trafic GET, cara nya tinggal paste kan kode di bawah di kolom pencarian dan rubah GET / POST nya sesuai kebutuhan.
http.request.method == "GET"


setelah saya mencari di traffic method get, saya menemukan 3 traffic yang terdapat file mencurigakan. file tersebut yaitu flag.zip, private_key.png, message.png. 




Sekarang kita coba ambil file tersebut menggunakan menu di wireshark file > export object > http > save all. 




File hasil save dari wireshark tadi saya coba cek satu persatu. Saya menemukan flagnya ada di dalam file flag.zip tetapi tidak bisa di lihat karena ada passwordnya dan kita tidak tau passwodnya, mungkin saja ada di 2 file png tersebut yang dalam bentuk barcode. Langsung kita decode barcode di https://zxing.org/w/decode.jspx

1. barcode message.png     = https://pastebin.com/baWQZjuS
2. barcode private_key.png = https://pastebin.com/TnZgRWS8 

setelah di telusuri ternyata itu adalah PGP Encryption. Bisa kita decode di sini https://sela.io/pgp/

yang isi message.png masukkan di kolom pesan sedangkan isi private_key.png masukkan di kolom private key setelah itu kita decode.



dan di dapatkan password file flag.zip tadi langsung kita coba buka dan lihat isi nya.



flag : COMPFEST11{http_c0mmunic4t10n_1s_n0t_s3cure}



PWN

Intro to Shell [50]

soal :
Anda akan diberikan shell

berikut adalah bacaan yang bagus untuk anda.
https://maker.pro/linux/tutorial/basic-linux-commands-for-beginners

nc 18.136.167.108 18007
 
Pembahasan :   

langsung saja kita jalankan perintah nc tersebut dan dengan clue basic command kita coba perintah ls untuk melihat daftar file / direktori di linux. 




Ternyata disana ada file flag.txt kemungkinan itu adalah flagnya. Kita lihat isi file nya menggunakan perintah cat.







Buffer [50]

soal :
nc 18.136.167.108 18040

Pembahasan :  

pertama saya coba melihat pseudocode dengan cara decompile menggunakan software IDA PRO dan menganalisis source programnya. seperti ini hasil decompilenya.



Disitu terlihat percabangan if yang di mana jika V5 sama dengan 0xDEADBEEF maka program akan menjalankan perintah cat flag. Sedangkan isi V5 adalah 200, bagaimana caranya biar kita bisa merubah nilai V5 menjadi 0xDEADBEEF ?. Sesuai dengan soal yaitu menggunakan teknik buffer overflow.


Dari input program kita masukkan huruf "A" sebanyak n kali hingga mengoverwrite nilai V5, kita bisa menggunakan teknik bruteforce untuk menebak berapa kali huruf "A" harus di masukkan biar sampai mengoverwrite.

for i in {1..100};
do echo $i;
python -c 'print "A" * $i + "\xef\xbe\xad\xde"' | nc 18.136.167.108 18040; done

untuk lebih jelasnya bisa lihat video berikut :
https://www.youtube.com/watch?v=p7GLbG8fHEk&t=24s




Buffer 2 [50] -pwn-

soal :
nc 18.136.167.108 18031
buf2

Pembahasan :

Soal ini hampir sama seperti sebelumnya yaitu tentang buffer overflow dan bisa menggunakan teknik bruteforce juga tapi sedikit berbeda. Soal sebelumnya kita harus mengoverwrite variabel sedangkan soal ini kita harus merubah alamat address return.

pertama kita lihat terlebih dahulu pseudocode nya menggunakan ida pro seperti ini :



program tersebut hanya menjalankan function buf2 terus return ke main program. Coba lihat kotak merah disitu selain ada function buf2 ada juga function back_door. mari kita cek satu persatu isi function buf2 dan back_door.

isi buf2 :



isi back_door :



nah tinggal kita lakukan buffer overflow hingga mengoverwrite return address yang seharusnya ke main program menuju ke address function back_door menggunakan bruteforce sebelumnya.

video lebih jelasnya bisa lihat disini :
https://www.youtube.com/watch?v=3doX4KpHz9o

Cascading Style Sheets [50] -web-

soal :
 

Oops I add some html source into CTFd and some information lostTo view, or to inspect? That is the question. https://hackerclass.compfest.id/greeting


Pembahasan :

kita di berikan sebuah halaman web yang tampilannya seperti berikut :



sesuai dengan soal yaitu css kita coba lihat source code halaman tersebut :



nah saya menemukan potongan flag di dalam css nya, dan potongan tersebut ternyata milik div di bawah huruf jepang. mari kita coba inspect element div tersebut dan merubah warna fontnya biar bisa di lihat flagnya .



flag : COMPFEST11{C5S_is_cool_bro!}



Evil Corp. [50] -web-

soal :

There are rumors floating around Hackernews that Evil Corp. Is up to no good. So far, there has been no evidence to support the claim.

Can you have a look at their http://152.118.201.254:18011

hint : Selidiki konfigurasi settings website tersebut.

Pembahasan : 

di berikan sebuah link website yang menggunakan django, tampilannya seperti berikut :



saya coba buka direktori terserah untuk melihat apakah django debug nya aktif atau tidak, http://152.118.201.254:18011/xxxxx




ternyata debugnya dalam keadaan aktif dan kita menemukan sebuah direktori bernama "top-secret-internal-stuff" mari kita coba buka direktori tersebut :


 
setelah kita buka muncul tulisan "You are connecting via external access!" dan kita di alihkan ke halaman utama index yang dimana kita harus mengakses halaman web tersebut melalui internal akses.

bagaimana caranya kita mengakses nya ? saya sudah mencoba cara cookie,useragent,referer,dll tetapi masih belom berhasil juga. Akhirnya saya di beri sebuah clue sama teman saya yaitu django allowed_host untuk cara melihatnya kita harus mengirim request host terserah ke web nya. seperti ini kalau di curl :

curl -H "Host: xxxx" http://152.118.201.254:18011

atau bisa menggunakan cara lainnya. nanti muncul konfigurasi nya seperti ini, dan kita lihat di bagian allowed_host :



host yang boleh mengakses http://152.118.201.254:18011/top-secret-internal-stuff/ adalah localhost sama ip 152.118.201.254. tinggal kita jalankan perintah request host seperti sebelumnya 

curl -H "Host: localhost" http://152.118.201.254:18011/top-secret-internal-stuff/



flag : COMPFEST11{wow_you're_starting_to_act_like_a_real_hacker}



Gedebug [50] -web-

soal :

http://gedebug.herokuapp.com/

Pembahasan :
Di berikan sebuah link web, soal ini hampir sama seperti sebelumnya yaitu debug django untuk melihat direktori yang ada di website tersebut. Mari kita coba. http://gedebug.herokuapp.com/xxxxx



kita buka yang top secret dan lakukan debug lagi seperti sebelumnya :
http://gedebug.herokuapp.com/top-secret-959e4ffe6e61/xxxxx



ada file bernama flag disitu kita buka dan di dapatkan flagnya :
http://gedebug.herokuapp.com/top-secret-959e4ffe6e61/flag



flag : COMPFEST11{turn_off_debug_mode_in_production_lol}




Guess The Number [50] -web- 

soal :

http://18.136.167.108:18030/
source

Pembahasan :

maaf tidak bisa menjelaskan secara detail karena server nya sudah di close, singkat nya kita bisa menggunakan curl untuk mengirim POST seperti ini perintah nya.

curl -X POST --data "guess=123&number=123" http://18.136.167.108:18030/

flag : ?



Basic Reversing [50] -web-

soal :

Cari tahu apa state memori di akhir program.
file  : basic_assembly.asm
hint :  gunakan module python yang bernama struct

Pembahasan :

Di berikan file dalam bahasa assembly tinggal kita baca saja seperti ini :

push 0x1010101 ^ 0x7d35            // di xor masukkan esp
xor dword ptr [rsp], 0x1010101    // esp di xor lagi
mov rax, 0x343332315f676e69     // masukkan rax
push rax                                         // rax di masukkan esp
mov rax, 0x7372657665725f79      // masukkan rax
push rax                                         // rax di masukkan esp
mov rax, 0x6c626d657373615f      // masukkan rax
push rax                                         // rax di masukkan esp
mov rax, 0x63697361627b3131      // masukkan rax
push rax                                           // rax di masukkan esp
mov rax, 0x54534546504d4f43      // masukkan rax
push rax

isi stack memori esp dalam little endian dan sudah di hex decode :

}54321_gnisrever_ylbmessa_cisab{11TSEFPMOC

setelah itu tinggal kita reverse text maka hasilnya seperti ini :

COMPFEST11{basic_assembly_reversing_12345}

atau bisa juga menggunakan pemprogaman python :


flag :  COMPFEST11{basic_assembly_reversing_12345}



Redacted Document [50] -misc-


How leet are you?
Redacted-Document.pdf


Brutus and Caesar [50] -kriptografi-


Jxu qsjyed ev q Squiqh syfxuh yi je hufbqsu uqsx fbqydjunj bujjuh myjx q tyvvuhudj edu q vynut dkcruh ev fbqsui temd jxu qbfxqruj. Jxu syfxuh ybbkijhqjut xuhu kiui q buvj ixyvj ev jxhuu, ie jxqj (veh unqcfbu) uqsx esskhhudsu ev U yd jxu fbqydjunj rusecui R yd jxu syfxuhjunj. Yd shofjewhqfxo, q Squiqh syfxuh, qbie ademd qi Squiqh'i syfxuh, jxu ixyvj syfxuh, Squiqh'i setu eh Squiqh ixyvj, yi edu ev jxu iycfbuij qdt ceij mytubo ademd udshofjyed jusxdygkui. Yj yi q jofu ev ikrijyjkjyed syfxuh yd mxysx uqsx bujjuh yd jxu fbqydjunj yi hufbqsut ro q bujjuh iecu vynut dkcruh ev feiyjyedi temd jxu qbfxqruj. Jxu vbqw yi: rhkjki_aybbut_squiqh_rhkju_vehsu_aybbut_xyi_syfxuh, ted'j vehwuj je fkj yj yd jxu sehhusj vehcqj! Xqffo fmdydw!


A Few Bits of Modern Crypto [50] -kriptografi-


Whether it's secure or not, I know that it cannot be both!

file.zip

sabe64 [50] -kriptografi-


You'll never crack this, I think.

Connect with: nc 18.136.167.108 18006

file : app.py
Note : The flag format is COMPFEST11{<something_something>}


Abusing Floating Storage [50] -binary exploit-


dapatkan anda menebak bilangan dari clue yang diberikan?

nc 152.118.201.254 18015
file : a.out

The Intern [338] -reverse enginering-


Happy holidays!

It's that time of the year again. After finishing the semester, and spending the new year at his hometown, Monte Carlo. Odlanyer is doing another internship this holiday at some hip new startup.

In his first week, he is tasked with optimizing the company's algorithms. Lucky for him he learned a few tricks from his Data Structure and Algorithms course that he can use for this task.

Unsurprisingly, Odlanyer managed to complete his task in a single day. His algorithm seems to work correctly and much faster than the previous algorithm. "It's O(n+m) compared to the old O(nm)", Odlanyer says with much confidence.

Right now Odlanyer is currently running tests in production to see where the algorithm fails, because his manager isn't quite sure about the correctness of the algorithm. So far, the new algorithm has not yield an incorrect result.

Can you read through Odlanyer's messy code and identify the correctness of it? You'll be rewarded a flag by the company (and possibly Odlanyer's job too).

Connect with: nc 152.118.201.254 18009

file : src.zip

sedikit yang bisa saya selesaikan selebih nya saya minta maaf jika ada salah kata atau kurang jelas, spesial thanks to hendro, fauzan, dll yang sudah membantu mengerjakan soal ctf hackerclass ini.

sumber :
https://github.com/afmaghribi/HackerclassCompfestXI
https://www.youtube.com/user/EmzHendro/

Belum ada Komentar untuk "Writeup HackerClass Compfest"

Posting Komentar

Iklan Atas Artikel

Iklan Tengah Artikel 1

Iklan Tengah Artikel 2

Iklan Bawah Artikel