Sunucu sahiplerinin bir çoğu linux'taki ln komutunun ne işe yaradığını biliyor.

Bilmeyenler için anlatacak olursak kısa yol oluşturmaya yarıyor yani sembolik linkler oluşturuyor.
Güvenlik açığının oluşmasının sebebi bu komutun biraz sorunlu olması.
Eğer ln komutunun chmod'unu 700 olarak ayarlamazsanız sunucudaki normal bir kullanıcıda ln komutunu çalıştırabilir.Peki o zaman
chmod 700 /bin/ln yazıp bu açığı kapatırız diyenleri duyar gibiyim.
ln bin dizininde bulunan binary bir dosya olduğu için kötü niyetli arkadaşlar ln dosyasını ftp'den yada shell'den sunucuya yükleyip.
./ln şeklinde çalıştırabilirler.
Peki ama ln ile kısa yol oluştursalar bile okuyamazlar çünkü root hakkı ister.
İşte burda devreye apache giriyor.Kötü niyetli arkadaş
./ln -s /home/yetkisiolmayan/public_html/config.php link.txt
Komutunu çalıştırıp link.txt adında kısa yol dosyası oluştur.
Kötü niyetli arkadaş bu dosyayı ftp'den yada php vb.. yöntemlerle okuyamadığı için apache yardımıyla bu dosyayı okur.
Apache yardımıyla nasıl okur peki?
http isteği göndererek okur.
site.com/link.txt
yazınca apache link.txt dosyasının sahibine bakmadan bu dosyayı gösterir.
Peki bu açığı nasıl kapatırız.
site.com.vhost dosyasında
Options FollowSymLinks
Satır veya satırları
Options SymLinksIfOwnerMatch
İle değiştiriyoruz böylelikle apache artık kısa yolun sahibi bulunan dizindeki kullanıcımı diye check ediyor.
Bir çok kişi perl açığı diye tabir edilen yöntemlerle hack edildiğini sanır fakat, asıl sebebi ln komutudur.
Kötü niyetli arkadaşlar perl'de yazılmış shell ile ln komutunu çalıştırarak kısa yol oluştururlar ve böyle hack ederler.