---
# System prepended metadata

title: DAY-1

---

# WriteUp Capture The Flag FTUI DAY-1

## <center>Tyzals</center>

<center>
 <img src='https://hackmd.io/_uploads/SkGKON6Bge.png
'/>
</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)

---
---

## 🟢 Easy

### <a id="netcyber"></a> Netcyber
> **Poin:** 300
> **URL:** `https://netlab-ctf-netcyber.tagj8z.easypanel.host/`

#### 🧩 Cerita Awal
Pas buka challenge ini, tampilannya keliatan kayak web company biasa. Gak ada tombol aneh, gak ada input field, keliatan banget kayak landing page doang.

> ✨ Feeling awal: "Hmm... pasti ada sesuatu yang disembunyiin."

Langsung aja saya scan pake tool `dirsearch`.

#### 🔍 Hasil Dirsearch
Ditemuin endpoint `/flag` yang ternyata langsung redirect ke `/login`.

---

#### 🔐 Halaman Login
Di halaman `/login`, ada form dengan username dan password. Awalnya saya kira ini challenge tentang SQL Injection.

Saya cobain payload seperti:
*   `' OR 1=1--`
*   `admin' #`
*   dan semacamnya...

Tapi gak ada respon yang mencurigakan. Gak error, gak redirect, gak muncul tanda berhasil login.

