progrez.cloud

SOLVED LogIN ITRACE 6/7

16 Maret 2023

Dalam soal kali ini kita dihadapkan dengan sebuah file executable yaitu LogIN


namun file tersebut tidak bisa dijalankan pada leptop saya, akan tetapi ada beberapa peserta yang bisa menjalankan file tersebut misalnya artikel ini.


saya penasaran apakah file tersebut tidak kompetibel dengan sistem operasi milik saya?

daripada pusing memikirkan mendingan kita cari solusi untuk mendapatkan flag.


Hal yang paling besik adalah mengecek isi file, berbeda dengan artikel ini yang menggunakan reversing tool yaitu radare2 disini saya menggunakan strings untuk mengecek isi file



Ketika saya mengecek isi file tersebut, logic dari file LogIN jika dijalankan maka kita diminta untuk memasukan usernaname dan password seperti halnya kita melakukan login, dan ketika berhasil secara otomatis mencetak file flag.txt yang dimana terdapat flag didalamnya bisa dilihat pada garis merah pada gamabr dibawah ini.


Saya berhasil mendapatkan username dan password menggunakan strings

username : itrace
password : #4^51()

namun filenya tidak bisa di eksekusi untuk mendapatkan flagnya.


Disini saya mencoba membuat simulasi seperti Logic dari chall yang diberikan menggunakan bash

#!/bin/bash

# Meminta input username dan password
echo -e "33[32mMasukkan username: 33[0m"
read username
echo -e "33[32mMasukkan password: 33[0m"
read password

# Memeriksa apakah username dan password benar
if [[ $username == "itrace" && $password == "#4^51()" ]]; then
 # Membuat file baru dengan nama itrace.txt
 touch itrace.txt
 # Menambahkan teks "ITRACE{LogIN}" ke dalam file itrace.txt
 echo "ITRACE{LogIN}" > itrace.txt
 echo -e "33[32mWelcome.Login Success! 33[0m"
else
 echo "Username atau password yang dimasukkan salah!"
fi



setelah dilihat-lihat ada yang menarik bisa lihat pada gambar dibawah ini ketika saya tidak sengaja melihat kode aneh pada file LogIN tersebut


Yang kira-kira kodenya sebagai berikut

49 54 52H41 43 4H5 7B 4F H6B 34 79H5F 75 5HF 6B 6E H6F 77 5FH72 33 7H6 33 72 H35 33 5FH62 61 7H3 21 63 H73 7D


Untuk mengetahui kode tersebut merupakan kode jenis apa, kita butuh untuk mendeteksi jenis kodenya. tapi dilihat dari pola kode terdapat huruf "H" yang dimana menandakan bahwa kode tersbut merupakan kode heksadesimal.

agar tidak ragu kita harus melakukan pengujian pengecekan kode tersebut


#!/bin/bash


hex="495452H41434H57B4FH6B3479H5F755HF6B6EH6F775FH72337H63372H35335FH62617H32163H737D"


# Menghapus karakter 'H' dan memisahkan setiap dua digit heksadesimal
hex_iluv=$(echo $hex | tr -d 'H' | sed 's/.{2}/& /g')


# Memeriksa apakah setiap karakter dalam kode termasuk digit hexa
is_hex=true
for hex_digit in $hex_iluv; do
  if [[ ! "$hex_digit" =~ ^[0-9a-fA-F]{2}$ ]]; then
    is_hex=false
    break
  fi
done


if $is_hex; then
  echo "33[32mKode tersebut adalah kode hexa.33[0m"
else
  echo "33[32mKode tersebut bukan kode hexa.33[0m"
fi


Ternyata benar kode tersebut merupakan kode hexa.


sekarang kita melakukan decode pada kode hexa tersebut

#!/bin/bash


# string hexa yang akan di-decode
hex_str="495452H41434H57B4FH6B3479H5F755HF6B6EH6F775FH72337H63372H35335FH62617H32163H737D"


# Menghapus karakter 'H' dari string hexa
hex_iluv=$(echo $hex_str | tr -d 'H')


# Mengonversi string hexa ke format binary
binary=$(echo $hex_iluv | xxd -r -p)


# Menampilkan hasil decode
echo "33[32m$binary33[0m"



Flag : ITRACE{Ok4y_u_know_r3v3r53_bas!cs}