Dasar Dasar Session Hijacking
Penyerang menjajal untuk menemukan saluran ke session pengguna lain dengan menyamar sebagai pengguna tersebut.
Informasi untuk seorang penyerang ialah реngіdеntіfіkаѕі ѕеѕі, alasannya ini diperlukan untuk setiap serangan peniruan. Ada tiga metode yang biasa dipakai untuk menemukan identifier sesi yang valid:
Prediksi mengacu menebak identifier session yang valid. Dengan mekanisme session asli PHP, identifier session sungguh acak, dan ini tidak mungkin menjadi titik terlemah dalam implementasi.Bаса jugа Mеnсаrі Shеll с99 dеngаn Gооglе Dоrk
Karena pengidentifikasi session umumnya disebarluaskan dalam cookie atau selaku variabel GET, pendekatan yang berlainan fokus pada menyerang metode transfer. Sementara telah ada kerentanan browser sedikit perihal cookie, ini sebagian besar sudah di Internet Explorer, dan cookies yang sedikit kurang terekspos dari GET variabel. bagi para pengguna yang memungkinkan cookies, Anda bisa memperlihatkan mereka dengan mekanisme yang lebih kondusif dengan memakai cookie untuk membuatkan sesi.
Fixation yakni tata cara paling sederhana untuk menerima identifier session yang valid. Meskipun tidak sangat sukar untuk menjaga diri, kalau mekanisme session Anda berisikan tidak lebih dari session_start (), Anda rentan.
Untuk memperlihatkan session fixation, saya akan menggunakan script berikut, session-hijacking.php:
Pertama pastikan bahwa Anda tidak mempunyai identifier sesi yang ada (mungkin meniadakan cookie), kemudian mendatangi halaman ini dengan? PHPSESSID = 123456789 disertakan ke URL. Selanjutnya, dengan browser yang serupa sekali bertentangan (atau bahkan komputer yang serupa sekali bertentangan), kunjungi URL yang serupa lagi dengan? PHPSESSID = 123456789 ditambahkan.
Anda akan melihat bahwa Anda tidak melihat 1 output pada kunjungan pertama Anda, melainkan terus sesi sebelumnya Anda dimulai.
Jika tidak ada sesi aktif terkait dengan identifier session bahwa pengguna menampilkan, maka menumbuhkan itu sekadar memutuskan:
Masalah dengan pertahanan sederhana seperti itu yaitu bahwa penyerang hanya mampu menginisialisasi sesi untuk identifier session tertentu dan lalu memakai identifier yang untuk mengawali serangan.
Jika mekanisme session Anda cuma mempunyai session_start (), Anda rentan.
Dengan prosedur session yang paling sederhana, identifier session yang valid yakni semua yang dibutuhkan untuk berhasil membajak sesi. Untuk memperbaiki ini, kita perlu melihat apakah ada sesuatu yang aksesori dalam seruan HTTP yang bisa kita pakai untuk kenali extra .
Bayangkan bahwa usul sebelumnya dibarengi dengan usul dengan berlawanan User-Agent:
Informasi untuk seorang penyerang ialah реngіdеntіfіkаѕі ѕеѕі, alasannya ini diperlukan untuk setiap serangan peniruan. Ada tiga metode yang biasa dipakai untuk menemukan identifier sesi yang valid:
- Fіxаtіоn
- Cарturе
- Prеdісtіоn
Prediksi mengacu menebak identifier session yang valid. Dengan mekanisme session asli PHP, identifier session sungguh acak, dan ini tidak mungkin menjadi titik terlemah dalam implementasi.Bаса jugа Mеnсаrі Shеll с99 dеngаn Gооglе Dоrk
Karena pengidentifikasi session umumnya disebarluaskan dalam cookie atau selaku variabel GET, pendekatan yang berlainan fokus pada menyerang metode transfer. Sementara telah ada kerentanan browser sedikit perihal cookie, ini sebagian besar sudah di Internet Explorer, dan cookies yang sedikit kurang terekspos dari GET variabel. bagi para pengguna yang memungkinkan cookies, Anda bisa memperlihatkan mereka dengan mekanisme yang lebih kondusif dengan memakai cookie untuk membuatkan sesi.
Fixation yakni tata cara paling sederhana untuk menerima identifier session yang valid. Meskipun tidak sangat sukar untuk menjaga diri, kalau mekanisme session Anda berisikan tidak lebih dari session_start (), Anda rentan.
Untuk memperlihatkan session fixation, saya akan menggunakan script berikut, session-hijacking.php:
session_start();
if (!isset($_SESSION['visits']))
$_SESSION['visits'] = 1;
else
$_SESSION['visits']++;
есhо $_SESSION['vіѕіtѕ'];
Pertama pastikan bahwa Anda tidak mempunyai identifier sesi yang ada (mungkin meniadakan cookie), kemudian mendatangi halaman ini dengan? PHPSESSID = 123456789 disertakan ke URL. Selanjutnya, dengan browser yang serupa sekali bertentangan (atau bahkan komputer yang serupa sekali bertentangan), kunjungi URL yang serupa lagi dengan? PHPSESSID = 123456789 ditambahkan.
Anda akan melihat bahwa Anda tidak melihat 1 output pada kunjungan pertama Anda, melainkan terus sesi sebelumnya Anda dimulai.
Jika tidak ada sesi aktif terkait dengan identifier session bahwa pengguna menampilkan, maka menumbuhkan itu sekadar memutuskan:
if (!isset($_SESSION['initiated']))
session_regenerate_id();
$_SESSION['initiated'] = true;
Masalah dengan pertahanan sederhana seperti itu yaitu bahwa penyerang hanya mampu menginisialisasi sesi untuk identifier session tertentu dan lalu memakai identifier yang untuk mengawali serangan.
Jika mekanisme session Anda cuma mempunyai session_start (), Anda rentan.
Dengan prosedur session yang paling sederhana, identifier session yang valid yakni semua yang dibutuhkan untuk berhasil membajak sesi. Untuk memperbaiki ini, kita perlu melihat apakah ada sesuatu yang aksesori dalam seruan HTTP yang bisa kita pakai untuk kenali extra .
Hanya Host header yang dibutuhkan oleh HTTP / 1.1, sehingga tampaknya bijaksana untuk bergantung pada hal lain. Namun, konsistensi sungguh-sungguh semua yang kita perlukan, alasannya yakni kita cuma kesengsem pada komplikasi peniruan tanpa mengganggu pengguna yang sah.
GET / HTTP/1.1
Host: example.com
User-Agent: Mozilla/5.0 Gecko
Accept: text/xml, image/png, image/jpeg, image/gif, */*
Cооkіе: PHPSESSID=123456789
Bayangkan bahwa usul sebelumnya dibarengi dengan usul dengan berlawanan User-Agent:
GET / HTTP/1.1
Host: example.com
User-Agent: Mozilla Compatible (MSIE)
Accept: text/xml, image/png, image/jpeg, image/gif, */*
Cооkіе: PHPSESSID=123456789
Posting Komentar untuk "Dasar Dasar Session Hijacking"