Не важно, как медленно ты продвигаешься, главное, что ты не останавливаешься.


Tuesday 22 March 2016

FIT 2016 reverseme

Kali ini kami akan membahas salah satu soal CTF FIT 2016 tentang reverseme, file dapat diunduh di link[soal]. Karena keterbatasan waktu, soal ini belum sempat dijawab, kami akan mencoba untuk mengupas cara untuk mendapatkan flag dengan menggunakan radare2.

Gambar 1 : start r2 debug mode
Dimulai dengan membuka reverseme menggunakan radare2 dalam debug mode dengan flag percobaan 12345678901234567890, mengapa flagnya seperti itu?, setelah kami telusuri panjang flag haruslah 20, ini terdapat pada fungsi main yang bisa anda jelajahi lebih lanjut, jalankan perintah 'aaa' untuk analyze dan 'afl' untuk melihat fungsi yang berada pada reverseme. Proses analisis akan kami mulai dengan fungsi main.

Gambar 2 : Analisis fungsi main
Jalankan perintah 'pdf @ main' untuk melihat code pada fungsi main, kemudain kami menemukan bagian yang menarik seperti pada gambar dibawah ini.

Gambar 3 : String flagnya benar!

Dimana sebelumnya terdapat pemanggilan fungsi memcmp. Maka kami mencoba menambahkan breakpoint pada alamat 0x00400813 dan melanjutkan proses debugging sampai ke breakpoint yang telah dibuat.

Gambar 4 : Breakpoint
Agar lebih mudah masuk ke mode visual dengan 'Vpp'.

Gambar 5 : RAX RCX
Perhatikan rax dan rcx sebelum pemanggilan memcmp, sama besarnya 0x14 atau 20 dalam desimal. Masih digambar yang sama nilai rax = 0x7ffd04336f94 dan rcx = 0x7ffd04336f60. Mari kita telusuri apa yang ada di alamat itu.

Gambar 6 : RAX RCX values
Jika diperhatikan pola rcx seperti tidak asing lagi, yaitu 12345678901234567890 setelah ditambah beberapa operasi jadilah seperti itu. Sementara rax merupakan string yang akan dibandingkan, yang kemungkinan adalah flagnya. Maka kita simpan nilai hex yang terdapat pada @ rax.

Gambar 7 : rax value
Simpan rangkaian hex '1d260b716f6e6d380b473a113a3b213e31444532' yang selanjutnya akan kita bedah menggunakan python.

Kemudian pertanyaan selanjutnya adalah ada operasi yang dilakukan sebelum masuk ke fungsi compare? jika sudah menemukan fungsi tersebut maka key ini dapat didecrypt dengan mudah.

Gambar 8 : Fungsi encrypt

Jika ditelusuri ('VV @ main' pada radare) terdapat fungsi sebelum melakukan comparing, ternyata karakter tersebut diolah dengan operasi xor 0x55 kemudian ditambahkan 0xa. Maka untuk mendapatkan fungsi deskripsinya operasi tersebut dibalik menjadi char chiper - 0xa kemudian di xor dengan 0x55. Kira-kira seperti ini pada python.

Gambar 9 : Flag
Setelah mendapat flag, mari kita verifikasi dengan cara memasukkan ke program reverseme.

Gambar 10 : Flag benar
Selamat, flagnya benar!

FIT2016{TheRedBaron}
5 λ .: March 2016 Kali ini kami akan membahas salah satu soal CTF FIT 2016 tentang reverseme, file dapat diunduh di link[ soal] . Karena keterbatasan waktu, s...

Wednesday 2 March 2016

WebApp Security 101 : Vulnerability Scanner

Vulnerability scanner merupakan tools yang dirancang untuk mencari kelemahan pada apikasi, dalam konteks ini web application seperti SQL injection, XSS, CSRF, bruteforce, dll. Ada berbagai macam web vulnerability scanner baik yang gratis maupun berbayar, yang dibedakan berdasarkan fiturnya. Dengan menggunakan vulnerability scanner kelemahan pada website dapat dilihat secara cepat. Namun, bukan berarti dengan menjalankan scanner website tersebut sudah aman, karena scanner ini hanya menjalankan/mencari vuln yang sudah umum dan biasa. Adakalanya untuk perlu pengecekan secara manual agar temuan dapat dinyatakan benar-benar valid. Bahkan dibeberapa kondisi seperti kompetisi CTF maupun bugbounty, scanner dilarang digunakan karena akan membanjiri server dengan traffic yang padat. Tetapi, untuk pengetesan, scanner sangat membantu dalam melihat seberapa baik keamanan website secara keseluruhan.

Berikut ini, kami mencoba untuk review beberapa tools web vulnerability scanner yang didapatkan secara gratis. Umumnya versi gratis tidak dilengkapi dengan fitur reporting yang mempermudah untuk membuat laporan, karena sudah disediakan template dari tools tersebut.

Kelengkapan yang perlu disiapkan:
- VM berisi server baik Windows/Linux (dapat digunakan sesuai selera)
- Web service Apache/NginX/etc lengkap dengan database
- Vuln web app (dalam kasus ini menggunakan DVWA)
 
Vega Vulnerability Scanner

Tool yang pertama kami coba adalah Vega, tersedia versi free, dibeberapa distro pentest seperti Kali disediakan secara default. Penggunaan cukup mudah karena disediakan GUI untuk menjalankan scan. Untuk yang pertama kali mencoba pun, kami rasa tidak akan kesulitan karena tidak banyak yang perlu diset, hanya informasi seperti IP target / nama domain, cookies, dll. Sayangnya tidak dilengkapi dengan fitur reporting, Namun, disediakan summary dari scanning yang telah dijalankan.


Secara singkat, Vega memberikan summary yang dibagi kedalam beberapa level (high, medium, low, dan info).


Selain itu, Keterangan yang diberikan mengenai temuan juga bisa dibilang lengkap. Mulai dari impact yang ditimbulkan page mana yang vulnerable, sampai referensi yang bisa user telusuri.


ZAP merupakan tool yang dibuat oleh OWASP yang bisa digunakan untuk web vulnerability scanner. Selain mudah digunakan, ZAP juga dilengkapi dengan fitur generate report yang sangat membantu untuk pembuatan laporan. Seperti namanya'Proxy', sudah dilengkapi dengan proxy untuk menganalisis header HTTP.

Seperti Scanner yang lain, summary yang dibuat dilengkapi dengan level risk, vulnerability, serta dilengkapi beberapa referensi yang dapat dibaca.


Sementara itu, fitur reporting dapat diexport ke format html dan xml sehingga dapat direview secara keseluruhan melalui browser.


Itulah sedikit re view dari kami, sebenarnya masih banyak scanner lain baik yang gratis maupun berbayar. Apapun kemampuan yang scanner miliki, hasil dari scan perlu di-check ulang untuk memastikan vuln yang ada. 

Jika ada kritik dan saran, silahkan disampaikan.
5 λ .: March 2016 Vulnerability scanner merupakan tools yang dirancang untuk mencari kelemahan pada apikasi, dalam konteks ini web application seperti SQL in...
< >