PHP'de muhtemel güvenlik açıkları ve Korunma yolları |
Yanıt Yaz |
Yazar | ||
megabros
Security Professional Kayıt Tarihi: 08-06-2009 Konum: Turkey Status: Aktif Değil Points: 752 |
Mesaj Seçenekleri
Yanıt Yaz
Alıntı megabros
Bu mesaj kurallara aykırıysa buradan yöneticileri bilgilendirebilirsiniz.
Gönderim Zamanı: 08-04-2010 Saat 00:32 |
|
PHP şuanda dünyada en çok kullanılan web programlama dillerinden biri.Her geçen gün yeni php scriptler yazılıyor programcılar sürekli kendini geliştirmeye çalışıyor ve web siteleri daha fazla php ile içiçe girmeye başlıyor.Bu yazıda PHP kodları yazılırken gözden kaçan şeylerden nasıl bir web sitesine istediğimiz yapabileceğimizi ve bunlardan nasıl korunacağımızı anlatacağım.Başlayalım; Fonksiyonları Kullanma: PHP fonksiyonlarının bir çoğu esnek ve bir okadar erişime açıktır.Mesela include(), require() ve fopen() fonsiyonları yerel host üzerindeki dosyaları kabul eder.Bunlarda yapılan yanlış yapılandırma gibi hataları kullanarak uzaktan neler yapabileceğimizi görelim; diye bir sayfamız olsun burada $i açıkça dosyayı içerdiğini görüyoruz peki böyle bir sayfa gördüğümüzde ilk olarak ne düşünürüz -programcı i=../../../etc/passwd? gibi bir yol yapmışmıdır eğer hepsi bizim işimize göre negatifse şöyle birşey yapabiliriz
burada x sayfasının içine şu tip kodları koyarak dahada olayı geliştirebiliriz
<?php
ve bu size bağlı olarak geliştirilebilir.Sanırım burada yapılacaklar sınırsız. Genel Açıklar: Mesela eski bir mambo sürümdeki genel açığı inceliyelim;
<?php
eğer şifre doğruysa $myname, $fullname ve $userid kaydedilir ve kullanıcı index2.php ye gönderilir.
<?php
burada eğer session ID ayarlanmamışsa kullanıcı tekrar login ekranına geri gönderilir fakat ayarlanmışsa script işleme devam eder ve bir önceki ayarlarla kullanıcı giriş yapar.Şimdi biz bunu nasıl sömüreceğiz bunu inceliyelim; gibi bir URL miz olduğunu düşünün.Burada $PHPSESID değişkeni ayarlı ve bu değişkende diğer 3 değişkenin doğrulanmasını sağlıyor.Ve burada yapılan sorgu işleminin yanlışlığından istediğimiz gibi giriş yapmamıza olanak veriyor. SQL yapılandırma hataları: SQL süz bir php düşünemeyiz.Fakat kontrol edilmemiş SQL sorgu değişkenleri çok büyük tehlikeleri birlikte getirmekte şöyleki; Gene eski bir PHP-Nuke script versiyonunu inceliyelim.Bu versiyonda yapımcılar tüm tabloların başına "nuke" önekini koymuşlar sanıyorum bunu diğer scriptlerden farklı olduklarını göstermek için yapmışlar.Buradaki her $prefix = "nuke"; tanımlaması config.php içinde yapılır. Şimdi article.php yi inceliyelim; <?php
ve biraz aşağıda SQL sorgusu
<?php
SQL sorgusunu değiştirmek için $prefix in ana değerinde olmamalı bu sayede biz herhangi bir değer vererek GET parametrelerini kullanabileceğiz.config.php mainfile.php yi içermekte biz biliyoruzki $mainfile, $sid ve $tid herhangi bir değişken atıyarak GET parametrelerini kullanabiliriz.Bunu yapınca script mainfile.php ve $prefix içerdiğini ve buna göre ayarlandığını düşünecektir (.
bunun açılımı UPDATE nuke.nuke_authors set pwd=1#_stories şeklinde olacaktır yani bir sonraki sorguda tüm admin şifreleri "1" olarak ayarlandı. Güvenlik: -İlk olarak dışardan yapılacak müdahalelere karşı dikkatli olmalısınız.Biri sizin scriptinizdeki cookie denetimlerini veya herhangi java script uygulamalarıyla yaptığınız kodlamaları kullanabilir. -Hata kayıtlarında dikkatli olmalısınız.En iyi yöntem olarak error_log() fonksiyonunu kullanabilirsiniz.Eğer biri sizin scriptinizle oynamaya başladığında bu şekilde bu kayıtları bir yerde toplayabilir veya kendinize mail olarak gönderebilirsiniz. Saygılar.
Düzenleyen megabros - 08-04-2010 Saat 00:32 |
||
wolf
Üye Kayıt Tarihi: 30-07-2009 Status: Aktif DeÄŸil Points: 0 |
Mesaj Seçenekleri
Yanıt Yaz
Alıntı wolf
Bu mesaj kurallara aykırıysa buradan yöneticileri bilgilendirebilirsiniz.
|
|
Öncelikle makale için teşekkürler ama yazıda kopukluklar var. Mesela;
|
||
megabros
Security Professional Kayıt Tarihi: 08-06-2009 Konum: Turkey Status: Aktif Değil Points: 752 |
Mesaj Seçenekleri
Yanıt Yaz
Alıntı megabros
Bu mesaj kurallara aykırıysa buradan yöneticileri bilgilendirebilirsiniz.
|
|
Belirtilmeyen sayfalar PHP Code şeklinde belirtilen Codeler ile bağlantılıdır.Sayfalar belirtilmemiştir çünki verilen URL'lerin kullanılması için verilen bağlantınında güvenlik açısından sanal olmaması gerekmektedir.
Saygılar.
|
||
Yanıt Yaz | |
Tweet |
Forum Atla | Forum İzinleri Kapalı Foruma Yeni Konu Gönderme Kapalı Forumdaki Konulara Cevap Yazma Kapalı Forumda Cevapları Silme Kapalı Forumdaki Cevapları Düzenleme Kapalı Forumda Anket Açma Açık Forumda Anketlerde Oy Kullanma |