Writeup CTFR 1000 Jam

Khairu Aqsara Sudirman

Khairu Aqsara Sudirman

Mar 30, 2021 — 2 mins read

Diberikan sebuah link ke website dengan alamat https://web.ctf.rasyidmf.com/chal21/, pada website tersebut jika diperhatikan source nya, terdapat barisan kode javascript Promise, sesuai deskripsi challengenya, kita diharuskan membaypass setTimeout() agar fungsinya bisa dijalankan tanpa harus menunggu x milidetik.

var r = "";
function s(ms) {
	return new Promise(resolve => setTimeout(resolve, ms));
}

function PpgNOzcFeUZgcYPsdxUi() { s(12026354).then(() => { r += 'o'; }) }
function fJAxgBFugUBRRabUAQpk() { s(5626290).then(() => { r += 'c'; }) }
function nbSdwryQRthNsRYGRDNa() { s(26726501).then(() => { r += '4'; }) }
function aZDSXnMrOYNrZSiGbvbV() { s(15926393).then(() => { r += 'e'; }) }
function AaEIGgyQJsJVXGVRBDkF() { s(8526319).then(() => { r += 'u'; }) }
...
...
...
function FcTVDosnbAzJFmhGMIKQ() { s(726241).then(() => { r += 'e'; }) }
function fqujETYLKBDXQLWuoOXG() { s(18726421).then(() => { r += 'h'; }) }
function edrGmjWGBqANESHqqhIz() { s(4726281).then(() => { r += 'o'; }) }
function zRfrwmhAAxBLYwMFXPFV() { s(24326477).then(() => { r += '{'; }) }
function ZWpyuxWcLLJxEnVYmxWg() { s(20426438).then(() => { r += 'u'; }) }

kemudian fungsi-fungsi tersebut dipanggil melalui sebuah fungsi dengan nama run(), jika diperthatikan dengan seksama semua fungsi diapanggil melalui fungsi s(ms) dimana ms merupakan milisecond, dan jika dipanggil menggunakan s(11426348).then() artinya fungsi tersebut akan dipanggil setelah 11426348 milidetik, cukup lama bukan, disini kita bisa mengganti semua variable milidetik dengan angka 1 dengan menggunakan regular expression [0-9]{1,8} menggunakan sublime atau notepad++, kemudian dijalankan, atau dengan memodifikasi fungsi sehingga variable ms pada fungsi s(ms) bisa cepat di eksekusi.

function s(ms) {
	return new Promise(resolve => setTimeout(resolve, ms/ms));
}

dengan begitu, semua ms akan bernilai 1 milidetik, tinggal dijalankan fungsi run(), karena semua fungsi tersebut memberikan nilai pada variable r, setelah menjalankan fungsi run(), tinggal di console.log(r) maka hasilnya akan muncul

ecuD nho uuuewfb ybav u,hfccu xuufhehochqn  ufvn ouuy euocj  
lcxn uuanlcguzeyyauuohobquazmsg  cc ba vhu u ovynfclhuudexhhfxum 
yu n l my ug xuochec,/uhlhefuuu jXycbufhyujne llun uoeoyy hh ulcnu 
nwjy wypgahs uhsuu,  xuccmhmzhZ :buym fifquN{ash_nn11Wx go344_nahs3la_Lomfb0hh}1n13_v_a0gDe 
cuechun fouuu ubv,wbuyfq ha fchxyucc  hov oenn fhuoeuucu  ljax unuglnycuygeubhuz abvquo 
omzcha c sha uhmvyuf ldonuchuxf euxuyg un u lhx ocmy/ ,cefyjluhuXehuy fucjehuub ul 
ulnenywyo hho unsu cujnl wmuygu haypmsxuif, 
hchc zb hyx fu:uZa sNqm{WnhaL141_g_3nnos4ov_30lhf_ahm1bnh_13}0ga

sampai disini, sudah terlihat jika bentuknya di enkrip, dengan melihat bentuk enkripnya saja sudah bisa dipastikan jika ini bentuk enkripsi dari subsitution cipher, bisa rot13 dan kawan-kawan nya atau caesar, setelah di decrypt, hasilnya

Jika kalian tau, bahwa challenge ini di buat untuk kalian agar dapat 
memerhatikan bahwa fungsi fungsi yang berjalan itu dalam keadaan tidur / sleep, 
Dikarenakan kalian para hacker tentunya tau pasti cara mengsolvednya, ini deh flagnya : 
CTFR{w4st1ng_t1m3_but_y0u_l34rn1ng_s0m3th1ng}
writeup ctf Web Exploitation
Read More

Writeup CTFR Eat This Flag

Diberikan sebuah link yang beralamat di http://103.157.96.13:7787/, setelah dibuka tidak ada yang menarik dari halaman yang diberikan, sesuai deskripsi challengenya, Eat This Flag dan ada kata-kata bisa dimakan kemungkinan informasinya ada didalam Cookie, setelah di cek Cookie bernilai kosong dan pada source halaman web terdapat keterangan berupa komentar <!-- C --> setelah di refresh Cookie bernilai Flask-Session-ID:6tvppjrkszesijr8nayu4r49fe dan komentar pada halaman web menjadi <!-- CTFR -->

Read More

Writeup CTFR Ganjil Genap

Challenge ini mengharuskan kita membuat sebuah program yang dapat mengkonversi kombinasi huruf menjadi karakter bintang * dan karakter titik, dengan aturan-aturan yang sudah ditetapkan sama si pembuat challenge.