| RSS: קטעים | תגובות | | | הרשמה לקבלת עדכונים בדואר אלקטרוני | | | אודות | | | יצירת קשר | |
fromCharCode(88,83,83)
נכתב ע"י גיא מזרחי בתאריך 31 בינואר 2008 | נושאים מאמרים מקוריים |
גלעד שאל בפוסט הקודם למה כתבתי כך את הקוד אז נכתבתי תשובה קצת מפורטת
fromCharCode היא פונקצית JavaScript.
הפונקציה נועדה כדי להפוך (לתרגם) ערכי Unicode ל-string.
הרעיון הוא שאם נזין לפונקציה סדרת ערכים מספריים, היא תחזיר חזרה את התווים התואמים להם בטבלת ASCII.
הסינטקס של הפונקציה הזו הוא תמיד
String.fromCharCode()
בתוך הסוגריים יופיעו מספרים שיומרו לתווים.
ניתן להשתמש בטבלת ההמרה המופיעה בקישור למעלה ולהבין מה הם 88,83,83.
כיוון שטבלת ASCII מתרגמת 88 ל-X ו-83 ל-S, הצירוף הנ"ל יתורגם ל-XSS.
String.fromCharCode(88,83,83)
שימוש ב-XSS:
הרבה פעמים יש לנו אפשרות למצוא XSS אך הגרשיים " " מסוננים.
כיוון שפונקצית alert של JavaScript דורשת שתווים יופיעו בתוך גרשיים, לא נוכל להזריק טקסט לפונקציה. היא פשוט לא תקפיץ את החלון שאנו רוצים.
אם בד"כ המחרוזת שלנו היא:
<script>alert("XSS");</script>
במקרה הנ"ל חלון ה-alert לא יעבוד.
פתרון אפשרי:
<script>alert(String.fromCharCode(88,83,83));</script>
כך איננו משתמשים בתווים האסורים ובכל זאת תקפוץ הודעת XSS.
Popularity: 89% [?]
18 תגובות לקטע “fromCharCode(88,83,83)”
כתיבת תגובה משלך לקטע
יש להתחבר לחשבונך על מנת להשאיר תגובה.


31 בינואר 2008 בשעה 22:49
יאיי! איזה תותח.
31 בינואר 2008 בשעה 22:51
שאלה כללית שקשורה לנושא-מה בקשר לעברית??
31 בינואר 2008 בשעה 22:51
עוד דרך לעקוף חסימת גרשיים היא לייבא קובץ JS חיצוני..
31 בינואר 2008 בשעה 23:12
אני בטוח שגוגל היה מניב לו את התשובה לשאלה הפשוטה הזו, ואני לא יודע אם זה שווה פתיחת אשכול (כבר 3 אשכולות היום גיא, שיא חדש
אבל מה שבא לך..
ד"א L[s]D אחלה רעיון =]
1 בפברואר 2008 בשעה 1:08
עושה רושם שהתלהבת מהדרך xss הא??
… לא הבנתי לשם מה הפוסט…. כל שימוש בפונקציה של JS יתבצע אחרי ההוראה
….
1 בפברואר 2008 בשעה 3:45
zEt0s- כמעט לכל שאלה יש תשובה בגוגל. זה לא אומר שהתשובה נגישה לכולם או בעברית או מובנת.
eran - ראה תגובה קודמת ל-zEt0s-.
גלעד- לגבי עברית זו בעיה.
יש אסקי עברית אבל הוא יעבוד רק במחשבים בהם מותקנת עברית ולכן אי אפשר להסתמך על זה.
1 בפברואר 2008 בשעה 12:16
יפה…
1 בפברואר 2008 בשעה 12:59
איפה אפשר למצוא אסקי בעברית? גגיגלתי ולא מצאתי כמעט הזכרים לזה.
1 בפברואר 2008 בשעה 13:25
אסקי עברית? גיא התבלבל. עברית נמצאת בסטים אחרים כמו יוניקוד. באסקי יש רק בייט אחד לייצוג כל התווים וזה מעט מדי מכדי להכניס גם עברית למשוואה.
1 בפברואר 2008 בשעה 14:20
גיא-ברור שכמעט לכל שאלה יש פתרום בגוגל, אבל זה דבר שכיח בגוגל…
בקשר למה שגלעד שאל:
(ויקי):
הקוד אינו כולל אותיות עבריות. בעבר הותאם הקוד לעברית (קוד ישן) - 27 תווים (כולל אותיות סופיות) תפסו את מקום האותיות הלטיניות הקטנות.
1 בפברואר 2008 בשעה 15:31
dar32 - תראה את התשובה של חסוי - לכך בדיוק התכוונתי.
במחשבים מאוד ישנים יש עדיין אפשרות למצוא אסקי עברית מותקנת אבל זה כמעט ולא נתמך היום.
אי אפשר להסתמך על זה.
1 בפברואר 2008 בשעה 15:47
בעולם המחשבים אין כזה דבר אי אפשר
alert(String.fromCharCode(0×05E0,0×05D7,0×05D5,0×05DD,32,0×05D4,0×05E1,0×05E4,0×05D0,0×05DE,0×05E8))
1 בפברואר 2008 בשעה 17:00
נחום - גם לזה חייבת להיות תמיכה עברית במערכת ההפעלה.
רק כדי להבהיר - האסקי עברית שאני דיברתי עליו היה קיים בתווים 129 והלאה, כך שזה לא אותו דבר.
1 בפברואר 2008 בשעה 17:04
פשוט אי אפשר להיות צודק מולך…
ואני חושב שאתה מתכוון ל128…
2 בפברואר 2008 בשעה 17:10
נחום?! זה לא עובד..
2 בפברואר 2008 בשעה 17:28
תודה גיא!
הסבר טוב ופשוט:)
2 בפברואר 2008 בשעה 20:05
גלעד - פשוט האיקסים דפוקים תחליף אותם ידנית בx
4 בפברואר 2008 בשעה 17:07
לא ציינו אבל זה תקף גם לגבי ניקוי של מחרווזת מ" ו' בSQLINJ:
char(11,32,14,114,95)