מוקדם יותר היום התפוצצה בקול מרעיש פרשת Mastergate שבה ניצן ברומר חשף השתלת קוד זדוני בתבניות מתורגמות חינמיות שפורסמו באתר Mastergate, הקוד הבעייתי מעמיד בסיכון גבוה ומיידי כל בלוג שמשתמש בתבנית וחושף פרטים כמוסים על הבלוג למתכנת שעומד מאחורי Mastergate. פרטים כמו המייל של האדמין, פרטים על השרת שלכם, מספר הפוסטים בוורדפרס שלכם ועוד פרטים.
כבר כתבתי בפירוט על הפרשה וגם הסברתי איך לבדוק באמצעות תוסף מיוחד אם התבנית שלכם בסיכון. בפוסט הזה אני אסביר כיצד להסיר את הקוד הנגוע של Mastergate ובמיוחד מהתבנית הפופלרית שלהם: Arras.
לשם הסר ספק, אני ממליץ בחום רב לא להשתמש בתבניות של Mastergate, ישנן שפע של תבניות אחרות ואפילו הגרסה החדשה של Arras תומכת בעברית הישר מהקופסה בלי טובות של אף מעצב.
אבל אם אתם מוכרחים להשאר עם התבנית שלכם כי עשיתם מלא שינויים בתבנית של Mastergate, תפעלו לפי ההוראות במדריך ותוכלו להסיר את כל הקוד הנגוע. אתם יכולים לבחור אם להשאיר קרדיט ל-Mastergate או שלא, אבל זו בחירה שלכם ולא שלי.
אני בונה עליכם שתגבו את הכל כמובן לפני שאתם מתעסקים בתבנית. כמו כן כל ההסברים מובאים AS IS. אם אתם לא מסתדרים, אתם מוזמנים לפנות למתכנת (לא אני, כי אני לא מתעסק עם זה) שיעשה את זה עבורכם. לעריכת הקוד ניתן להשתמש ב-notepad++, שימו לב שהקידוד שלכם מכוון ל-utf8.
שלב ראשון : footer.php
גשו לקובץ footer.php שיש בתיקית התבנית שלכם, חפשו ומיחקו את הטקסט הבא:
<?php
/* תבנית זו מוגנת בזכויות יוצרים, אין להוריד את הקישורים הנלווים לתבנית ללא אישור מפורש בכתב מאתר mastergate.co.il כולל הערה זו */
//eval(base64_decode("d3BfY2FjaGUoKTs="));
/* תבנית זו מוגנת בזכויות יוצרים, אין להוריד את הקישורים הנלווים לתבנית ללא אישור מפורש בכתב מאתר mastergate.co.il כולל הערה זו */ ?>
שלב שני: functions.php
יש למחוק את השורה המאד ארוכה שמתחילה ב:
eval(gzinflate(base64_decode(str_rot13(strrev('O8/8//o//K//K7CCdraGe
שלב שלישי: home.php
יש לפתוח את home.php, בשורה הראשונה אנו נראה את הטקסט הבא:
<?php wp_get_header(); ?>
יש למחוק אותו ולהכניס במקומו את הטקסט:
<?php get_header(); ?>
לאחר מכן יש לגלול אל תחתית הדף, שם נמצא את הטקסט הבא:
<?php wp_get_footer(); ?>
יש למחוק אותו ולהכניס במקומו את הטקסט:
<?php get_footer(); ?>
שלב רביעי: single.php
בשורה הראשונה אנו נראה את הטקסט הבא:
<?php wp_get_header(); ?>
יש למחוק אותו ולהכניס במקומו את הטקסט:
<?php get_header(); ?>
לאחר מכן יש לגלול אל תחתית הדף, שם נמצא את הטקסט הבא:
<?php wp_get_footer(); ?>
יש למחוק אותו ולהכניס במקומו את הטקסט:
<?php get_footer(); ?>
שלב חמישי ואחרון: header.php
יש לגלול למטה, עד הסוף – בשורה האחרונה אנו נראה את זה:
<?php } ?>
יש למחוק את השורה הזו ולגלול חזרה למעלה, שם נראה את הטקסט:
<?php if (wp_loaded() === true) { ?>
הטקסט הזה יהיה צמוד לטקסט תחילת העמוד, יש למחוק אותו.
כל מה שנותר לעשות זה לשמור את הקבצים ולבדוק. אתם אמורים לראות את האתר כמו שתמיד הוא היה, מינוס הקרדיט ל-Mastergate ומינוס הקוד הזדוני כמובן.
והנה מדריך הוידאו:
חשוב לציין שראיתי מספר דוגמאות של קוד זדוני ב-Mastergate – הקוד הזדוני העיקרי ניתן להסרה באמצעים שפירטתי. אבל יש תבניות שבהן יש שתילה של פרסומות google ad words שמכניסות כסף ל-Mastergate ויתכן שגם קודים נוספים שעושים דברים אחרים. הפתרון המוצע כאן הוא בבחינת פתרון שעדיף לא להשתמש בו – עדיף להחליף את התבנית. השתמשו בפתרון הזה אך ורק אם עשיתם כל כך הרבה שינויים בתבנית של Mastergate שהחלפת תבנית היא בלתי אפשרית.
לטובת אנשי הלינוקס – הכנתי patch לתבנית arras של mastergate שקל להשתמש בו. להורדת ה-patch לחצו כאן. למי שלא יודע מה זה patch ואיך משתמשים בו – הנה קישור להסבר על patch.
אסף כהן שחרר תרגום נקי וטוב של התבנית Arras – לטובת אלו שרוצים להוריד מחדש – פשוט למחוק את התבנית הישנה של Mastergate ולשים את התבנית החדשה.
תגובה אחת
תודה רבה מאמר מעולה!
הסרתי את הקוד הזדוני מהאתר שלי
יש לעדכן בפוסט שwp_get מופיע בעוד כמה מקומות נוספים
אשמח לדעת איך נפתרים מהhome1 home2 home3 בראש הדף שלי