BinaryVision

Tag: באגים

פרצה חדשה בWordPress

by on אוג.11, 2009, under כללי

היום פורסמה בMilw0rm פרצה חדשה לWordpress בגרסאתה הנוכחית (2.8.3) .
נכון לרגע כתיבת פוסט זה, אין עדיין תיקון רישמי. (ראה עדכון)
אבל בינתיים החלטנו לתקן את הבעיה בעצמנו, זה לא מסובך מדי.
הנה הפרטים של הפרצה:

http://milw0rm.org/exploits/9410

הלוגיקה מאחורי זה:

  • אם שכחת סיסמה לחשבון, אתה לוחץ על כפתור שכחתי סיסמה
  • המערכת שולחת לדואר האלקטרוני שרשום לה מכתב של "תאשר איפוס סיסמה"
  • המערכת מייצרת מפתח auth_key שאיתו המשתמש שרואה את האמייל מאשר ע"י לחיצה על לינק שזה באמת המייל שלו.
  • הסיסמה מתאפסת, נשלחת בדואר, ומוצגת על המסך. (ראה עדכון)

הבעיה היא בשלב של האישור, ובו ניתן לאשר את קבלת הדואר,
ללא המפתח ע"י פרמטר key לא תקין (מערך במקום מחרוזת).

מה שקורה במצב הזה, אם מדלגים על השלב של "שכחתי את הסיסמה".
אז בכלל לא נוצר user_activation_key, והוא ישאר ריק אם אף פעם המנהל לא שכח סיסמה.
לכן, אם מעבירים ב key מערך ריק, אז החלק שאחראי לבדוק את נכונות ה user_activation_key:


$user = $wpdb->get_row($wpdb->prepare("SELECT * FROM $wpdb->users WHERE user_activation_key = %s", $key));
    if ( empty( $user ) )
        return new WP_Error('invalid_key', __('Invalid key'));

יחזיר (בצדק) שהוא נכון, כי כאמור השדה ריק (wpdb->prepare מתעלם מאיברים מיותרים בFormat String).
הוא יתאים את המשתמש הראשון שיש לו user_activation_key ריק, ויאפס לו את הסיסמה.
(המשתמש יגלה את זה כאשר ישלח לו דואר עם הסיסמה החדשה).
ברוב המקרים זה המנהל, במקרים אחרים איזה משתמש מסכן אחר.

התיקון שהוספתי לקוד (בקובץ wp-login.php):


function reset_password($key) {
	global $wpdb;

	if (!is_string($key)) {
		return new WP_Error('invalid_key', __('Invalid key'));
	}

אתם מוזמנים להשתמש בזה עד שיצא תיקון רישמי.
שאלות? הערות? תשאירו תגובה…

עדכון:

  • קודם כל יצא כבר תיקון, ויש גרסה 2.8.4.
  • אחרי בדיקה מהירה מתברר שזה לא מציג את הסיסמה על המסך אלא רק שולח אותה למנהל
  • מה שהופך את זה ללא כזה קריטי, אבל עדיין זה די חכם…
11 Comments :, more...

טרה של צרות

by on ינו.29, 2009, under כללי

קניתי היום External Hard Disk Drive של Western Digital.
או במילים אחרות, כונן קשיח חיצוני.
בגודל 1 Terabyte.

לי אישית נמאס לצרוב כמות אינסופית של סרטים, וכל פעם לחפש דיסק מסויים.
500 שקל בשביל טרה של זיכרון נשמע לי נוח מאד. (2 גיגה בשקל)
זה גם תופס פחות מקום מ200 דיסקים של DVD, וגם קל יותר לחפש בזה דברים שאתה רוצה.
וגם אפשר להביא לחברים סרטים ומשחקים ולקחת מהם בלי הצורך להסחב עם המחשב הנייד כולו.

אז עכשיו למה "טרה של צרות"?

Explorer Crash
אני מכניס את הדבר הזה לחשמל, מחבר אותו לUSB למחשב, עד כאן הכל טוב ויפה.
ואז אני פותח את הכונן, מעתיק משם את התוכן (דריברים ותוכנות שבאו איתו), ומוחק הכל.
פותח כמה תיקיות מתכונן להעתיק, סרט, ואיזה יופי, קורס הExplorer.
התמונה זה מהEventlog.

הDll שרשום שם, זה איזה Codec וידאו שהותקן אצלי בגלל כלים של Nokia, ועבודה עם פלאפון של Nokia במחשב.
שמסתבר שהוא לא אוכל כלכך טוב להציג Preview בExplorer של סרט מהרד-דיסק של טרה.
מי שלא מבין, מדובר בתמונה צד שמאל למטה בWindows XP שמציגה את הסרטון כשעומדים עליו עם הסמן.

חיפשתי באינטרנט, ובנרות, ומסתבר שאין לבעיה הזאת Patch, ולא רק, היא גם קיימת בCodecים אחרים.
xvid למשל.
הפתרון שלי היה למצוא את הDLL לשנות את השם שלו כך שלא ימצאו אותו ויטענו אותו, ולעלות את Explorer מחדש.
זה אומנם פתרון ערבי קצת, אבל אני לא משתמש בכל מקרה בכלים של המרת סרטים של נוקיה, ובינתיים זה עובד יופי.

אז תאחלו לי מזל טוב,
אני צעד אחד קרוב יותר לNAS שאני מתכנן להקים אצלי בבית…

5 Comments :, , more...

מחפש משהו?

תשתמש בטופס למטה כדי לחפש באתר: