1️⃣ Awal: Mencari Celah dengan nmap
Kamu pertama kali mencoba memindai server dengan nmap
:
Namun, perintah ini salah karena URL tidak bisa langsung dimasukkan ke nmap
. Seharusnya kamu hanya memasukkan hostname atau alamat IP.
Lalu, kamu memperbaiki perintahnya menjadi:
Tapi hasilnya port 46199 dalam kondisi "filtered", yang berarti firewall memblokir scan ini atau ada aturan yang membatasi akses.
Kemudian kamu mencoba:
Hasilnya tetap sama, port 46199 masih terfilter, jadi tidak bisa mendapatkan banyak informasi dari nmap
.
Kesimpulan dari tahap ini:
- Port 46199 terbuka, tetapi dibatasi aksesnya.
nmap
tidak bisa memberikan informasi lebih lanjut.- Perlu pendekatan langsung dengan
curl
.
2️⃣ Interaksi Langsung dengan curl
Kamu mencoba mengakses website dengan:
Hasilnya:
Website memberikan pesan "I don't trust users visiting from another site."
Artinya, website hanya mengizinkan akses jika ada Referer yang sesuai.
Lalu, kamu menambahkan header Referer
:
Hasilnya:
Pesan berubah menjadi "Sorry, this site only worked in 2018."
Berarti website memeriksa tanggal permintaan.
3️⃣ Menyesuaikan Tanggal
Karena ada batasan tahun, kamu menambahkan header Date
:
Hasilnya:
Pesan berubah lagi menjadi "I don't trust users who can be tracked."
Ini mengindikasikan bahwa website memeriksa apakah pengguna bisa dilacak.
4️⃣ Menghilangkan Jejak (Do Not Track & Cookies)
Website tidak ingin pengguna yang bisa dilacak, jadi kamu menambahkan header DNT (Do Not Track) = 1 dan menghapus cookies:
Hasilnya:
Pesan berubah menjadi "This website is only for people from Sweden."
Sekarang kita tahu bahwa website memeriksa lokasi geografis pengguna.
5️⃣ Menyamarkan Lokasi ke Swedia
Untuk melewati batasan ini, kamu menambahkan:
X-Forwarded-For
: IP address dari Swedia.Accept-Language
: Bahasa Swedia.
Hasilnya:
Website akhirnya menampilkan flag PicoCTF! 🎉
Kesimpulan Akhir
Website ini memiliki banyak mekanisme keamanan yang harus kita lewati:
- Harus menggunakan user-agent tertentu ("PicoBrowser").
- Harus memiliki header
Referer
yang sesuai. - Harus menggunakan tanggal yang sesuai (tahun 2018).
- Harus mengaktifkan
DNT: 1
untuk tidak bisa dilacak. - Harus berasal dari Swedia (diakali dengan
X-Forwarded-For
danAccept-Language
).
Dengan memahami bagaimana server web memproses request HTTP, kita bisa mengakali berbagai filter ini dan mendapatkan flag.
Selamat! 🎯🔥
0 Komentar