Sequence

Misc – 100 points

 

Soal

 

Service: 128.199.236.209

Port: 17845

 

*Test Koneksi: #nc 128.199.236.209 17845

 

Solusi

 

Ini adalah kuis sekuens bilangan sepertinya:

 

$ nc 128.199.236.209 17845

 

Halo Player,? Pola Token Segitiga…

Kamu punya 15.00 detik menjawab elemen dari index Ke: 12

 

Tantangan pertama adalah menentukan bilangan segitiga[1] yang ke-n. Ini bisa diselesaikan dengan script berikut (setelah dicoba ternyata ada 8 kali permintaan):

 

from pwn import *

r = remote(“128.199.236.209”, 17845)

print r.recvuntil(“Pola Token Segitiga…”)

def tri(n):
return n*(n+1)/2

for i in range(9):

print r.recvuntil(“index Ke: “)
soal = r.recvline().strip()
print “[-] Soal:  ” + soal

jawaban = tri(int(soal))
print “[+] Jawab: ” + str(jawaban)

r.send(str(jawaban))

 

Tantangan kedua adalah menentukan bilangan Fibonacci ke-n. Terdengar biasa, tapi ternyata nilai n yang diminta besar (ribuan), jadi perlu algoritme cukup efisien (yang iteratif misalnya).

 

Kerja Yang Bagus! Oke, Ini Bagian Yang Berbeda. Fibonacci!:

Waktumu 10.00 detik menjawab elemen dari index: 6665

 

Bisa diselesaikan dengan script berikut (lanjutan yang pertama tadi), ada 8 kali permintaan juga:

 

print r.recvuntil(“Fibonacci!:”)

def fib(n):
a, b = 0, 1
for _ in range(n):
a, b = b, a+b
return a

for i in range(9):

print r.recvuntil(“index: “)

soal = r.recvline().strip()
print “[-] Soal:  ” + soal

jawaban = fib(int(soal)-1)
print “[+] Jawab: ” + str(jawaban)

r.send(str(jawaban))

print r.recv(1024)

 

Setelah semuanya selesai, ternyata langsung ada flagnya:

 

Mantap Gan, Ini Yang Kamu Cari:

flag{_mamat_dan_sekur_selalu_bersama_}

 

[1] https://en.wikipedia.org/wiki/Triangular_number