SQL Injection Dersleri

14.01.2007

Okuyucu : 5.698
Günlük Okuyucu : 10,3

GhostBurada çok ciddi bir sorunumuz var. Benim esas alanım güvenlik ve özellikle de web uygulaması güvenliği. Bunun anlamı arge' mi ve aktif çalışma zamanımı esas olarak web uygulaması güvenliği ile ilgili olarak harcamam. Çelişki şurada ki sitedeki genel konulara bakınca bu konuda çok az şey yazmış olmam.

Sitede bir çok güvenlik konusunda çok fazla yazı yok. Bunun nedenleri var. En büyüğü ise bu tip bir çok konunun daha önceden ingilizce olarak üretilmiş olması ve benim de zaten yapılmış bir şeyi tekrar yapmaya karşı büyük bir antipatim olması.

İkinci nedeni ise yapılan XSSShell gibi tamanmen yeni bir şey de olsa güvenlik konusunda türkiye de çok az kaynak olduğundan genelde yazdıklarınız çok havada kalıyor.

Özetle bir çok ziyaretçi konunun temelini bilmediğinden ben de sadece 10 kişinin anlayacağı bir şey için ekstra efor sarfetmek istemediğimden o tip şeyleri de direk ingilizce olarak yayınlıyorum.

2004 senesinin ortalarında düşünmeye başladığım bir proje var. 2005' in yılbaşında bu projeye başlayıp 2006' nın sonunda da bitirmiş ve yayınlamış olacaktım. Tabii ki benim 'odaklanma' sorunlarımdan dolayı şu an 2007' nin Ocak ayındayız ve projenin sadece 10% unu yapmış durumdayım. Projenin burada detaylarına inmek istemiyorum, çünkü hala hafif bir şekilde aktif ve belki ilk zamanda düşündüğüm gibi olacak. Komik olan 2004' te düşündüğüm konunun üzerinden 3 sene geçmesine rağmen benzer bir proje henüz ortaya atıulmış değil.

"Ya Ferruh ne geyik çevirdin derdin ne, söyle de bilelim ?"

İşittim, tamam işte geliyor. Projenin bir bölümü web uygulaması güvenlik dersleri içeriyordu. SQL Injection, XSS, Remote Code Inclusion, CSRF, HTTP Message Splitting, çeşitli input oyunları, dil bazlı güvenlik açıkları vs. Ben henüz SQL Injection bölümündeyim ve çok yakında adım adım inşallah bu makaleleri siteye koyacağım.

Makaleler neler içeriyor?

  • Makaleler korunma değil saldırıya yönelik hatta bir çok makalede ilgili açıktan nasıl korunulacağı hakkında bir paragraftan fazla bilgi yok,
  • Makaleler en alt seviyeden başlıyor,
  • Her makale teorik ve teknik olarak bilgiler içeriyor,
  • Makalelerde bol bol resim ve güvenlik laboratuvar' ınızı nasıl kuracağınız anlatılıyor
  • Her makale video içeriyor
  • Makalelerde exploiting konusu çok detaylı şekilde inceleniyor mesela SQL Injection için yaklaşık 15' den fazla yöntem tartışılıyor
  • Makalelerde ek koruma sistemlerini nasıl geçebileceğiniz anlatılıyor
  • Makaleler sektördeki son teknolojileri, yeni yayınlanmış teknikleri de içeriyor
  • Her makalede ilgili konunun otomatik olarak nasıl tespit edilebileceği veya bunun zorlukları, ek olarak otomatik tespit etme yazılımının kodu yer alıyor
  • Her makalede ilgili açığın ve metodun otomatik exploiti üzerine tartışılıyor ve otomatik exploit yazılımının kodu yer alıyor
  • Ek olarak bazı makaleler ile ilgili hazır açık sistemlerin VMWare imajı olarak dağıtılması fikri var ancak legal konulardan dolaı bunu sadece Linux tabanlı sistem testlerinde yapabileceğim veya unattended Windows setup' ı tasarlamak gerekiyor.

Bunlar hemen hemen her makalede olan bazı karakteristik özellikler. Ben SQL Injection derslerinin çalılşmalarına başlıyorum. Muhtemelen seriye başlamam bir haftamı alacaktır.

İlk yayınlancak SQL Injection makaleleri,

  • SQL Injection Nedir?
  • Test Labaratuvarı' nın kurulumu
  • Başka bir kullanıcı olarak login olmak (+Video)
  • Kodun düzeltilmesi (+Video)
  • SQL Injection neden oluşur ve Nasıl Korunulur?
  • Veritabanı Farklılıkları
  • UNION Nedir?
  • UNION ile Data okuma (+Video)
  • Tablo Yapılarını Keşfetme

SQL Injection konusunda ileriki adımlarda birkaç başlık,

  • Numerik Injectionlar
  • OPENROWSET kullanımı
  • İleri seviye kontrolleri geçme
  • Second Order SQL Injection
  • Okunan datayı ilerletme
  • Blind SQL Injection
  • Zaman tabanlı tamamen Blind SQL Injectionlar
  • SQL Injection üzerinden Privilige Escalation
  • PHP - Apache' de MagicQuotes' ı anlamak ve geçmek vs...

Bu şekilde ortalama 50 makale başlığı var. Bu konu ilginizi çekiyorsa, özelikle bu şekilde daha çok yazı görmek istiyorsanız, bu makalelerin bir an önce siteye atılmasını istiyorsanız ya da başka fikirleriniz varsa şiddetle sizi aşağıdaki kısımdan yorum yazmaya veya bana e-mail atmaya davet ediyorum.

Çünkü daha önceden olduğu gibi hala bu konuda ciddi şüphelerim var yorumlarınızla bu işin güzel şekilde şekillenmesine yardımcı olabilirsiniz.

Yorumlar

RSS Bu makalenin yorumlarını RSS ile takip et!

Evet.. Yazmayayım yazmayayım dedim ama gene parmaklarıma hakim olamadım.. Tam olarak dogru kelimeyi secip secmedigimden emin degilim fakat, bu tür yorum yapan insanlara "illet" oluyorum.. Cünkü yorumun amacı belli degil.. Yardım etmek isteyen, "çorbada benimde tuzum bulunsun" amacında bir yorum olarak algıladıgımızı düşünürsek, yazılarda ki uslup buna ters düşüyor.. Ve gercekten ters giden bir durumun veya hareketin farkındaysanız, buna burda insanların arasında hava atma gösterisi olarak başvuracagınıza, Ferruh Bey'in mail adresine yazabilirdiniz.. Ha amaç yardım etmek değil, sadece hava atmaksa eger, Ozaman egonuzu tatmin etme gorevimizi yerine getirip" Vaaay.. Zuriye arkadaşımız cok şey biliyooorr, Supersin gercekteeennn" cumleleriyle size destek olabiliriz.. Herneyse.. Saygılar..

alper_joy@hotmail.com [ # | 16.01.2007 ]

Selam,
Dediğim gibi kimseye birşey kanıtlamak yada başka birşey için yazmadım eğer birşey öğretilmeye çalışılanıyorsa tamamen doğru ve düzgün olarak anlatılması daha mantıklıdır diye yazdım ancak alper arkadaşımız gibi mesajımı direk negatif olarak okursanız bu hataya düşersiniz.
Ben sizin mesajınızdaki tek bir cümleden dolayı böyle bir mesaj yazdım onuda mesajınızı çok güzel okursanız kendiniz görürsünüz.
Halen yanlışınız var; Eğer interpreter kodu compile ederken içinde eval ve benzeri zararlı kodlar varsa buna Code Inclusion denmez , zaten Inclusion dahil etmek demektir burada biz include yada require gibi fonksiyonlardan bahsediyoruz ancak eval gibi yada bir passthru gibi (PHP için) fonksiyonlarda code/command execute ediyorsak buna Code Injection denir.İlgili makaleler SANS,CVE gibi kurumlardan alınabilir bu tür yanlışlar FrIRST gibi OSVDB gibi kurumlar tarafından yapıldı CVE direk olarak bu hataların başka kurumlarca böyle sanıldığını aksine olayın Eval Injection/Code Injection olduğu belirtmiştir.Dediniz bu tip açıklar "remote code execution" diye "remote code inclusion" işte yanılgı buradadır :).Bunun yöntemleri cidden oldukça fazladır local file inclusiondan apache loglarına veya sisteme upload izni varsa malformed picture dediğimiz zararlı kodlara sahip resimler veya daha değişik dosya uzantılarıyla lfi yapılabilir.Lütfen bu tür konular karışmasın ben kimsenin hatasını bulmaya çalışmıyorum.
UNION için benim için oldukça büyük bir olay demişsiniz. MySQL 3.23 ve alt sürümlerde UNION desteği yoktur daha değişik subquerylerle veri çalma yapılabilir ki bu bütün sürümlerde vardır. UNION direk olarak birleşik kelimesinden aklıma gelmelidir ve önündeki sorgudaki hedefler kadar hedef olmalıdır ki bu SELECT sorgusu ise MSSQL ve Access dışındaki sistemlerde UNION sadece select sorgularda kullanılabilir ancak bu iki üründede UPDATE INSERT gibi fonksiyonlardada kullanılabilir. UNION bu kadar büyütmeye gerek yok sonuçta hedef eldekilerle yapılacaktır ;).
Dediğim gibi ben kimsenin yanlışını yüzüne vurmaya çalışmıyorum.Bende ITSec. sektöründe çalışıyorum herkesin bilinçlenmesini istiyorum kendiminde bir çok çalışması oldu ancak Türk insanı her zaman en iyi ben bilirim en iyi ben anlarım dediği için çok kaybediyor bende bu çalışmalarımı bitirdim.Sizede yardımcı olmaya çalıştım dediğim gibi yabancı terimlerle anlatılacaksa ve yabancıların standartlarıyla terimler hassas olmak zorundadır.
Umarım programcı arkadaşlarımız dediğim gibi ingilizcelerini ilerletir c/p programcılığını bırakır ve kendi yöntemlerini geliştirir.
Unutmayın bu tür hatalar hep eksik ve yanlış kodlamanın ürünüdür ve emin olun açıkları bulan pen-test yapan insanlar sizden çok daha iyi programlama biliyorlar ben size hazır bulunan açıklarla saldırı yapan skiddielerden bahsetmiyorum.Ha sizi takdir ediyorum XSS gibi bir olayı sadece cookie çalmak zanneden ve önemseyen insanların olduğu bir ülkede XSSShell denilen olayı tanıtmanız gelişmesini sağlamanız çok güzel çünkü XSS saldırılarıyla bugün virüsler bile yayılmaktadır..
Neyse yanlış anlaşılmaktan çok bıktım umarım anlatmak istediğim anlaşılmıştır.
İyi günler,
Zuriye Variş

Zuriye Variş [ # | 16.01.2007 ]

Eval ile passthru yu ayni yere koymakta yanlis cunku ayni sey degil. Madem ITsec te calisiyorsunuz o zaman bir cok acik icin 20 terim oldugunu da bilirsiniz ve bunun bir standardi olmadigini bilirsiniz (henuz). Ancak yapilmaya calisildigini da. Bugun XSS e bile 3. level remote file inclusion diyenler var. O zaman bana CSRF nedir Session Riding kullansana da demeniz gerekiyor.

Dolayisiyla terim muhabbeti yapmaya erek yok, burada yapilacak en sacma hareketlerden biri olur.

Gene de yukaridaki mesaja bakinca haklisiniz remote code execution daha genel bir terim.

UNION için benim için oldukça büyük bir olay demişsiniz. MySQL 3.23 ve alt sürümlerde UNION desteği yoktur daha değişik subquerylerle veri çalma yapılabilir ki bu bütün sürümlerde vardır. UNION direk olarak birleşik kelimesinden aklıma gelmelidir ve önündeki sorgudaki hedefler kadar hedef olmalıdır ki bu SELECT sorgusu ise MSSQL ve Access dışındaki sistemlerde UNION sadece select sorgularda kullanılabilir ancak bu iki üründede UPDATE INSERT gibi fonksiyonlardada kullanılabilir. UNION bu kadar büyütmeye gerek yok sonuçta hedef eldekilerle yapılacaktır ;).

