Path Traversal
Path Traversal nədir?
Path Traversal, directory traversal olaraq da bilinir. Bu boşluq, hakerin tətbiqi çalışdıran serverdə istədiyi faylları oxumasına imkan verir. Bu fayllara aşağıdakılar daxildir:
Tətbiq kodu və dataları.
Back-end sistemləri üçün kimlik məlumatları.
Həssas əməliyyat sistemi faylları.
Bəzi hallarda, haker serverdə istədiyi fayla yaza bilər, bu da tətbiq datalarını və ya davranışlarını dəyişdirməsinə və nəticədə serverin tam kontrolunu ələ keçirməsinə imkan verir.
Path Traversal ilə ixtiyari faylı oxuma
Təsəvvür edin ki, satılan məhsulların təsvirlərini nümayiş etdirən bir alış-veriş tətbiqi var. Və aşağıdakı HTML kodu istifadə edərək bir təsvir yükləyə bilir:
Buradakı loadImage
, filename
parametrini götürür və qeyd olunan faylın məzmununu qaytarır. Təsvir faylları diskdə /var/www/images/
ünvanında saxlanılır. Bir təsviri qaytarmaq üçün, tətbiq tələb olunan fayl adını bu baza directory-sinə əlavə edir və faylın məzmununu oxumaq üçün filesystem API istifadə edir. Yəni tətbiq, aşağıdakı fayl path-indən oxuyur:
Bu tətbiqin path traversal hücumlarına qarşı heç bir müdafiə tədbiri yoxdur. Nəticə etibarilə haker, serverin fayl sistemindən /etc/passwd faylını gətirmək üçün aşağıdakı URL ilə sorğu göndərə bilər:
Beləliklə tətbiq, /var/www/images/../../../etc/passwd
fayl path-indən fayl oxumuş olur. Buradaki ../
bir üst directory-ə getmək üçündür. Ardıcıl 3 ../
yazaraq, root directory-sinə daha sonra /etc/passwd
directory-sinə getmiş oluruq. Windows-da isə həm ../
, həm də ..\
yararlıdır. Aşağıdakı kod, Windows əsaslı serverə qarşı hücum növüdür:
Maneələri aşma
İstifadəçi input-larını fayl path-lərinə yerləşdirən əksər tətbiqlər path traversal hücumlarına qarşı müdafiə tətbiq edir. Bunları adətən bypass etmək mümkündür.
Əgər tətbiq, ../
kimi directory keçidi ifadələrini əngəlləyir və ya silirsə, bu qorumanı aşmaq üçün fərqli üsullar istifaəd oluna bilər. Bunun üçün filename=/etc/passwd
ilə faylı birbaşa root-dan ala bilərsiniz.
Başqa bir üsul ....//
və ya ....\/
kimi nested sequence-lər istifadə etməkdir.
Last updated