![image](https://hackmd.io/_uploads/Hke6S76Bxg.png)

---

#### 🕵️ Kembali ke Home
Karena mandek di halaman login, saya balik lagi ke halaman utama. Scroll sampai bawah, saya nemu bagian ini:

> **Ready to Secure Your Business?**  
> Contact us today to schedule a consultation or learn more about our services.  
> ✉️ `notkamalfrfr@x.com`

Nah ini mencurigakan banget. Nama `notkamalfrfr` ini unik dan kayaknya bukan email beneran.

---

#### 🔍 Stalking di X (Twitter)
Saya coba cek ke `x.com` dengan username `notkamalfrfr`, dan bener aja: ada akun dengan username itu.

> 🧠 Feeling saya bilang, "Pasti ada sesuatu di sana..."

Ternyata dia pernah upload foto tampilan login yang password-nya keliatan.  
Password-nya: `uiauiaui_uiiiauia`

![image](https://hackmd.io/_uploads/B1ZeU7Trxl.png)

---

#### ✅ Login Sukses
Saya cobain login pakai:
*   **Username:** `notkamalfrfr`
*   **Password:** `uiauiaui_uiiiauia`

Dan... boom! Langsung masuk dan muncul flag 🎉

![image](https://hackmd.io/_uploads/ryJGU7prxx.png)

---
### 🏁 Flag
```
TECHNOSKILL{Tr4l4l3LoTr4lala_tun9tun9s4hur}
```

---

### <a id="kfc"></a> 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{--.---, ---.---}`

#### 🧩 Permulaan
Jadi di challenge ini kita cuma dikasih **sebuah gambar** KFC.  
Awalnya bingung ini ngapain...(udah cek metadata dsb) kayak cuma foto biasa doang, tapi pas diperhatiin, ternyata...

> Gambar ini kayak **dihalangi oleh pattern atau watermark**.  
> Gak bisa di-scan pakai Google Lens, hasilnya kacau.

![Capture-min](https://hackmd.io/_uploads/HkWyvX6Sgx.png)

---

#### 🧠 Clue Tersembunyi: Lokasi Jepang?
Kalau diperhatiin baik-baik, di gambar itu ada **tulisan Jepang**.  
Dari situ saya mulai mikir, *"Oke, berarti ini KFC di Jepang."*

Tapi ternyata... **jumlah cabang KFC di Jepang tuh ada 1200+** 🤯  
Bisa gila kalau harus cari satu-satu.

---

#### 🪄 Gunakan AI untuk Hilangkan Watermark
Saya keinget bisa pake tool online buat hapus watermark.  
Langsung googling dan nemu: `https://www.watermarkremover.io/`

Upload gambarnya ke situ, dan boom... watermark-nya ilang.

![wmremove-transformed](https://hackmd.io/_uploads/Hy6sI7aHgg.png)

---

#### 🔍 Google Lens Menyelamatkan
Begitu watermark hilang, saya buka Google Lens dan scan gambarnya.  
Langsung muncul hasil pencarian lokasi, dan... beneran ketemu!

![1-min](https://hackmd.io/_uploads/B1E_wQTSxg.png)

---

#### 🧠 Plot Twist: Gojo & Geto?
Deskripsi challenge ini sempat bikin saya mikir keras:

> *"The last place we talk to each other before you become another person."*

Setelah saya cari tahu (maklum, bukan wibu 😅), ternyata itu **referensi ke anime Jujutsu Kaisen**, tempat Gojo dan Geto terakhir kali ngobrol — yaitu **KFC Shinjuku**.
[Lihat di Google Maps](https://www.google.com/maps/place/KFC+Nishi-Shinjuku/@35.6929591,139.6994212,17z/data=!3m1!4b1!4m6!3m5!1s0x60188d71d64189f1:0xfcf989420881bb2d!8m2!3d35.6929591!4d139.6994212!16s%2Fg%2F1tjkfswz?entry=ttu&g_ep=EgoyMDI1MDcwNy4wIKXMDSoASAFQAw%3D%3D)

---

#### ⚠️ Format Flag Bikin Kesel
Saya sempat beberapa kali **salah submit** karena format flagnya sensitif.  
Setelah beberapa kali percobaan dan nyobain dua format (alamat & koordinat), akhirnya ketemu yang benar.

---
### 🏁 Flag
Flag utama:
```
TECHNOSKILL{1 Chome-2-10 Nishishinjuku, Shinjuku City, Tokyo 160-0023, Japan}
```
Format alternatif (berdasarkan deskripsi):
```
TECHNOSKILL{139.699, 35.692}
```

---

### <a id="yummy-cookie"></a> Yummy Cookie
> **Poin:** 300
> **URL:** `https://netlab-ctf-cookie-yumy.tagj8z.easypanel.host/`

#### 🍪 Pertama Kali Masuk
Pas buka web-nya, tampilannya sederhana banget:

![image](https://hackmd.io/_uploads/H1USOXaBle.png)

Form login ini cuma minta **username doang**, gak ada password sama sekali. Yaudah, saya masukin nama sembarang.

---

#### 🙄 Setelah Login
Begitu masuk, tampilannya berubah jadi kayak gini:

![image](https://hackmd.io/_uploads/BkaUd7TBgg.png)

Hmm... biasa banget dan kayak gak ada apa-apa.

---

#### 🍪 Karena Judulnya "Yummy Cookie"...
Saya jadi curiga jangan-jangan ada rahasia di **cookie-nya**. Langsung saya buka cookie pake **Cookie Editor (extension Chrome)**, dan bener aja...

Ada cookie bernama `user` dengan value `<username_yang_kita_input_tadi>`.
![image](https://hackmd.io/_uploads/H1KYuQargx.png)

---

#### 👨‍💼 Ubah Jadi Admin
Langsung aja saya ubah value cookie `user` menjadi `admin`, lalu refresh halaman...

Boom! Halaman berubah:

![image](https://hackmd.io/_uploads/Hkmo_Q6Blx.png)

---

#### 🔓 Decrypt Base64
Bagian terakhir menampilkan address yang kayak acak-acak gitu:
`aHR0cHM6Ly9wYXN0ZWJpbi5jb20vYWVyTXVzcWs=`

Saya langsung decode base64 → hasilnya:
`https://pastebin.com/aerMusqk`

![image](https://hackmd.io/_uploads/ryUnuQprlx.png)

Buka link tersebut, dan... ada flag-nya!
![image](https://hackmd.io/_uploads/rJYauXTrel.png)

---
### 🏁 Flag
```
TECHNOSKILL{yum_yum_c00k135_50_yummie}
```

---

### <a id="scenario"></a> Scenario ???
> **Poin:** 300
> **URL:** `https://netlab-ctf-bull-board.tagj8z.easypanel.host/`

#### 🧩 Deskripsi
Begitu buka web-nya, kita langsung dilempar ke `/login` dan cuma disuruh masukin nama. Hmm... awalnya ngira ini bakal simple, tapi ternyata...

![image](https://hackmd.io/_uploads/H1cWF7arxe.png)

Setelah submit nama (aku masukin aja nama sembarang), langsung masuk ke halaman *Bulletin Board*. Di situ ada semacam chat board dengan berbagai karakter ngomongin sesuatu yang kayaknya nyambung satu sama lain. Awalnya agak ngaco, tapi kalau diperhatiin ada clue walau ada fake flag.

![image](https://hackmd.io/_uploads/rJAPFQpHlx.png)

---
#### 🔎 Proses Penyelesaian
Ahh, saya coba langsung GET datanya aja deh, ternyata bener ternyata pake API:
![image](https://hackmd.io/_uploads/HkqCYQTBll.png)

Pas dilihat di responsenya ternyata ada...
```json
...
{
    "username": "kim_dokja",
    "message": "This scenario seems information-based..."
},
{
    "username": "yoo_joonghyuk",
    "message": "The only answer is to find the endpoint directly..."
},
{
    "username": "han_sooyoung",
    "message": "Let him waste time..."
},
{
    "username": "admin",
    "message": "[Log] Origin: tls123 | Extracted: 'TECHNOSKILL{N3v3r'"
},
...
{
    "username": "admin",
    "message": "[Log] Continued fragment: '_ending_5t0ry}' | Source file: story_final_final2_draft.json"
},
...
{
    "username": "admin",
    "message": "[Log] Fully assembled: TECHNOSKILL{Neverending_5t0ry}"
}
...
```
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 *Network* → cari request yang ambil data `GET /api/posts`.
3.  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.
4.  Yak! Itu flag-nya! 🎯

---
### 🏁 Flag
```
TECHNOSKILL{Neverending_5t0ry}
```

---
---

## 🟡 Medium

### <a id="replayer"></a> Replayer
> **Poin:** 400
> **URL:** `https://netlab-ctf-replayer-fe.tagj8z.easypanel.host/`

#### 🕵️‍♂️ Deskripsi Awal
Saat pertama kali membuka *web*, kita akan melihat tampilan sebuah *chatbot* sederhana. Kita bisa mengetik teks tapi cuma nerima input ls dan cat <file> doang, dan *chatbot* akan memberikan balasan. Awalnya, tidak ada yang aneh, tapi Jam Terbang CTF saya langsung menyala 🧠💥.

Model aplikasi seperti ini sering kali digunakan dalam *challenge* **Command Injection**. Jadi, saya langsung mencoba *payload* standar.

---

#### 🧪 Eksploitasi Command Injection
Saya mencoba *payload* klasik untuk **Command Injection**:
```
;ls
```
Dan *boom*! Respons dari *chatbot* memberikan daftar *file* atau *folder* yang ada di direktori saat ini:

![image](https://hackmd.io/_uploads/By9Uimarex.png)

Ini mengonfirmasi bahwa *command injection* berhasil dan *chatbot* terhubung ke sistem *file*. Saya lanjutkan eksplorasi:
```
;ls ../
```
*Output* menunjukkan daftar direktori induk, dan saya melihat sesuatu yang menarik:

![image](https://hackmd.io/_uploads/BJWOomprxx.png)

Ada *folder* bernama `secret`! Tanpa ragu, saya langsung mencoba melihat isinya:
```
;ls ../secret
```
Dan ya, saya menemukan `flag.txt`:
```
;cat ../secret/flag.txt
```
![image](https://hackmd.io/_uploads/rkEtjmaBlg.png)

🎉 *Flag*-nya langsung muncul!

---
### 🏁 Flag
```
TECHNOSKILL{WOW_you_dug_deep_huh}
```

---

### <a id="727"></a> 727
> **Poin:** 400
> **URL:** `https://netlab-ctf-727.tagj8z.easypanel.host/`

#### 🕊️ Deskripsi Singkat
*Challenge* ini nawarin pengalaman yang beda banget dari CTF pada umumnya. Dengan tema waktu, kultus, dan simbol-simbol misterius, "Cult of 7:27" ngajak kita nyelam ke dalam teka-teki tersembunyi yang cuma bisa dipecahin kalau kita **sabar dan peka banget**. Di halaman web-nya, enggak ada *form login*, enggak ada tombol apa-apa, cuma ada satu pesan jelas:

![image](https://hackmd.io/_uploads/Sk-8146Ble.png)

---

#### 🕰️ Bagian Kritis: Jam UTC Jadi Kunci!
Begitu kita buka *web*-nya, yang paling menonjol itu **jam UTC** yang terus berputar. Enggak ada yang bisa dilakuin selain ngeliatin jam itu dan pesan misterius tadi. Dan ya, sesuai nama *challenge*-nya, kita langsung curiga kalau jam **07:27 UTC** itu kunci rahasianya.

Setelah nyoba ngubah waktu sistem di komputer (lewat Pengaturan Tanggal & Waktu Windows), begitu jam menunjukkan tepat **07:27 UTC**...
![image](https://hackmd.io/_uploads/rJBzy4pHll.png)
*jeng-jeng*... halaman *web*-nya langsung berubah sendiri!

---

#### ✨ Transisi Halaman: Wahyu Terungkap!
Begitu waktu tepat di 07:27 UTC, muncul kutipan baru yang bikin merinding:

![image](https://hackmd.io/_uploads/HJxOyyEpBgx.png)

Dan yang paling penting, muncul tombol baru yang bikin penasaran:

> **Receive the Revelation**

Saat tombol itu diklik, kita langsung dapet *file* **`vision.zip`**. Hore!

---

#### 📦 Mengungkap Isi `vision.zip`
Di dalam *file* ZIP itu, ada dua *file* lagi yang jadi petunjuk kita selanjutnya:
*   `path.txt`
*   `runes.txt`

**📝 `path.txt`**
Isinya cuma pesan samar yang bikin mikir:
> *"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."*

**🔐 `runes.txt`**
Ini isinya simbol-simbol aneh, kayak tulisan kuno:
```
⟒⟂⟊⟉ᚴ⟆ ⟃ᚺ⟆ ᚴ⟆ᚡ⟆⟐
```

---

#### 🧠 Mencari Sang `Seer` (Exorthe)
Dari kutipan yang muncul pas transisi halaman, ada nama `Exorthe@Github.com`. Ini langsung jadi petunjuk vital! Aku langsung nyari *username* `Exorthe` di GitHub, dan bener aja, ada sebuah repositori publik yang berisi *file* bernama **`tablet.txt`**. Jackpot!

![image](https://hackmd.io/_uploads/BJxt1EpHeg.png)

---

#### 📜 Memecahkan Kode di `tablet.txt`
*File* `tablet.txt` ini ternyata adalah kunci untuk menerjemahkan simbol-simbol (rune) tadi. Isinya semacam pemetaan simbol ke alfabet biasa, yang kelihatannya pakai **Atbash cipher** (alfabet terbalik):
```
Z-Y-X-W-V-U-T-S-R-Q-P-O-N-M-L-K-J-I-H-G-F-E-D-C-B-A
⟌-ᛣ-ᛪ-⟄-ᚡ-ᚢ-⟃-ᚴ-⟂-ᛩ-⟒-ᚩ-⟐-ᛖ-⟗-ᛕ-ᛁ-⟉-ᚺ-⟈-ᚠ-⟆-⍒-ᛃ-ᓭ-⟊
```
Setelah dicocokin simbol dari `runes.txt` dengan pemetaan ini:
*   `⟒` = P
*   `⟂` = R
*   `⟊` = A
*   ...dan seterusnya

Hasil terjemahannya adalah: **PRAISE THE SEVEN**

---
### 🏁 Flag
```
TECHNOSKILL{PRAISE_THE_SEVEN}
```
---

### <a id="login-2-0"></a> Login 2.0
> **Poin:** 400
> **URL:** `https://netlab-ctf-login-fe.tagj8z.easypanel.host/`
> **Deskripsi:** This time i have added some new security measures

#### 🕵️‍♂️ Penyelidikan Awal
Begitu buka *web*-nya, kita langsung disuguhkan halaman *login* standar:

![image](https://hackmd.io/_uploads/rJeHZ4TBex.png)

Melihat *form login* seperti ini, insting pertama saya langsung bilang: "Pasti **SQL Injection**!" 🧠

Saya coba *payload* klasik untuk SQL Injection di kolom *password*, seperti:
**Email:** `sembarang@example.com`
**Password:** `' or 1=1 limit 1 -- -+`

Tapi, hasilnya cuma `Invalid credential`. Wah, kok gagal ya?

---

#### 🔍 Mengungkap Sanitasi di Konsol
Karena gagal, saya langsung buka **Console** di *browser* (biasanya F12) untuk melihat apa yang terjadi di balik layar. Dan di sinilah petunjuk pentingnya muncul! Saya melihat *log* seperti ini:

![image](https://hackmd.io/_uploads/S1_L-4aBxg.png)

*Output* `Sanitized Password` itu langsung bikin saya **notice**: ada proses sanitasi yang membuang karakter penting seperti `or`, `'`, dan `;` dari *payload* SQL Injection saya! Ini artinya, ada **filter di sisi *client*** (di *browser*) karena dia dari `index-C6f-3x8_.js`.

---

#### 💡 Analisis Kode JavaScript
Saya langsung tahu kalau proses sanitasi ini terjadi di *file* `index-C6f-3x8_.js` seperti yang ditunjukkan di konsol. Begitu saya buka *file* itu, saya menemukan potongan kode ini:
```javascript
// ... (kode di-obfuscate)
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", {
// ...
```
Bagian ini mengonfirmasi kecurigaan saya. Variabel `R` adalah *regex* yang membuang banyak *keyword* SQL Injection. Namun, yang paling penting adalah *regex* ini dijalankan di **sisi *client***. Ini berarti, jika kita bisa mengirim *request* POST langsung ke *server* tanpa melewati validasi *frontend* ini, *payload* kita mungkin akan berhasil!

---

#### 🚀 Bypass Sanitasi dengan cURL
Karena sanitasinya hanya di *client-side*, saya memutuskan untuk langsung mengirim *request* POST ke *endpoint login* menggunakan **cURL**. Dengan begitu, *payload* SQL Injection saya tidak akan disanitasi.

Saya menggunakan *payload* yang sudah dimodifikasi sedikit agar sesuai dengan konteks `JSON` dan *escaped quotes*:
```bash
curl 'https://netlab-ctf-login.tagj8z.easypanel.host/login' \
  -X POST \
  -H 'Content-Type: application/json' \
  -d '{"email":"admin@example.com", "password":"'\'' OR '\''1'\''='\''1'\'' -- "}'
```
Dan *yup*! *Request* ini berhasil dan *flag* langsung didapatkan dalam *response* JSON dari *server*:
```json
{
  "success": true,
  "user": {
    "id": 1,
    "username": "flag",
    "password": "TECHNOSKILL{put_s@n1t1z3r_0n_th3_b4ckend_4s_w3ll}"
  }
}
```
![image](https://hackmd.io/_uploads/Sk0s-EaBlg.png)

---
### 🏁 Flag
```
TECHNOSKILL{put_s@n1t1z3r_0n_th3_b4ckend_4s_w3ll}
```

---

### <a id="schizo"></a> Schizo
> **Poin:** 400
> **URL:** `https://netlab-ctf-wordpress.tagj8z.easypanel.host/`
> **Deskripsi:** a page i could no longger find

#### 🕵️‍♂️ Penjelajahan Awal
Begitu saya buka *link* tantangannya, yang nongol cuma halaman blog WordPress yang sederhana banget. Tampilannya polos, kayak blog standar baru di-*install*.

![image](https://hackmd.io/_uploads/B18ozVTBll.png)

---

#### 🔍 Mengikuti Jejak Link
Saya langsung coba klik judul *post* pertama yang paling keliatan di halaman utama: "Welcome to Technoskill 2025 – Where Curiosity Meets Code!". Klik itu langsung mengarahkan saya ke URL: `https://netlab-ctf-wordpress.tagj8z.easypanel.host/2025/06/22/hello-world/`.

![image](https://hackmd.io/_uploads/rJ3nzEaBlx.png)

Halaman ini juga terlihat biasa saja, seperti halaman *post* blog pada umumnya. Namun, mata saya tertuju pada **bagian *navbar* di pojok kiri atas**. Di situ ada sebuah teks aneh yang terlihat seperti kode atau ID: **`x6IzN1XbqR`**.

Ini pasti bukan teks biasa, pikir saya. Langsung saja saya klik teks itu!

---

#### 🚀 Menemukan Halaman Rahasia
Setelah mengklik `x6IzN1XbqR`, *browser* saya diarahkan ke URL baru: `https://netlab-ctf-wordpress.tagj8z.easypanel.host/x6izn1xbqr/`.

Dan *boom*! Halaman ini bukan lagi halaman blog biasa. Di sana terpampang jelas *flag*-nya!

![image](https://hackmd.io/_uploads/H1JAG4aSlx.png)

Ternyata, "Schizo" ini maksudnya "sesuatu yang terlihat normal, tapi ada sisi tersembunyi yang enggak terduga"!

---
### 🏁 Flag
```
TECHNOSKILL{w0rdpr3ss_24102003}
```