Sitemap
Achmad Isma'il

Achmad Isma'il

Backend Developer | Penetration Testing | Web Security Tester

Puzzle Node

4 min readJul 28, 2025
Press enter or click to view image in full size

Langit Bandung pagi itu mendung, kabut masih menggantung di antara pepohonan pinus Resor Dago Pakar. Di sebuah rumah dua lantai yang dijadikan markas tim Vulnerability Vow, suara keyboard, aroma kopi, dan gumaman teknis mengisi udara.

Ulil duduk di depan tiga layar monitor, headset tergantung di leher, hoodie abu gelap membalut tubuhnya. Di meja seberang, Jun sedang menyiapkan dua cangkir kopi — satu untuknya, satu lagi untuk Maya yang duduk bersila di sudut ruangan dengan laptop penuh tab laporan bug.

“Lu yakin server itu masih aktif?” tanya Ulil, tatapan tak lepas dari terminal.

Jun mengangguk sambil menyerahkan kopi ke Maya. “Yakin. Subdomain dev-kelaslama.site sempat idle, tapi dua hari ini muncul traffic baru. Kayak ada yang hidupin ulang.”

Maya mendongak, rambutnya tergerai sebagian dari hoodie. “Kelas lama? Kedengerannya kayak situs e-learning zaman 2015.”

Ulil nyengir. “Justru itu. Teknologi tua biasanya lupa dibersihin.”

Langkah kaki menuruni tangga terdengar samar. Cindy muncul dari lantai atas dengan senyum lebar dan piring berisi roti bakar di tangan. Rambutnya masih agak berantakan, tapi aura paginya cerah.

“Woy, sarapan dulu. Jangan depan laptop mulu,” katanya, setengah menyindir.

Ulil menoleh dan nyengir.

“Baru duduk bentar udah disuruh sarapan. Emang kamu pacarku apa ibuku, sih?”

Cindy berdiri di sampingnya, menyilangkan tangan. “Pacar yang peduli. Biar kamu nggak lupa makan… kayak kemarin.”

Jun menimpali dari belakang mug-nya. “Wih… tensi rumah tangga ringan pagi-pagi.”

Ulil mengambil roti dari piring Cindy dan mencium punggung tangannya cepat.

“Yaudah, aku nurut. Biar cepet dapet bonus peluk.”

Cindy mengangkat alis sambil senyum geli. “Peluk tuh bukan bonus, Mas. Itu hak kamu… kalau rajin.”

Jun berseru sambil tertawa. “Lah, berarti gue belum dapet hak dong?”

Maya nyaut datar, “Baru dapet hak kalau bisa bikin kopi yang nggak kemanisan.”

Tawa kecil meledak di ruangan itu.

Setelah candaan usai, mereka kembali fokus. Jun membuka browser, menampilkan halaman login dashboard usang berbasis PHP.

“Ini dia. Ada token JWT waktu login. Tapi kayaknya signature-nya lemah,” ujar Jun.

JWT atau JSON Web Token adalah metode autentikasi digital yang umum digunakan di situs web modern. Namun, jika algoritma enkripsinya lemah, token tersebut bisa dimanipulasi.

Ulil langsung buka terminal dan menjalankan tool andalannya.

$ python jwt_exploit.py

╔══════════════════════════════════════════════════════════════╗
║ JWT Exploit Tool ║
║ ║
║ Exploits: ║
║ • CVE-2015-9235: None Algorithm ║
║ • CVE-2016-5431: RSA Key Confusion ║
║ • CVE-2018-0114: JWKS Injection ║
║ • CVE-2020-28042: Null Signature ║
║ • CVE-2023-48238: Empty Key Signature Bypass ║
║ • Claim Manipulation: Business Logic Attack ║
║ • Signature Cracking with Wordlist ║
║ ║
║ Coded by Vulnerability Vows ║
╚══════════════════════════════════════════════════════════════╝


[*] Please enter JWT token to work with:
JWT Token: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9…
Main Menu:
1. Re-decode Token
2. Exploit: None Algorithm (CVE-2015–9235)
3. Exploit: RSA Key Confusion (CVE-2016–5431)
4. Exploit: JWKS Injection (CVE-2018–0114)
5. Exploit: Null Signature (CVE-2020–28042)
6. Exploit: Empty Key Bypass (CVE-2023–48238)
7. Exploit: Claim Manipulation (Business Logic)
8. Crack Signature with Wordlist
0. Exit
Select option: 8
Enter wordlist file path: classic_wordlist.txt
[*] Starting cracking process…
[+] Secret found: 'admin123'

“admin123. Nggak kreatif amat yang bikin,” kata Ulil.

Cindy mendekat sambil membawa laptopnya. “Coba forge payload-nya. Set role jadi admin.”

Token dipasang. Login berhasil. Mereka masuk ke dashboard.

Get Achmad Isma'il’s stories in your inbox

Join Medium for free to get updates from this writer.

UI dashboard itu sederhana. Tapi ada satu fitur yang mencolok: File Browser. Jun langsung bereksperimen dengan input path.

“Gue cobain ../../ ya…”

Dan berhasil. Mereka masuk ke direktori config/backup/.

“Eh ini menarik,” kata Maya yang ikut melihat, “firmware-node03.zip? Jangan-jangan ini IoT firmware.”

Setelah diunduh dan diekstrak, mereka menemukan file konfigurasi:

ssid = "vV0w_CallMe"
interval = 7
tx_power = "20dBm"
broadcast_mode = "passive"

Dan juga file .cfg dengan isi:

ssid=vV0w_CallMe
interval=7
gps_fallback=enabled
tx_power=20dBm

Jun bersandar di kursi. “Firmware buat sinyal pasif. Ini semacam beacon atau honeypot, ya?”

Ulil menyipitkan mata. “Mungkin. Tapi ada sesuatu yang lebih dalam…”

Tak lama, Cindy ikut buka file log:

[INFO] Node_03 ready | signal mode: passive

Cindy menatap Ulil. “Node 03. Kalau ini yang ketiga, berarti ada dua node lain. Semua bisa dikendalikan remote?”

Maya menimpali, “Ini mirip sistem sinyal distribusi. Bisa untuk track device, kirim command, atau sinkronisasi antar node.”

Jun mengangguk. “Dan dashboard ini pusat kontrolnya.”

Suasana mendadak hening.

Cindy mendekat ke Ulil dan berbisik, “Jangan-jangan dashboard ini bagian dari sesuatu yang lebih besar. Kayak puzzle… yang belum lengkap.”

Ulil menarik napas pelan, menatap keluar jendela markas yang menghadap rimbunnya hutan Dago Pakar.

“Kalau ini puzzle,” ujarnya pelan, “maka kita baru nemu potongan pertama.”

Maya menutup laptopnya. “Yang lainnya pasti tersebar di sistem-sistem lain. Mungkin ini awal dari jaringan yang lebih besar.”

Jun mengangkat mug kopi. “Jadi, kita lanjut investigasi?”

Ulil tersenyum, matanya berkilat-kilat. “Tentu. Tapi sebelum itu, sarapan dulu. Cindy benar, kita butuh energi.”

Cindy tersenyum puas. “Akhirnya ada yang nurut juga.”

Di balik candaan ringan itu, mereka semua tahu petualangan baru saja dimulai. Dan puzzle ini, bagaimanapun rumitnya, akan mereka selesaikan bersama.

— -Continued

📝nb:
untuk toolnya bisa clone di Github

--

--

Achmad Isma'il
Achmad Isma'il

Written by Achmad Isma'il

Backend Developer | Penetration Testing | Web Security Tester