Session Hijacking & Session Fixation

אוקיי אז נתחיל ב מה זה Session
Session זאת שיטה להעברת מידע בין דף לדף באתר שלא נמחק
הקובץ אם הפרטים של ה Session נמצא על השרת לפי ה SessionID
וה SessionID נמצא במחשב של הלקוח בעוגיה זהו מספר זיהוי יחודי
משתמשים בזה לרוב בהיתחברות לאתר
בהיתחברות לאתר נוצר Session שמאשר שהמשתמש היתחבר
ואז בכל דף שרק משתמש מחובר יכל ליראות עושים בדיקה אם ה Session קיים
דוגמה
login.php



קוד PHP:

session_start();
if (isset(
$_POST[`login`
]))
{
$query = @mysql_query("select * from users where user=`{$user}` AND password=`{$password}`",$connect) or die(mysql_error
());
if (
mysql_num_rows($query) == 1
)
{
$_SESSION[`permission`] = 1
;
?>




}
else
{
echo
wrong
;
}


users_page



קוד PHP:

session_start();
if (
$_SESSION[`permission`] != `1`
)
{
?>



}
else
{
echo
bla
;
}


עכשיו אחרי שאנחנו יודעים מה זה Session נתחיל באיך לבצע Session Hijacking
Session Hijacking זאת מתקפה מאוד קלה אם האתר פגיע וגם מאוד מסוכנת
בעצם במתקפה הזאת אנחנו גונבים את ה SessionID של מישהו לאחר שהיתחבר לאתר
יש הרבה שיטות לגנוב את ה SessionID תכף נדבר עליהם
עכשיו עורכים את העוגיה של האתר ומחליפים את ה SessionID של הקורבן
ניכנסים לאתר ופיתאום אנחנו מחוברים בשם משתמש שלו
בלי לדעת את השם משתמש והסיסמה של הקורבן
עכשיו שיטות לגניבת ה SessionID
1.אם האתר פגיע ב XSS אז אפשר לגנוב לו את העוגיות
2.דרך מתקפת MITM אפשר ליראות את הפאקטים שנשלחים בכל פאקט נשלח גם ה SessionID
3.דרך Session Fixation
Session Fixation זאת הזרקה שבעצם אנחנו מחליטים איזה SessionID יהיה לנו.
דוגמה:
www.site.co.il/index.php?PHPSESSID=1234
למה זה טוב אתם עכשיו בטח שואלים
אתם יכולים לשלוח למישהו את הקישור הזה וכשהוא יפתח אותו אז ה SessionID שלו יהיה 1234
וזהו עכשיו אתם עורכים את העוגיה ואתם בפנים
דרכים לאבטח
1.לבטל את האפשרות להעביר את ה SessionID בשורת הכתובת
2.אחרי שמישהו מתחבר להחליף את ה SessionID כך שאם למישהו יש את ה SessionID אז אחרי שהיתחברתם אין לו מה לעשות אם זה


3.נוכל לערוך בדיקה פשוטה בין כתובת ה-IP של הגולש לכתובת ה-IP שנשמור ב-Session בטופס ההתחברות. אם כתובת ה-IP של הגולש תיהיה שונה מכתובת ה-IP שתיהיה שמורה ב-Session, נוכל לדעת בוודאות כי מדובר בניסיון לביצוע Session Hijacking
4.אפשר לבדוק את ה REFERER בשביל לבדוק אם אכן ה SessionID הגיע מהאתר ולא ממקום אחר
5.למנוע XSS באתר