SQL Injection Dersleri Başladı

Etiketler sql injection, 19.01.2007

Evet, yavaş bir başlayış ama sindire sindire olacak. Şimdilik iki açılış makalesi ve bir video sizi bekliyor.

Siz kampımıza ısınırken ben de diğer makaleleri hazırlamak ile uğraşıyor olacağım.

Yakında gelecekler,

  • Başka bir kullanıcı olarak üye girişi yapma (videosunu izlemiş olacaksınız zaten)
  • Koddaki açığı kapama
  • Kodu düzeltme videosu
  • SQL Injection neden dolayı oluşur ve Nasıl korunulur?

Oyun başlasın...

anahtar kelimeler : sql injection

TEA kolik - 22.01.2007

SQL Injection Sistem Test Starting...!
Login ...
Connecting...
Connect :
Wellcome XXXXXX Co. Uk.
Hello Admin.

Ferruh Mavituna - 21.01.2007

Elimde örnek bir kod yok maalesef arkadaslar.

Umarim test ettiginiz sistemde test etme hakkiniz vardir, yoksa burada topluca suca israk etmis olmayalim. Hatanin nedenin tip olmamasi gerekiyor bir de malum orasi kullanici adi alani ne tipi olabilir ki illa ki stringdir bir de integer deneyin.

php takiminin bununla ilgili bir çalismasi war midir? söyle söyliyim,,

PHP' de mysql_real_escape_string() fonksiyonu var. Sonucta yazilim bunu sizin icin tahmin edemez etsede muhtemelen sorunlara acik kalir.

magic_quotes() ta oldugu gibi.

ylmz - 21.01.2007

bisey sormak istiyorum izninizle,,

php takiminin bununla ilgili bir çalismasi war midir? söyle söyliyim,,

mesela post veya get farketmez, bir string deger geldigi zaman sql string ile farklilik gösteremez mi?

biraz daha açik olmasi gerekrse,, form dan gönderilen degiskeni direk olarak sql e aktarmasinda string hatasi verse ve sadece sql için özel string çevrimi yapsalar ( convert_sql() gibi bi komut yapsalar.. ) bu injection lari önler mi?? böyle bir proje aklima geldi,, size söylemek istedim =)

Broth3rhood - 21.01.2007

Öncelikle cevaplariniz için tesekkür ederim.Elimde örnek bir kod yok maalesef arkadaslar.Mesajimda da bahsettigim gibi injection islemi yapmaya çalistigimda bu hata ile karsilastim.Daha önceden baska sitelerde update islemi yapabilmeme ragmen böyle bir sorunla karsilasinca bende sasirdim.Google da arastirirken örnek olarak bir arkadasimizin tarih ile ilgili yaptigi bir sorgulamada

[Microsoft][ODBC SQL Server Driver][SQL Server]Line 1: Incorrect syntax near '10'.

Hatasina karsi yardim istemis.Verilen Cevaplar genelde tarih fonksiyonunu

Set Listele = objuyebaglanti.Execute("Select * From [tbluyeler] Where [son_tarih] >= cdate( "& nekadar &" ) and [seviye] = 0 Order By [son_tarih] DESC")

seklinde yapmasi gerektigi olmus.Acaba bu hata veri tibinden kaynaklaniyor olabilir mi ? Ama bu sekilde olsaydi sql hatasinin farkli olacagini düsünüyorum.Bu hata da ise hiç bir açiklayici bilgi yok:( Bu konuda bilgilerinizi benimde paylasirsaniz çok sevinirim.

Varol - 20.01.2007

Evet bencede kodda string cambazliklari yapmis olabilirler. Paranoya bazen güzel oluyor:)

Ferruh Mavituna - 20.01.2007

Ilginç bir hata aslinda çikmamasi lazim. Sintaks tamamen dogru gözüküyor bana.Eger ahmet i kolon ismi olarak algilayabilyorsa zaten islem dogru demek. Yani ikinci SQL basariyla çalisiyor demek.

Kodda ekstra tuhaf bir koruma olabilir çünkü normalde update' inizin basariyla çalismasi gerekiyor. Örnek kod elinizde varsa koda bakabiliriz.

Broth3rhood - 20.01.2007

Ferruh bey benim ufak bir sorunum olacakti Update konutu ile ilgili.Su an tablo isimilerini kolon isimlerini bildigim bir database de injection ile update yapmaya çalisiyorum.Mesela formm girdilerim su sekilde ,
'; update uyeler set ad = 'ahmet' where id = 44 --

bu sekilde yazdigim zaman söyle bir hatayla karsilasiyorum.

Microsoft OLE DB Provider for SQL Server (0x80040E14)
Line 1: Incorrect syntax near 'ahmet'.

'; update uyeler set ad = ahmet where id = 44 --

Bu sekilde yazdigim da ise ahmet i bir kolon ismi olarak algiliyor ve Invalid column name 'ahmet' gibi bir hata veriyor.Bu hatayi nasil çözebilirim yardimci olursaniz sevinirim.

Broth3rhood - 20.01.2007

Güzel bir baslangiç olmus.Bu sekilde mantikli olarak gördügüm sayili dökümanlardan biri bence.Ama asil sabirsizlikta bekledigim sql injection daki update , insert komutuyla ilgili dersler.Union komutuyla bir çok veri alabildigim,login olabildigim sitelerde update ve insert islemini gerçeklestiremiyorum.Bildigim kadariyla update islemi;
Form girdileri üzerinde

'; update tablo_ismi set kolon_ismi = 'veri' where bolge = '1' --

gibi ama bu islemi bir türlü uygulamaya koyamadim.Bu yüzden sabirsizlikta yeni yazinizi bekliyorum.

Selçuk Hoca - 20.01.2007

Baslangiç için çok iyi buldum dersleri. Güvenimiz bosa çikmadi yani:) Tasarim için de Allah razi olsun diyorum. Resimler felan karistiriyordu kendini arasira ...Böyle genis genis ferah olmus.

eqzo - 20.01.2007

Eline saglik Ferruh,

anlasilabilir ve yeterince sade, tesekkürler.

Ferruh Mavituna - 20.01.2007

Eywallah,

bu arada Londra'da yasadigini duydum dogrumu bilmiyorum..

dogrudur.

Martin McFly - 20.01.2007

güzel bir anlatim çikarmissin..arka planda neler olup bittigine deginmen, anlatim uslubun çok iyi gerçekten..bu arada Londra'da yasadigini duydum dogrumu bilmiyorum..

Yorum Yazın


Tüm yorumlar onaydan geçmektedir, bu işlem en uzun 30 dk. sürecektir. E-mail adresleri yeni yorumları bildirme harici hiç bir başka amaçla kullanılmamaktadır ve sitede gözükmemektedir.

Yeni yorumlardan haberdar et

Captcha Kodu