PHP'de Tehlikeli Fonksiyonların Kapatılması
Tarih: 02.11.2005, 22:32
Evet bu yazıda php ninsizin serverınıza zarar verebilecek fonksiyonlarının nasıl kapatılacğaını göstereceğim bu fonksiyonlar sayesinde kendi sitesine bir php-shell çeken birisi sistem hakkında bir çok bilgiye ulaşabilir sanki local bir shell deymiş gibi çalışabilir wget lynx links gibi binarylerin root a bağlanmadı ise bindshell ini çeker tmp var/tmp klasörleri noexec nosuid olarak mount edilmedi isebindshell ini çalıştırıp local bağlanıp bundan sonra exploit dener yada güvenli olmayan dosya izinlerini dener yani locla a girdikten sorna deniyecek şey çok o yüzden şimdi php_safe modu açmadan bir nebze önlemimizi alalım tabi bunu yapınca çok mu güvendeyiz hayır tabiki php ile yapılabilecke şeyler engellenebilirken adam aynı şeyi 4-5 satır perl kodu ile de yapabilir nyse başlıyalım önce php.info dosyası oluşturucaz bunu oluşturmamıızn nedeni bizim editliyeceğimiz php.ini dosyamızın nerde olduğunu bulmak cpanel olan sistemlerde 2 tane php.ini vardır fantastico kurulu ise biri biizm asıl php mizin diğeri ise fantastico nundur
şimdi phpshell in görünümüne bakalım istediğimiz komutu istetebiliriz izinlerimiz doğrultusunda
http://members.lycos.co.uk/anlatim/res/shell1.jpg
evet başlıyalım önce phpinfo dosyası oluşturucaz bir text editörü açın örnek notepad
içine bu php kodunu yazın
adını phpinfo.php olarak kaydedin ve sitenizze upload edin
ve tarayıcınızdan istetin
http://www.siteniz.com/phpinfo.php diye
ve şöle bir ekran gelicek karşınıza
http://members.lycos.co.uk/anlatim/res/shell2.jpg
burada 6 satır aşağı baktığınız zaman php.ini nin yolu gösteriliyor
Configuration File (php.ini) Path /usr/local/Zend/etc/php.ini
diyerekten
şimdi serverımıza root yetkisi ile giriş yapıyoruz
daha sonra
yazarak php konfigurasyon dosyamızı açıyoruz
açılan sayfada ctrl+w tuşlarına basıyoruz altta search yazan kısım çıktı oraya
disable_functions yazıyoruz
görünümü şu şekilde karşımıza geliyor oraya dediğim fonksiyonları sırasıyla yazıcaksınız
http://members.lycos.co.uk/anlatim/res/shell3.jpg
system,dl,passthru,exec,shell_exec,popen,proc_close,proc_get_status,proc_nice,proc_open,allow_url_fopen,chown,chgrp,escapeshellcmd,escapeshellarg,show_source,posix_mkfifo,set_time_limit,mysql_list_dbs,get_current_user,getmyuid,pconnect,link,symlink,pcntl_exec,ini_alter,parse_ini_file,chmod,curl_exec
görünümü şu şekilde oluyor
http://members.lycos.co.uk/anlatim/res/shell4.jpg
bu son yazdığım allow_url_fopen kesin yazın php safe modunu geçebilen shell lerde bu yöntem kullanılıyor dışardan bir url include ediliyor neyse
ve ctrl+x yapıp kaydedip çıkıyoruz
sonra komsolumuzda apache ye bir restart çekiyoruz aşağıdaki komutu yazarak
ve doğru bir şekilde editledi iseniz sorunsuz bir şekilde başlayacaktıre failed demeden
http://members.lycos.co.uk/anlatim/res/shell5.jpg
evet shell imizi şimdi bir daha deniyelim
http://members.lycos.co.uk/anlatim/res/shell6.jpg
aa o ne shell imiz doğru düzgün çalışmıyor
br /> <b>Warning</b>: system() has been disabled for security reasons in <b>/home/******/public_html/shell/remview.php</b> on line <b>2064</b><br />
Bu Döküman canver.net için benim tarafımdan hazırlanmıştuır lütfen alıntı yaparken aldığınız yeri belirtin emeğe azda olsa saygı
bu chmod ayarlarınıda kesin yapıyouz başımıza bela olmadan
şimdi phpshell in görünümüne bakalım istediğimiz komutu istetebiliriz izinlerimiz doğrultusunda
http://members.lycos.co.uk/anlatim/res/shell1.jpg
evet başlıyalım önce phpinfo dosyası oluşturucaz bir text editörü açın örnek notepad
içine bu php kodunu yazın
- Kod: Tümünü seç
<?php
phpinfo();
?>
adını phpinfo.php olarak kaydedin ve sitenizze upload edin
ve tarayıcınızdan istetin
http://www.siteniz.com/phpinfo.php diye
ve şöle bir ekran gelicek karşınıza
http://members.lycos.co.uk/anlatim/res/shell2.jpg
burada 6 satır aşağı baktığınız zaman php.ini nin yolu gösteriliyor
Configuration File (php.ini) Path /usr/local/Zend/etc/php.ini
diyerekten
şimdi serverımıza root yetkisi ile giriş yapıyoruz
daha sonra
- Kod: Tümünü seç
pico /usr/local/Zend/etc/php.ini
yazarak php konfigurasyon dosyamızı açıyoruz
açılan sayfada ctrl+w tuşlarına basıyoruz altta search yazan kısım çıktı oraya
disable_functions yazıyoruz
görünümü şu şekilde karşımıza geliyor oraya dediğim fonksiyonları sırasıyla yazıcaksınız
http://members.lycos.co.uk/anlatim/res/shell3.jpg
system,dl,passthru,exec,shell_exec,popen,proc_close,proc_get_status,proc_nice,proc_open,allow_url_fopen,chown,chgrp,escapeshellcmd,escapeshellarg,show_source,posix_mkfifo,set_time_limit,mysql_list_dbs,get_current_user,getmyuid,pconnect,link,symlink,pcntl_exec,ini_alter,parse_ini_file,chmod,curl_exec
görünümü şu şekilde oluyor
http://members.lycos.co.uk/anlatim/res/shell4.jpg
bu son yazdığım allow_url_fopen kesin yazın php safe modunu geçebilen shell lerde bu yöntem kullanılıyor dışardan bir url include ediliyor neyse
ve ctrl+x yapıp kaydedip çıkıyoruz
sonra komsolumuzda apache ye bir restart çekiyoruz aşağıdaki komutu yazarak
- Kod: Tümünü seç
/etc/init.d/httpd restart
ve doğru bir şekilde editledi iseniz sorunsuz bir şekilde başlayacaktıre failed demeden
http://members.lycos.co.uk/anlatim/res/shell5.jpg
evet shell imizi şimdi bir daha deniyelim
http://members.lycos.co.uk/anlatim/res/shell6.jpg
aa o ne shell imiz doğru düzgün çalışmıyor
br /> <b>Warning</b>: system() has been disabled for security reasons in <b>/home/******/public_html/shell/remview.php</b> on line <b>2064</b><br />
Bu Döküman canver.net için benim tarafımdan hazırlanmıştuır lütfen alıntı yaparken aldığınız yeri belirtin emeğe azda olsa saygı
bu chmod ayarlarınıda kesin yapıyouz başımıza bela olmadan
- Kod: Tümünü seç
chmod 750 /usr/bin/rcp
chmod 750 /usr/bin/wget
chmod 750 /usr/bin/lynx
chmod 750 /usr/bin/links
chmod 750 /usr/bin/scp
chmod 750 /usr/bin/curl
chmod 750 /usr/bin/nc