Onaylı Üye
Öncelikle herkese iyi forumlar. Biraz eski ama hala kullanışlı olan manuel sql injection hakkında bildiklerimi anlatmak istedim. Umarım faydalı olur.
İlk adım olarak olası sql açığı olabilme potansiyeline sahip siteleri bulmakla başlayalım. Bunun için google a php?id= dorkunu yazıp aratırsak sql açığı olabilme potansiyeline sahip siteler karşımıza çıkacaktır. Açık olup olmadığını siteye girip mesela id=25 in sonuna '' koyup enter bastığımızda hata veriyorsa sql açığı vardır o sitenin. Açığı olan siteyi bulduğumuzda yapacaklarımız ise diyelim id nin sonuna " ekledik ve site Error: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '"' at line 1 diye bi hata verdi. Eklediğimiz " işaretini siliyoruz ve id nin yanına +order+by+1 yazıyoruz. Örnek( id=25+order+by+1) . Sayfa hatasız bir şekilde açıldıysa +1 yaptığımız yeri sayfa yeniden hata verene kadar +1 ekliyoruz. örnek ( id=25+order+by+2). Hata verdikten sonra diyelim 4 te hata verdi, id=25 lik kısma kadar hepsini siliyoruz onun yerine +union+select+0,1,2,3 yazıp enter basıyoruz. Eğer hatayı 7 de vermiş olsaydı 0 dan 6 ya kadar yazacaktık. Devam edelim.. Baktık sayfa sorunsuz çalışıyor. Bu sefer id nin başına - işareti ekliyoruz. örnek( php?id= -25). Bunu yazdığımızda ekranda bir iki tane biraz daha büyük şekilde rakam belirecek. Diyelim 2 rakamı çıktı. Url kısmında hani 0 dan 3 e kadar yazmıştık ya 2 yi siliyoruz onun yerine version() yazıyoruz. örnek ( 0,1,version(),3) . Ekranda versiyonun belirdiğini göreceksiniz. Daha sonra version() yazdığımız kısmı silip onun yerine group_concat(table_name) yazıyoruz. Ayrıca url nin en son kısmına gelip +from+information_schema.tables ekliyoruz ve enter basıyoruz. Ekrana sayfada bulunan tabloların isimleri gelecek. Örnek( php?id=-25+union+select+0,1,group_concat(table_name),3+from+information_schema.tables ) Mesela users tablosu geldi. Ve bu arada az sonra söyleceğim şey için char characters ler lazım. Yani users ın char dilindeki karşılığı. Bunu
İlk adım olarak olası sql açığı olabilme potansiyeline sahip siteleri bulmakla başlayalım. Bunun için google a php?id= dorkunu yazıp aratırsak sql açığı olabilme potansiyeline sahip siteler karşımıza çıkacaktır. Açık olup olmadığını siteye girip mesela id=25 in sonuna '' koyup enter bastığımızda hata veriyorsa sql açığı vardır o sitenin. Açığı olan siteyi bulduğumuzda yapacaklarımız ise diyelim id nin sonuna " ekledik ve site Error: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '"' at line 1 diye bi hata verdi. Eklediğimiz " işaretini siliyoruz ve id nin yanına +order+by+1 yazıyoruz. Örnek( id=25+order+by+1) . Sayfa hatasız bir şekilde açıldıysa +1 yaptığımız yeri sayfa yeniden hata verene kadar +1 ekliyoruz. örnek ( id=25+order+by+2). Hata verdikten sonra diyelim 4 te hata verdi, id=25 lik kısma kadar hepsini siliyoruz onun yerine +union+select+0,1,2,3 yazıp enter basıyoruz. Eğer hatayı 7 de vermiş olsaydı 0 dan 6 ya kadar yazacaktık. Devam edelim.. Baktık sayfa sorunsuz çalışıyor. Bu sefer id nin başına - işareti ekliyoruz. örnek( php?id= -25). Bunu yazdığımızda ekranda bir iki tane biraz daha büyük şekilde rakam belirecek. Diyelim 2 rakamı çıktı. Url kısmında hani 0 dan 3 e kadar yazmıştık ya 2 yi siliyoruz onun yerine version() yazıyoruz. örnek ( 0,1,version(),3) . Ekranda versiyonun belirdiğini göreceksiniz. Daha sonra version() yazdığımız kısmı silip onun yerine group_concat(table_name) yazıyoruz. Ayrıca url nin en son kısmına gelip +from+information_schema.tables ekliyoruz ve enter basıyoruz. Ekrana sayfada bulunan tabloların isimleri gelecek. Örnek( php?id=-25+union+select+0,1,group_concat(table_name),3+from+information_schema.tables ) Mesela users tablosu geldi. Ve bu arada az sonra söyleceğim şey için char characters ler lazım. Yani users ın char dilindeki karşılığı. Bunu
Bağlantıları görmek için lütfen
Giriş Yap
adresinden bakabilirsin. Mesela users ın char dilindeki karşılığı = 117,115,101,114,115 . Daha sonra group_concat kısmındaki table_name kısmını column_name olarak değiştiriyoruz. Ayrıca sondaki schema.tables kısmındaki tables yerine columns yazıyoruz. Bunları yaptıktan sonra en son kısma +where+table_name=char(117,115,101,114,115) yazıp enter basıyoruz. örnek( php?id=-25+union+select+0,1,group_concat(column_name),3+from+information_schema.columns+where+table_name=char(117,115,101,114,115). Bunu yazdığımızda sayfada username,id,password,email gibi column lar belirecek. Sıra geldi bu bilgileri almaya En son yapacağımız şey group_concat kısmına gelip parantez içini komple silip parantezin içine (username,password,email) yazacağız. Ayrıca from+ kısmındaki sonraki herşeyi silip users yazıp enter basacağız ve bilgiler karşımızda olacaktır. Örnek: ( php?id=-25+union+select+0,1,group_concat(username,password,email),3+from+users) . Anlatacaklarım bu kadardı umarım işinizi görür.
Son düzenleme: