Magic Numbers: Magic Numbers adalah serangkaian digit heksadesimal yang muncul di awal file dan digunakan untuk mengidentifikasi jenis file secara lebih akurat.
Validasi File: Server dapat memeriksa beberapa byte pertama file yang diunggah dan membandingkannya dengan daftar Magic Numbers yang diperbolehkan untuk memvalidasi jenis file tersebut. sebagai contoh kita meguploads file
Implementasi di Server: Metode ini sering digunakan di server web berbasis PHP untuk mencegah unggahan file berbahaya seperti skrip PHP yang disamarkan sebagai file gambar atau dokumen.
Bypassing Filter: Dengan menambahkan Magic Numbers file yang valid (misalnya Magic Numbers JPEG) di bagian atas file berbahaya (seperti skrip PHP), filter Server-Side dapat dikelabui untuk mengidentifikasi file tersebut sebagai jenis file yang sah.
Sebelum kita memulai, mari kita gunakan perintah Linux
Seperti yang diharapkan, perintah tersebut memberi tahu kita bahwa tipe file adalah
Kita dapat melihat bahwa Magic Numbers yang kita pilih panjangnya empat byte, jadi mari kita buka skrip shell terbalik dan tambahkan empat karakter acak pada baris pertama.
Karakter-karakter ini tidak penting, jadi untuk contoh ini kita hanya akan menggunakan empat "
Simpan berkas dan keluar. Selanjutnya kita akan membuka kembali berkas tersebut
.
Perhatikan empat byte dalam kotak merah: semuanya adalah 41, yang merupakan kode hex untuk huruf kapital "A" -- persis apa yang kita tambahkan di bagian atas berkas sebelumnya.
Ubah ini ke angka ajaib yang kita temukan sebelumnya untuk file JPEG:
Sekarang jika kita simpan dan keluar dari berkas (Ctrl + x), kita dapat menggunakannya
Sempurna. Sekarang mari kita coba mengunggah shell yang dimodifikasi dan lihat apakah shell tersebut melewati filter!
File shell PHP standar yang ditolak saat diunggah bisa lolos filter jika Magic Numbers JPEG ditambahkan di awal file, karena filter hanya memeriksa Magic Numbers tanpa menganalisis keseluruhan konten file.
Kesimpulan: Teknik ini menunjukkan bahwa meskipun Magic Numbers bisa efektif, penyaringan yang hanya mengandalkan angka ajaib bisa diakali, sehingga perlu pendekatan keamanan tambahan untuk mencegah unggahan file berbahaya.
Lewati filter Magic Numbers untuk mengunggah shell. Temukan lokasi shell yang diunggah dan aktifkan. Bendera Anda ada di /var/www/.
.
- Agar bisa di access menggunakan domain.
.
- Scanning path directory
setelah uploads extension .php ditolak mari kita ubah extension menjadi .gif
.
perintah tersebut memberi tahu kita bahwa tipe file adalah PHP
mari kita rubah dengan menambahkan huruf C di awal script
.
.
merubah extension file tersebut menjadi .gif
number signature .gif
.
.
baik sudah sesuai mari uploads file tersebut, sebelum uploads jangan lupa untuk memulai netcat untuk listening
.
setelah kita berhasil uploads panggil file yang kita uploads dan hasil dari gobuster