Selasa, 25 Mei 2010

PHP File Include Attack&Server Side Include

0 Comments


PENGERTIAN
PHP File Include
Digunakan untuk membuat fungsi, header, footer, atau elemen yang dapat digunakan pada banyak halaman.

File yang kita buat memiliki persamaan header, cukup membuat 1 File berisi header yang nantinya dapat dipanggil oleh halaman-halaman web yang lain. Ketika melakukan update, cukup mengubah satu halaman saja, maka otomatis halaman yang lain akan ikut merasakan perubahannya.
Contoh
Fungsi Require()
Digunakan untuk membuat fungsi, header, footer, atau elemen yang akan dapat digunakan kembali pada banyak halaman.
Code

PFI Vulnerability
PHP tidak memerlukan deklarasi variabel, sehingga seorang programer dapat dengan sengaja memungkinkan lubang keamanan untuk menyusup ke aplikasi Web.
Contoh :
Inputan yang tidak valid dari pengguna karena tidak adanya error handling.

Remote File Include PHP
RFI terjadi ketika penyerang bisa menyisipkan script atau kode ke dalam URL dan memerintah server untuk mengeksekusi kode jahat.
Kode jahat ter-upload melalui file persesi, atau melalui upload gambar.
Metode lain adalah penyisipan atau penempatan kode yang dipikir akan aman, seperti kompresi audio stream. Ini tidak diperiksa sebagaimana mestinya, dan memungkinkan akses ke remote resources.
Sebuah metode umum yang digunakan untuk mengambil input dari data permintaan POST.
Metode diatas menyoroti kebutuhan untuk arsitektur keamanan yang kuat, dan berhati-hati dalam menerima input pengguna pada situs.
Contoh RFI
Tidak selalu membutuhkan kode berat, serangan dapat terjadi hanya dengan menambahkan sedikit code di akhir URL permintaan halaman.

RFI DEFENSE
Serangan File Inklusi dapat diatasi dengan mematikan register_globals. Hal ini membuat variabel $page tidak diperlakukan sebagai variabel super global, sehingga tidak memungkinkan inklusi. Menon-aktifkan allow_url_fopen, memungkinkan PHP file_get_contents () mencegah pengguna mengambil semua data dari situs web.

SERVER SIDE INCLUDE
PENGERTIAN

Seorang penyerang dapat menggunakan injeksi Server Side Include (SSI) untuk mengirim kode untuk sebuah aplikasi web yang kemudian dijalankan oleh web server. Memungkinkan penyerang untuk mencapai hasil yang sama untuk Cross Site Scripting. Arahan SSI bukan tempat yang dekat sekuat bahasa scripting penuh. Meskipun demikian, penyerang bisa mendapatkan akses mudah ke file sensitif, seperti file password, dan menjalankan perintah shell. Dalam kasus apapun, serangan hanya akan berhasil jika web server mengizin eksekusi SSI tanpa validasi yang tepat.
CONTOH
Pertimbangkan situs yang memiliki host di server yang memungkinkan SSI seperti Apache dengan "Option Includes" diaktifkan. Ketika terjadi kesalahan, HTTP Headers dengan seluruh permintaan yang dicatat, yang kemudian dapat ditampilkan pada halaman yang memungkinkan review error, Seorang pengguna dapat menyuntikan SSI dalam permintaan HTTP Headers untuk membuat kesalahan. Ketika log tersebut akhirnya ditinjau, server memparsing SSI dan mengeksekusi include.

Model serangan SSI
Eval Injection
Setting Manipulation
Special Element Injection
Account Lockout Attack
Full Path Disclosure
Cross-user Defacement

Syarat serangan SSI
Sebuah Web server yang mendukung dan telah mengaktifkan SSI
Pengguna mengendalikan inputan yang dapat membawa tujuan include ke Web server

Vulnerability
Kemungkinan : sangat tinggi
Hal ini cukup mudah untuk menentukan apakah SSI diperbolehkan pada server target. Seorang penyerang berpotensi dapat memungut banyak informasi jika SSI Injeksi memungkinkan.

Keterampilan atau Pengetahuan yang diperlukan penyerang
Ketrampilan atau Pengetahuan Tingkat: Menengah
Penyerang harus sadar teknologi SSI
Menentukan sifat injeksi dan dapat menyusun inputan yang menghasilkan dalam eksekusi SSI
Penyerang dapat melakukan probing untuk mengaktifkan SSI dengan menginjeksikan konten yang dapat ditafsirkan sebagai petunjuk SSI dan melihat output halaman

0 komentar: