22 Aralık 2009 Salı

Yolcu

    "Bu yolculuk insanı sonunda; ölümü bile üç gün sonunda duyulan bir kişinin ya da gökyüzündeki tek bir yıldızın yalnızlığı kadar büyük bir yalnızlığa iter. Çünkü "ego" ancak tam bir ümitsizlik noktasına gelince teslim olur. Bu teslimiyet acı verir. Çünkü kişi kendini yutacak dipsiz bir uçurum açılmış gibi hisseder. Bu ölüm gibi gelir. Ancak bu bir taraftan ölümdür, diğer taraftan diriliştir. O doğmak için ölmektir. Yolcu bence bilinç altının karanlıklarına dalar. İç dünyamızın bu karanlığı; gerçek benliğimizin Tanrı'nın şekilsizliğinin göz kamaştırdığı yerdir. Benliğimiz karanlıkta gizlenmiş bir ışıktır."

18 Aralık 2009 Cuma

PHP ile Domaine Lisanslanan Scriptler ve Güvenlik

PHP ile yazılan scriptlere kullanım kısıtlaması yapmak istenildiğinde genelde hep aynı yöntemler kullanılır.
Bunlar 2 aşamadan oluşmaktadır.
  • Scriptin üzerinde çalıştığı domaini bulması.
  • Karlılaştırma
Tabi ki kodlar ioncube, zend gibi araçlar ile şifrelenmiş olacak. Yoksa lisanslama olayının bir anlamı kalmaz. Karşılaştırma işlemi birkaç türlü olabilir. Eğer script direk sahibinden alınmış ise, muhtemelen karşılaştırılırken 3. parti bir sunucuya istek gönderilmez. İzin verilen domain olup olmadığı karşılaştırmasını direk script içerisinden yapar. Bazı durumlarda ise uzaktaki script sahibine ait sunucudaki bir dosyaya istek gönderir ve lisans alan domain listesini çekerek oradan kontrol yapar. PHP de scriptin üzerinde çalıştığı domain adresine aşağıdaki kodla erişilir.
$_SERVER['HTTP_HOST']
Domain adresi bulunduktan sonra izin verilen domain olup olmadığı hemen hemen aşağıdaki karlışaştırma cümleciği ile yapılır.
if($_SERVER['HTTP_HOST'] != $izinverilendomainadresi) 
  • Tabi bu işlemi yapan kodlar muhtemelen her sayfaya include edilmiş, config.php gibi fonksiyonların veya ana işlevlerin çalıştığı dosyada bulunmaktadır.
  • $_SERVER dizisi readonly'dir(Aslında tam olarak değildir, aşağıda açıklayacağım).
Teorimiz $_SERVER dizisinden, scriptin üzerinde çalıştığı domaini saklayan veriyi değiştirmektir.

Yukarıda da dediğim gibi bu dizi readonly'dir. Ama birkaç akıl oyunu ile bu dizide değişiklik yapmamız mümkündür.

Dikkat edilecek bir nokta ise değiştireceğimiz verinin script içerisinde ne sıklıkta hangi yerlerde kullanıldığıdır.
Örneğin $_SERVER['HTTP_HOST'] sadece lisans kontrolünde kullanılan değişken ise bunu değiştirdiğimizde herhangi bir sorun oluşmaz.

Eğer bu değişken html etiketlerinde href attributelerinde kullanılan bir değişken ise biraz sıkıntı olabilir.

auto_prepend_file anahtarı ile php de herhangi bir dosya çalışmadan önce istediğimiz bir sayfayı include edebiliriz.

Bu sayede $_SERVER['HTTP_HOST'] değişkeninin içeriğini de değiştirebiliriz.

Hemen bir test yapalım.
  • Scriptin lisanslidomain.com a lisanslı olduğunu biliyoruz ve biz bunu localhost da çalıştırmaya çalışalım.
  • config.php yi bozmadan $_SERVER['HTTP_HOST'] değişkenini lisanslidomain.com yapmamız gerekiyor.
config.php (zend veya ioncube ile şifrelenmiş olduğunu varsayıyoruz)

index.php
 
