examples arşivleri • CanYouPwnMe! - For Cyber Security Researchers https://canyoupwn.me cypm! Sun, 23 Jul 2017 18:41:53 +0000 tr hourly 1 https://wordpress.org/?v=6.0 https://canyoupwn.me/wp-content/uploads/2016/02/cropped-Başlıksız-1-32x32.png examples arşivleri • CanYouPwnMe! - For Cyber Security Researchers https://canyoupwn.me 32 32 TR | Web For Pentester 2 SQLi https://canyoupwn.me/web-for-pentester-2-sqli/ https://canyoupwn.me/web-for-pentester-2-sqli/#respond Wed, 04 May 2016 08:09:21 +0000 https://canyoupwn.me/?p=1971 CanYouPwnMe! - For Cyber Security Researchers CanYouPwnMe! - For Cyber Security Researchers - cypm!

Selamlar,daha önce WFP I ( Web For Pentester I ) egzersizlerine bakmıştık.Yine aynı ekip tarafından oluşturulmuş harika bir egzersiz serisi bulunuyor. Web For Pentester II Birinci egzersizlere göre biraz daha farklı konular bulunuyor. Burada gördüğünüz gibi aslında konularımız biraz daha zorlaşmış,farklılaşmış.(WFP I’e göre) Bu yazımızda SQL Injection bölümünü ele alacağız. Birinci yazımızın linki : https://canyoupwn.me/wfp-i-sqli/ […]

TR | Web For Pentester 2 SQLi Enes ERGÜN

]]>
CanYouPwnMe! - For Cyber Security Researchers CanYouPwnMe! - For Cyber Security Researchers - cypm!

Selamlar,daha önce WFP I ( Web For Pentester I ) egzersizlerine bakmıştık.Yine aynı ekip tarafından oluşturulmuş harika bir egzersiz serisi bulunuyor.
Web For Pentester II

Birinci egzersizlere göre biraz daha farklı konular bulunuyor.

Selection_009

Burada gördüğünüz gibi aslında konularımız biraz daha zorlaşmış,farklılaşmış.(WFP I’e göre)

Bu yazımızda SQL Injection bölümünü ele alacağız.

Birinci yazımızın linki : https://canyoupwn.me/wfp-i-sqli/

Bu yazımızda da farklı olarak sadece bypass yöntemlerini anlatacağız.Biraz da sizin taşın altına elinizi koymanızı bekleyeceğiz. 🙂

Level 1 :

Birinci levelimiz biraz basit bir işlem ile bypass edilebiliyor.

'or '1'='1

Selection_010

Burada sql bypass kodumuz başarıyla çalıştığı ve 1=1 her zaman True döndürdüğü için başarıyla giriş yapabiliyoruz.

Level 2:

Bu kısım da ise sql kodumuzu sınırlandırmamız gerekiyor.Çünkü geri döndürülen veri kısıtlanmış.Bu yüzden eğer sınırlandırmazsak bir işe yaramıyor.

' or 1=1 LIMIT 1 #

Selection_011

Level 3 :

Bu level biraz karışık gelebilir.Şöyle:

Bu kısımda username kısmında ki tek tırnak ( ‘ ) karakterini kaçış karakteri ile ( \ ) içerisine password kısmını almasını sağladık.
Daha sonra password kısmımıza ise en basit bypass yöntemimizi yazdık.
Username kısmı :

selam\

Password kısmı :

'or+1=1 #

Selection_012

Level 4 :

Bu kısımda adres çubuğu kısmında yazan string’e göre bize database üzerinden veri getiriyor.Yani aslında ne yazarsak bize onun kullanıcı adını getirecek.

'h'or 1=1

Selection_013

Yukarıda ki bypass yöntemimizi yazarak tüm kayıtları karşımıza getirebiliriz.

Burada bize sadece bu bilgiler lazım olmayacağı için

1.yazımız da ki ilk levelin bypassdan sonra ki işlemleri uygulayabilirsiniz.

Link : https://canyoupwn.me/wfp-i-sqli/
Aşağıda ki kısımdan sonrasını uygulayabilirsiniz.

order by 5 %23

Level 5 :

Bu kısımda eğer adres çubuğunun sonuna or 1=1 koyarsak bize hata vericektir.Bizde buradan yola çıkarak bypass yapabiliriz.

Selection_014

Burada hata verdirmesini sağladık.Hadi bypass edelim.
Selection_015

2 union select * from users

Union operatörünün görevi arkaplanda çalışan sorgunun ardından aslında ikinci,üçüncü, …… sorgu çalıştırmamızı sağlıyor.

Detaylı bilgi : http://www.w3schools.com/sql/sql_union.asp

Level 6 :

5.level ile aynı şekildedir.Tek fark burada sorguyu username ile gruplamasıdır.Yani sorgunun sonunda GROUP BY operatörü kullanılmakta.

Arka planda ki kod aşağıda ki gibidir.

SELECT * FROM users GROUP BY username

Selection_016

Level 7 :

Burada eğer

union select * from users

bypassını kullanırsak bize aşağıda ki hatayı verecektir.

Should only return one user…

Selection_017
Gördüğünüz gibi burada bize fazladan bir sütun,satır çekmemizi engelliyor.Ne yazık ki group_concat’de de aynı hatayı vericektir.

Burada yapabiliceğimiz tek şey adresin sonunda ki id kısmını silerek sadece ? işareti kalmasını sağlamak.Bu şekilde tüm bir tabloyu görebiliyoruz.
Ama bize çok fazla bir veri göstermediği bir gerçek.

Selection_18

Level 8 :

Bu bölümde bize bir kullanıcı kayıt sayfası gösteriliyor.Tek tırnak atıp arkaplanda nasıl bir kod çalıştığına bakabiliriz.
select_19_0

SELECT * FROM users WHERE username=''union select 1,2,3'

Burada gördüğünüz gibi koyduğumuz tek tırnakdan sonra işlemimizi yapabiliyoruz ama sondaki tek tırnağı da # ( diyez ) ile geçersiz kılmamız gerekiyor.

selam'union all select 1,2,group_concat(table_name)from information_schema.tables #

selection_19

Level 9 :

Bu kısımda biraz uğraşmamız gerekebiliyor.Çünkü escape_special_character gibi çeşitli fonksiyonlar ile bypass yöntemlerimiz işe yaramıyor.

Hatta baya uğraştım diyebiliriz ve pes edip kaynak kodlarına bakmak zorunda kaldım.

select20

Burada gördüğünüz gibi Character_Set “GBK” olarak belirlenmiş ? Sizinde kafanızın üstünde hayali bir ampül yandı sanırım değil mi ?

Tam da Karakter Setlerinden GBK ve Big5 setleri için uygun olan bir bypass yöntemi mevcut.

select_21

呵' or 1=1 #

TR | Web For Pentester 2 SQLi Enes ERGÜN

]]>
https://canyoupwn.me/web-for-pentester-2-sqli/feed/ 0