JCC Challenge 5

Command Injection

Tool ping ini rentan terhadap command injection. Coba inject command tambahan untuk baca file flag.txt di server.

Clue:
  • Input langsung dipakai di command shell
  • Gunakan ; atau && untuk inject command baru
  • Flag ada di file flag.txt
Enter a hostname or IP address to ping...
ping -c 4 [host]

📚 Tutorial & Walkthrough

1Pahami Command Injection
Command injection terjadi ketika input user langsung digabungkan ke command shell tanpa sanitasi.
system("ping -c 4 " + userInput);
Bahaya:
Attacker bisa menjalankan command OS apapun dengan privilege aplikasi web.
2Command Separators
Di Linux shell, ada beberapa cara untuk memisahkan/menggabungkan command:
; - Jalankan command berikutnya (apapun hasilnya)
&& - Jalankan command berikutnya HANYA jika sebelumnya sukses
|| - Jalankan command berikutnya HANYA jika sebelumnya gagal
| - Pipe output ke command berikutnya
3Payload Injection
Gunakan payload berikut di input field:
127.0.0.1; cat flag.txt
127.0.0.1 && cat flag.txt
Penjelasan:
127.0.0.1 - IP valid buat ping
; atau && - Separator command
cat flag.txt - Command buat baca file
4Eksekusi
  1. Klik di input field
  2. Ketik: 127.0.0.1; cat flag.txt
  3. Klik tombol Ping atau tekan Enter
Hasil:
Akan muncul output ping biasa, lalu di bawahnya ada isi file flag.txt
5Variasi Payload
Coba command lain untuk explore:
127.0.0.1; ls -la
127.0.0.1; whoami
127.0.0.1; id
Tips:
Dengan command injection, kamu punya full control atas server (selama privilege aplikasi web cukup).
6Flag & Completion
Kalau berhasil, output akan menampilkan:
... ping output ...

$ cat flag.txt
JCC{command_injection_shell_master}
Selamat!
Kamu berhasil mengeksekusi arbitrary command menggunakan command injection!