Session Fixation merupakan metode penyerangan dengan cara memaksa target menggunakan session yang kita ingini, faktor resiko yang ditimbulkan akan lebih bahaya dari pada Session Hijacking (mencuri session).
Seperti apa resiko session fixation? logikanya sederhana sekali, karena session kita yang dipakai target, jadi apa yang terjadi pada target akan terjadi pada kita. Misal target melakukan login sebagai admin, maka kita pun ikut login menjadi admin. Resiko lain yang ditimbulkan yaitu SEMUA orang yang mengakses web target akan menjadi admin juga. wwkwkkwkw
Untuk lebih memahaminya mari kita praktekan, sediakan Apache+PHP nya (XAMPP juga boleh), dan dua buah browser (firefox, opera, chrome juga boleh). Firefox kita gunakan sebagai browser untuk attacker, dan chrome/opera untuk admin.
Simpan kode dibawah ini kedalam servernya:
"
<?php
/**
* @author JasmanXcrew
* @copyright ExploreCrew 2015
* @author Www.ExploreCrew.Org
*/
session_start();
//save commentif(isset($_POST['comment'])) {
file_put_contents(time().'.json',json_encode($_POST));
}
if(@$_SESSION['admin'] == true) {
echo 'Welcome admin';
} else {
if(isset($_POST['login'])) {
if(($_POST['password'] == 'xcrew') && ($_POST['email'] == 'blueboyz@explorecrew.org')) {
$_SESSION['admin'] = true;
}
}
echo '<form method="post" action="">';
echo '<fieldset>';
echo '<legend>Form Login</legend>';
echo '<div><label>Username</label><input type="text" name="email" /></div>';
echo '<div><label>Password</label><input type="password" name="password" /></div>';
echo '<input type="submit" name="login" />';
echo '</fieldset>';
echo '</form>';
}
echo '<form method="post" action="">';
echo '<fieldset>';
echo '<legend>Comment</legend>';
echo '<div><label>Name</label><input type="text" name="name" /></div>';
echo '<div><label>Comment</label><textarea name="comment"></textarea></div>';
echo '<input type="submit" name="comment" />';
echo '</fieldset>';
echo '</form>';
foreach(glob("*.json") as $filename) {
$comment = json_decode(file_get_contents($filename));
echo '<hr/>';
echo '<h4>'.$comment->name.'</h4>';
echo '<p>'.$comment->comment.'</p>';
}
?> "
Sekarang kita bertindak sebagai attacker, sebagai seorang attacker tentu kita akan mencoba mencari celah2 yang ada pada web target, tentu kita tes xss pada komentar. pada contoh tsb ada xss.
perhatikan kode berikut ini:
" <script>document.cookie="PHPSESSID=paksa-admin-pake-ini-session";</script> "
Text Di atas Kirimkan pada komentar
itu artinya set cookies PHPSESSID, itu merupakan default session PHP.
pada cookies hijacking kita mengambil cookies tersebut namun pada
fixation kita men-set cookies tersebut. sehingga semua pengunjung web
memiliki cookies yang sama.
Jadi jika ada user lain memiliki akun premium/gold kita akan mendapatkannya juga.
Sekarang kita coba login pake browser opera/chrome..., ok,, setelah itu coba refresh halaman firefox??? apa yang terjadi? kenapa bisa terjadi?? itu lah yang disebut dengan Session FIxation..
Pencegahannya jangan biarkan ada XSS dan selalu regenerate session jika digunakan pada browser/ip yang berbeda.
Jadi jika ada user lain memiliki akun premium/gold kita akan mendapatkannya juga.
Sekarang kita coba login pake browser opera/chrome..., ok,, setelah itu coba refresh halaman firefox??? apa yang terjadi? kenapa bisa terjadi?? itu lah yang disebut dengan Session FIxation..
Pencegahannya jangan biarkan ada XSS dan selalu regenerate session jika digunakan pada browser/ip yang berbeda.
Thanks Too: Mas Regel
This comment has been removed by a blog administrator.
ReplyDelete