İyinet'e Hoşgeldiniz!

Türkiye'nin En Eski Webmaster Forum'una Hemen Kayıt Olun!

Kayıt Ol!

kodlarla yönetici girşi yapmak

Ozcan

0
İyinet Üyesi
Katılım
12 Mayıs 2007
Mesajlar
3,749
Reaction score
61
Konum
Antalya
sitemde şunun gibi bir kontrol bölümü var.

if ($kullanici_adi=="admin" and $sifre=="123") diye

1. 123 yazısı değişkenle geldiği için normalde şifre bölümüne 432" or 3==3)// yazdığımda admin olarak giriş yapması lazım diye düşünüyorum. Acaba yanlış mı ?

if ($kullanici_adi =="admin" and $sifre=="432" or 3==3)//") olacak çünkü

2. php.ini de gpc_magic_quotes on muş. bu yüzden karakterlerin başına otomatik \ ekliyor. Yani yukarda yazdığım kod 432" or 3==3)// çalıştığında 432\" or 3==3)// oluyor bu yüzden şifreyi 432\" or 3==3)// olarak arıyor ve eşleştiremiyor.
Bunların yerine ascii kodları yazdığımda & #34; or 3==3) & #47;& #47; (& ve # ların arasına boşluk koymadan ) " or 3==3) // bu kodu üretiyor normal yazı olarak. acaba bu ascii kodlarını neden kabul etmiyor?
 

NeFuSa

0
İyinet Üyesi
Katılım
27 Aralık 2006
Mesajlar
1,414
Reaction score
15
Konum
İstanbul
Çünkü benim bildiğim ascii kodlarının karşılığını browserda okuturken görürsün.
 

K1R1A1LM1AS

0
İyinet Üyesi
Katılım
26 Ocak 2010
Mesajlar
126
Reaction score
9
Konum
Antalya
sitemde şunun gibi bir kontrol bölümü var.

if ($kullanici_adi=="admin" and $sifre=="123") diye

1. 123 yazısı değişkenle geldiği için normalde şifre bölümüne 432" or 3==3)// yazdığımda admin olarak giriş yapması lazım diye düşünüyorum. Acaba yanlış mı ?

if ($kullanici_adi =="admin" and $sifre=="432" or 3==3)//") olacak çünkü
Dışarıdan gönderilen veriler, PHP tarafından çalıştırılmaz, sadece sıradan bir değişkene atanmış, string gibi muhafaza edilir ve o şekilde kullanılır. Bahsettiğiniz olay sadece, gerekli önlemler alınmamış ise, SQL kodlarında ki gibi, bir string kümesini değiştirmek için kullanılabilir.

PHP'de ki açıklar konusunda bilgi sahibi olmak istiyorsanız, aşağıdaki yazıyı inceleyebilirsiniz.
http://newdata.box.sk/cgi/studyinscarlet.txt

2. php.ini de gpc_magic_quotes on muş. bu yüzden karakterlerin başına otomatik \ ekliyor. Yani yukarda yazdığım kod 432" or 3==3)// çalıştığında 432\" or 3==3)// oluyor bu yüzden şifreyi 432\" or 3==3)// olarak arıyor ve eşleştiremiyor.
Bunların yerine ascii kodları yazdığımda & #34; or 3==3) & #47;& #47; (& ve # ların arasına boşluk koymadan ) " or 3==3) // bu kodu üretiyor normal yazı olarak. acaba bu ascii kodlarını neden kabul etmiyor?
gpc_magic_quotes'un on/off durumunda olup olmaması, yukarıda bahsettiğiniz giriş olayının gerçekleşmesini sağlamaz.

Ayrıca, her ne kadar, string içinde bir değeri olmasa da, # işareti sandığınızın aksine, karakterin ascii karşılığına denk gelmez, çünkü PHP içinde, // ve /* */ gibi bir yorum sembolüdür, o yüzden sağ kısmında kalan verilerde, yorum gibi kabul edilir ve çalıştırılmaz. PHP'de, karakterin ascii karşılığını istiyorsanız, chr fonksiyonunu kullanmanız gerekir. Ayrıntılı bilgiyi aşağıda ki sayfalardan edinebilirsiniz.

http://www.php.net/manual/tr/language.basic-syntax.comments.php
http://www.php.net/manual/tr/function.chr.php
 

Türkiye’nin ilk webmaster forum sitesi iyinet.com'da forum üyeleri tarafından yapılan tüm paylaşımlardan; Türk Ceza Kanunu’nun 20. Maddesinin, 5651 Sayılı Kanununun 4. maddesinin 2. fıkrasına göre, paylaşım yapan üyeler sorumludur.

Üst