pentesterlab arşivleri • CanYouPwnMe! - For Cyber Security Researchers https://canyoupwn.me cypm! Thu, 19 Apr 2018 19:52:48 +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 pentesterlab 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
TR | Awesome Learn Pentesting https://canyoupwn.me/tr-awesome-penetration-testing/ https://canyoupwn.me/tr-awesome-penetration-testing/#respond Wed, 09 Mar 2016 07:00:59 +0000 https://canyoupwn.me/?p=709 CanYouPwnMe! - For Cyber Security Researchers CanYouPwnMe! - For Cyber Security Researchers - cypm!

Online Kaynaklar: Sızma Testi Kaynakları Metasploit Unleashed – Ücretsiz Metasploit Kursları PTES – Sızma Testi Standartları OWASP – Web Uygulama Güvenliği Projesi   Shellcode Geliştirme Shellcode Örnekleri – Shellcode Veritabanı   Sosyal Mühendislik Kaynakları Kilit Kırma Kaynakları Schuyler Towne Youtube Channel – Kilit Kırma Teknikleri Reddit Lockpicking – Kilit Kırma Teknikleri ve Araç Önerileri   Araçlar Sızma Testi Dağıtımları Kali BlackArch […]

TR | Awesome Learn Pentesting Mustafa Kaan Demirhan

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

Online Kaynaklar:

Sızma Testi Kaynakları

 

Shellcode Geliştirme

 

Sosyal Mühendislik Kaynakları

Kilit Kırma Kaynakları

Schuyler Towne Youtube Channel – Kilit Kırma Teknikleri

Reddit Lockpicking – Kilit Kırma Teknikleri ve Araç Önerileri

 

Araçlar

Sızma Testi Dağıtımları

 

Basit Sızma Testi Araçları

 

Zafiyet Tarama Araçları

  • Netsparker – Web Uygulama Güvenliği Tarama Aracı
  • Nexpose – Zafiyet/Risk Yönetimi Aracı
  • Nessus – Zafiyet Yapılandırma, Denetleme Aracı
  • OpenVAS -Açık Kaynaklı Zafiyet Tarama Aracı
  • OWASP Zed Attack Proxy – Web Uygulama Zafiyet Tarama Aracı
  • Secapps – Entegre Web Uygulama Güvenliği Test Ortamı
  • w3af – Web Uygulama Saldırı Aracı
  • Wapiti – Web Uygulama Zafiyet Tarama Aracı
  • Webreaver – Web Uygulama Zafiyet Tarama Aracı

 

Ağ Araçları

  • nmap – Ağ Haritası Çıkarmak, Çalışan Hizmetleri…vb. Bilgileri Elde Etmemize Yardımcı Olur
  • tcpdump – Paket Analizi Yapmamıza Yardımcı Olur
  • Wireshark – Ağ Protokol Analiz Aracı
  • Network Tools – Yaygın Olarak Kullanılan Ağ Araçları
  • netsniff-ng – Ağ Dinleme Aracı
  • SPARTA – Ağ Protokol Analiz Aracı

 

Kablosuz Ağ Araçları

  • Aircrack-ng – Kablosuz Ağ Trafiği Dinleme Aracı
  • KISMET – Kablosuz Ağ Dinleme Aracı
  • Reaver – Kaba Kuvvet Saldırı Aracı

 

SSL Analiz Araçları

  • SSLyze – SSL YapılandırmasI Tarama Aracı
  • sslstrip – https Saldırı Aracı

 

HEX Düzenleme

  • Hexed – Tarayıcı Tabanlı Hex Analiz Aracı

 

Kırma Araçları

 

Windows Araçları

 

DDoS Araçları

 

Sosyal Mühendislik Araçları

  • SET – Sosyal Mühendislik Araç Kiti

 

OSInt Araçları

  • Maltego – Aktif ve Pasif Bilgi Toplama Aracı

 

Gizlilik Araçları

  • Tor – Onion Yönlendirme İle Ağda Kimliğinizi Gizlemeye Yarar
  • I2P – The Invisible Internet Project

 

Tersine Mühendislik Araçları

 

Kitaplar

Sızma Testi Kitapları

 

Hacker ın El Kitabı Serisi

 

Ağ Analiz Kitapları

 

Tersine Mühendislik Kitapları

Zararlı Analiz Kitapları

Windows Kitapları

Sosyal Mühendislik Kitapları

Kilit Kırma Kitapları

 

Zafiyet Veritabanları

 

Güvenlik Kursları

 

Ctf Kütüphaneleri

 

Bilgi Güvenliği Konferansları

 

En Yaygın 125 Ağ Güvenliği Aracı

 

 

TR | Awesome Learn Pentesting Mustafa Kaan Demirhan

]]>
https://canyoupwn.me/tr-awesome-penetration-testing/feed/ 0
TR | [PentesterLab] Web For Pentester (XSS) https://canyoupwn.me/tr-pentesterlab-web-for-pentester-xss/ https://canyoupwn.me/tr-pentesterlab-web-for-pentester-xss/#respond Wed, 03 Feb 2016 17:15:33 +0000 http://canyoupwn.me/?p=165 CanYouPwnMe! - For Cyber Security Researchers CanYouPwnMe! - For Cyber Security Researchers - cypm!

PentesterLab – Web for Pentester’ı https://pentesterlab.com/exercises/web_for_pentester bağlantısını kullanarak indirebilir ve sanal bir bilgisayar olarak kurabilirsiniz. XSS (Cross Site Scripting) HTML kodları arasında istemci tabanlı kod eklenmesi yoluyla kullanıcının tarayıcısında istenilen kodun çalıştırılabilmesi olarak tanımlanıyor. XSS zafiyeti genellikle Javascript betik dili kullanılarak exploit edilir çünkü en temel HTML sayfalar içinde bile en rahat çalıştırılabilecek betik dil […]

TR | [PentesterLab] Web For Pentester (XSS) Hakkı YÜCE

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

PentesterLab – Web for Pentester’ı https://pentesterlab.com/exercises/web_for_pentester bağlantısını kullanarak indirebilir ve sanal bir bilgisayar olarak kurabilirsiniz.

webforpentester1

XSS (Cross Site Scripting)

HTML kodları arasında istemci tabanlı kod eklenmesi yoluyla kullanıcının tarayıcısında istenilen kodun çalıştırılabilmesi olarak tanımlanıyor. XSS zafiyeti genellikle Javascript betik dili kullanılarak exploit edilir çünkü en temel HTML sayfalar içinde bile en rahat çalıştırılabilecek betik dil Javascriptdir, tarayıcılar xss saldırısında kullanılan kodların sistemde bulunan bir script olup olmadığını bilemez.

XSS zafiyetlerinde saldırı senaryoları değişir ancak genel amaç sistemde yetki sahibi yada hedef kullanıcının hesap bilgilerini ele geçirmektir.

XSS zafiyetleri genellikle URL üzerindeki string yada integer değer taşıyan değişkenlerin bulunduğu bağlantılarda ve arama, login, iletişim için kullanılan formlarda tespit edilir.

XSS zafiyeti kendi içerisinde 3 e ayrılmaktadır.

1 – Reflected XSS

Bu tür xss zafiyetlerinde kodlar kalıcı olarak çalıştırılmaz, bu tür zafiyeti sömürmek için hedef üzerinde zararlı bağlantının çalıştırılması gerekir. Zafiyetin sömürüleceği javascript kodlarının bulunduğu bağlantı hedefe gönderilir ve hedefin bağlantıyı açması beklenir.

2- Stored XSS

Bu tür xss zafiyetlerinde sisteme zararlı javascript kodları eklenilmesi mümkündür, bir ziyaretçi defteri formunda bu zafiyetin bulunması durumunda ziyaretçi defterine eklenen yorumlar veritabanına kayıt edilmektedir ve ziyaretçi defteri her görüntülendiğinde bu bilgiler veritabanından çekilerek gösterilmektedir, bu durumda veritabanına eklenen zararlı javascript kodları da ziyaretçi defteri her görüntülenmek istendiğinde çalıştırılacaktır.

3- DOM XSS

DOM; HTML taglarının genel adıdır. Bu tür XSS zafiyetinde javascript ile HTML taglarının özellikleri, değerleri vs. değiştirilebilmektedir. Reflected XSS türünde olduğu gibi sadece bağlantıyı açan istemciler saldırıdan etkilenir.

 

XSS | Example 1

xss1

İlk örnekte URL’de ki name parametresnin aldığı değerin ekrana bastırıldığını görüyoruz, h4yuc3 olarak değiştirelim.

xss1-2

Şimdi bu parametre üzerinden javascript kodlarını çalıştıralım.

xss1-3

Hiç bir filtreleme yapılmadan doğrudan javascript kodlarının çalıştırıldığını görüyoruz.

Payload : <script>alert(‘CanYouPwnMe’)</script>

 

XSS | Example 2

xss2-1

2. örnekte de name parametresnin aldığı değer ekrana yazdırılıyor.

xss2-2

yine aynı payloadı kullanmak istediğimizde bu kez <script> </script> taglarının silindiğini ve geriye kalan değerin ekrana bastırıldığını görüyoruz… Belli ki bir filtre uygulanmış ve <script> ve </script> filtreye eklenmiş ancak büyük, küçük harf duyarlılığı düşünülmüş mü kontrol edelim.

xss2-3

Tam tahmin ettiğimiz gibi büyük harfler filtreye eklenmemiş.

Payload : <SCRIPT>alert(‘CanYouPwnMe’)</SCRIPT>

XSS | Example 3

3. öernekte sistem yine aynı şekilde name parametresinin değerini ekrana basıyor.

xss3-1

yine büyük harfler ile script tagları eklediğimizde bu kez büyük harflerinde filtreye eklendiğini görüyoruz. Ancak sistem şuan gördüğü ilk <script>, <SCRIPT>, </script>, </SCRIPT> taglarını kaldırıyor,  yukarıdaki <SCRIPT> ve </SCRIPT> taglarının arasına birer tane daha <script> ve </script> eklersek sistem ilk gördüklerini kaldıracak birer tane daha kalacaktır.

xss3-2

Payload : <SC<script>RIPT>alert(‘CanYouPwnMe’)</SC</script>RIPT>

 

XSS | Example 4

4. örnekte yine name parametresinin değeri ekrana bastırılıyor ancak değerin herhangi bir yerinde script kelimesi geçerse ekrana bastırılması gereken değer değil “error” mesajı bastırılıyor.

xss4-1

anlaşılan script tagını kullanamayacağız, farklı bir html tagı arasında javascript çalıştırmamız gerekiyor. <img> Tagını kullanmayı deniyoruz.

<img src=”javascript:alert(‘CanYouPwnMe’)”></img>

yukarıdaki payloadı kullanmayı denediğimizde “javascript” kelimesinin de filtreye takıldığını fark ediyoruz, yine “error” mesajı alıyoruz. Aldığımız mesaj aslında bizim için ipucu niteliği taşıyor 🙂 javascriptin onerror olayını kullanarak alert almayı deneyeceğiz.

<img src=onerror=”alert(‘CanYouPwnMe’)”></img>

Yukarıda ki payloadı kullanmayı denediğimizde artık error mesajından kurtulduk ancak alert alamadık.

xss4-2

Hello yazısının yanında image oluştuğunu görebiliyorz ve bu görseli sürükleyip yeni bir sekmeye bıraktığımızda src parametresinde verdiğimiz değerin URL oluşturduğunu ve bu durumun işimizi bozduğunu görüyoruz verdiğimiz bağlantının başına bir dizin için slash ve boşluk koyuyoruz.

Burada alert kodunun tetiklenme sebebine değinecek olursak özetle, image kaynağında verdiğimiz dizinde bir resim bulunamaması HTML tarafından hata olarak algılanıyor ve bu durumda onerror olayı tetikleniyor.

xss4-3

Payload : <img src=/ onerror=”alert(‘CanYouPwnMe’)”></img>

XSS | Example 5

4. örnek yine aynı şekilde devam ediyor, name parametresinin değeri ekrana bastırılıyor.

Bu örnekte alert almak istediğimizde ekrana error mesajı bastırılıyor.

xss5-1

Bunun sebebinin ne olduğunu anlayabilmek için kullandığımız tagları, kelimeleri, işaretleri … teker teker kaldırarak inceliyoruz.

xss5-2

En son <script> <script> taglarının çalıştığını hataya sebep olan kelimenin “alert” olduğunu anlıyoruz, alert yerine prompt kullanacağız.

xss5-3

Payload : <script>prompt(‘CanYouPwnMe’)</script>

XSS | Example 6

