Healthkathon BPJS 2022


CHALL’S

CategoryChallenge
Chall 1Chall 1

CHALL 1

http://pentest.student.1337hackathon.id:81/



Diberikan sebuah soal nomor 1 berupa webpage berikut, setelah itu kami cari tahu view page sourcenya seperti berikut



Kemudian kami menemukan clue pada saat kami meng-inspect halamannya, yaitu berupa strings base64

RGVjb2RlIHBhcnQ1IGJ5IHVzaW5nIHRoZSBYT1IgZnVuY3Rpb24gd2l0aCBjdXN0b20gY3NzIG51bWJlci4=


Setelah kami decode hasilnya seperti berikut

bash
$ echo 'RGVjb2RlIHBhcnQ1IGJ5IHVzaW5nIHRoZSBYT1IgZnVuY3Rpb24gd2l0aCBjdXN0b20gY3NzIG51bWJlci4=' | base64 --decode


Singkat cerita kami coba menggunakan curl dengan parameter -v untuk mencari informasi dari URL-nya, dan kami menemukan potongan flag berupa Hexadecimal

bash
$ curl -v http://pentest.student.1337hackathon.id:81/


Setelah itu kami coba decode dari format Hexadecimal to ASCII dengan tools https://www.rapidtables.com/convert/number/hex-to-ascii.html Didapatkanlah Flag Part1 s/d Part4 nya yaitu, BPJS{Mel4y4ni_s3penuh_h4t!_m3l4mp4u1 dan tinggal sisa Part5 dari flagnya yaitu %y?y=,#}

Sesuai dengan cluenya yaitu “Decode part5 by using the XOR function with custom css number.” maka dari itu kami mencari script untuk memecahkan XOR function dengan custom css number dan menemukan script dari post berikut https://crypto.stackexchange.com/questions/98727/how-can-i-decode-a-xor-cipher-with-a-string-key-i-know

Berikut script Python-nya

part5.py
def decrypt(encrypted: bytes, key: bytes):
    result = []
    
    for i in range(len(encrypted)):
        result.append(encrypted[i] ^ key[i % len(key)])

    return bytes(result)

Lalu kami jalankan dengan command python3 -i xor_solver.py dan didapatkanlah Part5 dari Flagnya yaitu h4r4pan

bash
$ python3 -i xor_solver.py
>>> encrypted = b"%y?y=,#"
>>> key = bytes([77])
>>> decrypt(encrypted, key)


Flag: BPJS{Mel4y4ni_s3penuh_h4t!_m3l4mp4u1_h4r4pan}