Ben bu muhabbeti anladim ama neyse, Anlamadigim su kimse size bunun aksini soylemedi ki, kimse UNION MySQL in eski versiyonlarinda var demedi ya da X yerde Z kullanilamaz demedi. ve dedigim gibi UNION size o kadardir bana bu kadar simdi burada yaw neden UNION ile ilgili bolum yaziyorsun deger mi demenin mantalistesi nedir? Var ki diyecek bir seylerim yaziyorum.

Umarım programcı arkadaşlarımız dediğim gibi ingilizcelerini ilerletir c/p programcılığını bırakır ve kendi yöntemlerini geliştirir.

Bende dahil olmak uzere bir cok insan burada kendini gelistirmek icin duruyor ama siz bunu gercekten umuyor sekilde katkida bulunmuyorsunuz :)

Unutmayın bu tür hatalar hep eksik ve yanlış kodlamanın ürünüdür ve emin olun açıkları bulan pen-test yapan insanlar sizden çok daha iyi programlama biliyorlar ben size hazır bulunan açıklarla saldırı yapan skiddielerden bahsetmiyorum.

Burada da kimden nasil ve neden bahsettiginizi anlamadim.

Anlatmak istediginiz zaten basit diyorsunuz ki burada terim hatasi var yapmayalim, bende diyorum ki terim hatasi bu sektorun heryeri hatta guvenlik sektorunun heryeri. Bakiniz ilk SQL Injection in dokumante edildigi makaleye, acigin adi SQL Injection degildir. Ama acik ayni acik bu onu az veya cok yapmiyor ya da baska bir sey. Ki donup bakinca fol yok yumurta yok daha demek ki yazinca neler olacak. Yazidaki teknik hatalar her zaman duzeltilmesini isteriz nitekim bu benim onu yanlis bildigime veya yazarken yanlis yazidigima isaret iki durumda da karli cikarim ama bu mesajlarin kendisinin samimi olmadigi zaten bariz.

Belli ki bu islerle ugrasiyorsunuz hatta sektorde calisiyormussunuz, ne guzel. Buyrun teknik olarak hatalarimizi bildirin, biz de duzeltelim seviniriz. Yazilari yayinlayinca da bekleriz ama bunlar teorik, terimsel ya da geyiksel olmasin lutfen, yoksa sadece geyik yapan ama faaliyet gostermeyen insanlar gibi gozukuruz.

XSSShell konusunda tesekkur ederim.

Olayi toplarsam, yanlis anlasilmanizin nedeni basit sekilde uslubunuzdur cunku bu dostca degil dusmanca bir uslup her ne kadar bu sekilde bir dil ile yazilmasa da yukaridaki arkadasin dedigi bu bariz. Bu Turkiye de her zaman olur, ama maalesef hala alisamadim. Cehennemdeki zebani-kuyu fikrasini herkes bilir. Dolayisiyla detaylara takilmayip ana konu hakkinda bir seyler diyecekseniz seviniriz yoksa su an yardimci olmuyorsunuz hatta yardimci veya samimi olma kavramindan cok uzaklardasinizn.

Veya bakin ben bir sey yaptim, anlattim derseniz buyrun ona bizi yonlendirin biz de o kaynaklari kullanalim.

Ferruh Mavituna [ # | 16.01.2007 ]

@Zuriye Hanım/Bey belli ki bir şeyler biliyorsunuz :) Ama ne söylediğimiz kadar nasıl söylediğimiz de önemli sanırım. Biz sizin kadar ingilizce, programcılık vs. okumadık ama biraz Şeyh Galip bilirliğimiz vardır ve üstad der ki:

Zannetme ki şöyle böyle bir söz
Gel sen dahi söyle böyle bir söz.