6. örnekte de name parametresine değer giriyoruz ancak bu ekrana bastırılmıyor, Değeri değiştirdikten sonra neler olduğunu daha iyi anlayabilmek için FireBug aracı ile kaynağı inceliyoruz.

xss6-1

Mevcut bir script tagının olduğunu görüyoruz, bu script tagını kapatıp kendimizinkini açalım.

xss6-2

Payload : </script><script>alert(‘CanYouPwnMe’)</script>

XSS | Example 7

Bu örnekte değeri değiştirdikten sonra Firebug ile kaynağı incelediğimizde mevcut script taglarını görüyoruz ve girdiğimiz değer script içerisinde bir değişkene atanıyor.

xss7-1

ancak bir önceki örnekte ki gibi mevcut script tagını kapatıp kendi tagımızı açmak istediğimizde < > işaretleri encode ediliyor ve bu durumda kod içerisinde satır yapısının bozulmasına sebep oluyor, aşağıdaki ekran görüntüsünde noktalı virgüllerden bunu anlayabileceksiniz.

xss7-2

Bu durumda yapmamız gereken, mevcut tagı kapatmadan bu script tagları arasında javascript kodumuzu çalıştırmak olacak. İlk önce sistemin çalışma şeklini analiz edelim;

var $a = ‘ Gireceğimiz Değer ‘; yani biz iki tırnak arasında işlem yapıyoruz, bu durumda yapmamız gereken ilk şey, açılmış olan tırnağı kapatmak ve sonrasında satırı sonlandırmak ( ‘ ; ) daha sonra alert kodumuzu eklemek, satırı sonlandırmak ve girdiğimiz değerden sonra tırnağı kapatmak için otomatik gelecek olan tırnağın önüne bir tırnak açmak ( alert(‘CanYouPwnMe’);’ )

xss7-3

Başarılı şekilde alert aldık, yukarıda bahsettiklerimin daha net anlaşılması için bu haldeyken kaynağı inceleyelim.

xss7-4

Payload : ‘;alert(‘CanYouPwnMe’);’

 

XSS | Example 8

Bu örnekte durum biraz değişiyor, artık URL üzerinde bir parametreye değil HTML form üzerinde bir text alanına değer girişi yapacağız.

xss8-1

Basit bir şekilde alert almayı denediğimizde ise HTML taglarının encode şekilde işlendiğini ve HTML olarak çalıştırılmadığını görebiliyoruz.

xss8-2

Formun kaynağını incelediğimizde girdiğimiz değerin tekrar /xss/example8.php bağlantısına post edildiğini ve bu sayfada işlendiğini görebiliyoruz.

xss8-3

xss8-4

Bu durumda ilk deneyeceğimiz şey <form …. > tagının içerisinde script çalıştırmayı denemek olmalı, bunu yapabilmek için girdiğimiz değerde bu dizini sonlandırıp ( / ) action=”….” parametresini kapatıp ( ) son olarak form tagınıda kapattıktan ( > ) sonra script kodlarımızı eklemek.

xss8-5

xss8-6

Payload : /”><script>alert(‘CanYouPwnMe’)</script>

 

XSS | Example 9

xss9-1

Son XSS Örneğinde …/xss/example9.php#hacker şeklinde bir URL ve ekranda bir “hacker” çıktısı ile karşılaşıyoruz, belli ki # işaretinden sonra gelen değeri ekrana bastıran bir sistem var ancak değeri değiştirdiğimizde ekrana bastırılmadığını fark ediyoruz.

xss9-2

bunun sebebi ne olabilir diye düşünecek olursak tabii ki sistem dinamik şekilde çalışıyor yani DOM XSS zafiyeti ile karşı karşıyayız. Değeri değiştirdikten sonra sayfayı yenilediğimizde bunu rahatlıkla fark edebiliyoruz.

xss9-3

XSS payloadımızı # işaretinden sonrasına ekliyoruz ve alertı görebilmek için sayfayı bir kere yenilememiz yeterli oluyor.

xss9-4

Payload : <script>alert(‘CanYouPwnMe’)</script>
&
Refresh

TR | [PentesterLab] Web For Pentester (XSS) Hakkı YÜCE

]]>
https://canyoupwn.me/tr-pentesterlab-web-for-pentester-xss/feed/ 0