[Qual Find-IT CTF] Baby -SHA

Pada challenge ini, diberikan sebuah file chall.py dan output.txt, di mana chall.py ini merupakan source code dari soal kriptografi Baby SHA dan output.txt merupakan output dari enkripsi hasil kodingan tersebut.

import hashlib

FLAG = ‘FindITCTF{REDACTED}’

now = “”
ct = []
for c in FLAG:
    now += c
    ct.append(
            int(hashlib.sha512(now.encode()).hexdigest(), 16)>>256
        )

print(f”ct = {ct}”)

Secara sederhana, flag yang asli dilakukan hash dengan metode sha512 dan dishift kanan 256 kali, namun yang di hash adalah gabungan karakter-karakter dari putaran sebelumnya. Contoh:

Flag: Halo

Hash #1: “H”

Hash #2: “Ha”

Hash #3: “Hal”

Hash #4: “Halo”

Penyelesaiannya adalah kami mencoba menggunakan teknik brute forcing per karakter yang mungkin menjadi flag lalu dijadikan bentuk hash seperti soal, dan dicocokkan dengan list di output.txt. scriptnya:

import hashlib, string

ct = […]
stringJadi = “”
string_de_brute = string.ascii_uppercase + string.ascii_lowercase + string.digits + ‘{‘ + ‘}’ + ‘_’

for i in ct:
    for j in string_de_brute:
      value = int(hashlib.sha512((stringJadi+j).encode()).hexdigest(),16) >> 256
      if value == i:
          stringJadi+=j
          break

print(stringJadi)

Flag: FindITCTF{BAbY_S3cUr3_H4sh_4l90r17HmZ_256__}

Published
Categorized as Misc

Leave a comment

Your email address will not be published. Required fields are marked *