Yukarıdaki kodları çalıştırdığınızda die("Scripti satın alın"); satırının işlediğini göreceksiniz. Çünkü config.php include edildiğinde $_SERVER dizisinin elemanları tekrar atanır. Şimdi de bir .htaccess dosyası oluşturalım. .htaccess
php_value auto_prepend_file c:\www\h4ckinger.php  
h4ckinger.php
$_SERVER['HTTP_HOST']='lisanslidomain.com';  
Kodları tekrar çalıştırdığımızda
echo "scripti satın aldığınız için teşekkür ederiz";
satırının işlediğini göreceksiniz. Çünkü h4ckinger.php, config php çağırıldıktan sonra otomatik olarak sayfaya dahil olmuştur. Bu işlemleri htaccess yerine php.ini ile yapmanız da mümkündür. Son olarak lisans kontrolü sadece HTTP_HOST elemanı ile yapılmamaktadır. print_r($_SERVER) kodu ile $_SERVER değişkenlerinin elemanlarını görüp hayal gücünüzle istediğinizi yapabilirsiniz. *Yukarıda:"Bazı durumlarda ise uzaktaki script sahibine ait sunucudaki bir dosyaya istek gönderir ve lisans alan domain listesini çekerek oradan kontrol yapar." demiştik. Böyle bir durumda snifferlar aracılığı ile lisans sahibi domain listesine ulaşıp sonra $_SERVER dizisinde değişiklik yapabilirsiniz. Buraya kadar anlattıklarım işin saldırı boyutuyla ilgiliydi. Ne tür bir önlem alabiliriz derseniz, en basit olarak "ini_get()" fonksiyonu ile "auto_prepend_file" da herhangi bir değişiklik olup olmadığını kontrol edebiliriz.
if(ini_get("auto_prepend_file")){die("Scripti satın alın");}
Yukarıdaki ufak kontrolü config dosyamızda lisans kontrolü yaptığımız satırın üstüne koymamız yeterli olacaktır. Son olarak bu makalede anlattıklarım tamamen bilgi amaçlıdır. Lütfen kötü amaçlar için kullanmayalım. Bu işlerden ekmek kazananların haklarına girmeyelim. Orjinal yazıya bağlantı vererek alıntı yapabilirsiniz.

06 Aralık 2009 Pazar

Wall - E İzledim

  Normalde her izlediğim filme bir blog yazmıyorum. İzlediğim filme blog yazmayı geçtim zaten bu ara hiç bir şey yazamıyorum. Blogda ki bu durgunluğu kırmak için izlediğim animasyon film hakkında bir şeyler yazayım dedim.

  Yaklaşık bir hafta önce adsl bağlantı hızım 8mbps'a çıktı. Bu da bulunduğum bölgenin konumundan dolayı yaklaşık saniye de 800kb'a tekabül ediyor. TTNET'i çevirmeli bağlantı döneminden beri kullanan biri olarak bu hız benim için başlarda şaka gibiydi. Hiç vakit kaybetmeksizin hemen download işlemlerine başladım. Ve bu akşam da o downloadlar arasında olan "Wall-E" animasyon filmini izleme fırsatı buldum.



(Spoiler içerebilir)

Wall-E, baş kahramınımız sempatik robotun ismidir. İnsanlar o kadar alışveriş, tüketim çılgını olmuştur ki dünya çöpten geçilmez bir hale gelmiştir. Bu yüzden insanlar artık büyük uzay gemileri içinde uzayda yaşamaktadır. Bu uzay gemilerinde ise herşey robotlar tarafından yapılmaktadır. Herşey otomatiktir. Şirin robotumuzun görevi de dünyada ki çöpleri toplamaktır. Baş kahramanımız Wall-E  dünyada kalan tek sağlam robottur ve görevini büyük bir azimle devam ettirmektedir ta ki dünyaya araştırma için gelen yeni bir robot ile tanışana kadar.

Pixar animasyonlarıyla tanışıklığım Toy Story'e dayanır. Toy Story'i bilmeyen yoktur sanırım. Zamanın kısıtlı imkanlarıyla yapılmış muhteşem bir animasyondur. Wall-E de diğer Pixar animasyonları gibi harika bir animasyondur.

Fragman