Selçuk Hoca [ # | 16.01.2007 ]

çince fransızce portekizce türkçe ve rusçeda öğrenmeniz gerekiyor iyi çalışmalar kolay gelsin arkadaşlar

Vecihi Kabasakal [ # | 16.01.2007 ]

Zebani - Kuyu fıkrası hayat bulmuş burada gerçekten hayretler içerisindeyim, Bir Türk kuyudan çıkmaya çalışırken diğeri aşağı çekiyor evet bizim kuyumuzun başında hiç bekçi yok. Sizi yazmaktan soğutmuşlar sanırım sizde başkaları yazmasın fikrindesiniz.

Gelip burada şov yapmanızın bildiklerinizi veya saçma sapan anlamdaş terimlerin diğer çeşidinide bildiğinizi ispatlamanın manası tek kelimeyle birşey yarıştırmaktır.

İngilizce bildiğinizi insanların inglizce öğrenmelerini istemenizden, copy paste yapmadığınızı insanların c/p yapmamaları gerektiğini söylemenizden, güvenlik bilginiz olmasını anlamdaş kelimeleri kullanmanızdan, ve ruhsal bir probleminiz olduğunu buraya saldırgan bir şekilde yazı yazmanızdan gayet net bir şekilde anlıyoruz.

Varol [ # | 16.01.2007 ]

Bu Varol arkadaşıma kanım ısındı birden :) Bir de para mevzusunu kapatsa :))

alper_joy@hotmail.com [ # | 16.01.2007 ]

Ben tartışmalar hakkında yorum yapmayacağımda, şimdi burdaki terimlerin çoğuna uzak olduğumu anladım.

Tek söyleyeceğim; emeğe saygı gösterelim, bir şey yapılmaya çalışılıyorsa destek olalım ama adabıyla..

Anlatılmaya çalışılan tüm konularda kendimi geliştirmek istiyorum ve yazılarını merakla bekliyorum ferruh.

Saldırgan tavırlarıyla boy gösteren arkadaşımızdanda bekliyorum :))


kuen [ # | 17.01.2007 ]

Selamlar,

Bu konu bence internet uzerinde en cok onem gosterilmesi gereken konu, ve o yuzden de bu konuyla ilgili ne yazar cizerseniz farketmez, hepsi kabulum. Yeter ki ayrintili ve kaliteli kaynak olsun. Zaten bu sitedeki her makale gibi cok guzel olacaklarini biliyorum. Insallah en kisa zamanda makaleleri sitenizde gorup okuma sansimiz olur da biz de kendi bilgisizligimizi ve aciklarimizi giderebiliriz.

Tesekkurler...

Demods [ # | 18.01.2007 ]

Gerçekten oldukça güzel bir dökümantasyon projesi olur, merakla bekliyoruz yazılanları..

Yns [ # | 20.01.2007 ]

tebrik ederim zuriye kardiş,,
ne kadar çok şey biliyosun böyle =)

-------

mavituna bey çevremdeki herkes sizden çok iyi bahsediyor ve genelde giriyorum,, sizinle tanışmak isterim,, bilgi sahibi olmak erdemdir ve bunu açıklamak ise başka bir üstünlüktür..

İnsanlara bişeyler anlatmak çok zordur ama en kolay yolu ve en güzel yolu kullanarak anlatmışsınız =) Teşekkür ederm..

yLmZ [ # | 21.01.2007 ]

bu züriye denen arkadaş kendisi birşeyler biliyor veya öyle görünüyor bu işler terimle falan olmaz icraat gerekir , fakat herkesin birşeyler öğreneceği bir makalenin yazarını eleştirerek projenin aksamasını istiyor galiba neden acaba(!) .. yazısının artniyetsiz yazılmış bir eleştiri olmadığı apaçık . ama bu tip kişiler her zaman çıkar önemli olan onları dikkate almamaktır galiba

zangief [ # | 27.01.2007 ]

Yorum Ekle





Kullanılabilir Taglar : [<blockquote>] [<strong>] [<em>]

SQL Injection Dersleri ile İlişkili Olabilecek Yazılar - Haberler

Online Conversion Tool
SQL Tunnelling - Exploiting Internal Networks via SQL Injection
Türkçe SQL Injection Referansı
Rootkit Piyasada!
SQL Injection SubSelects and IF Statements

Diğer Yazılar

Neredeyim ?

Ferruh.Mavituna » Haberler » SQL Injection Dersleri

Ferruh Mavituna
© 2002-2007, Ferruh Mavituna

Sabit IP Adresi : 81.22.99.133, SSL Erişimi, Hakkında