Web for Pentester 2 – Captcha Çözümleri

PentesterLab Web for Pentester 2 Captcha bölümü çözümlerini bu yazıda elimden geldiğince anlatmaya çalışacağım. Sırasıyla gidelim..

Example 1

İlk örnekte karşımızda bir Captcha doğrulama ekranı geliyor. Burada doğru-yanlış değerler göndererek request-response’ları inceliyoruz. Daha kolay test yapabilmek için ben Burp Suite aracını kullanıyorum.

GET metodu ve “captcha” parametresi ile bir değer gönderilip kontrol edildiği görülüyor. Peki bu kontrol sadece captcha adında bir parametre var mı yok mu şeklinde yapılıyorsa? Hemen sadece captcha parametresini yollayarak bypass etmeye çalışıyoruz.

Evet bu işlemi yapıp Forward ettiğimizde sonuç aşağıdadır 🙂

Example 2

Bu örneğimizde yine request ve response’u inceliyoruz. İstek yaptığımızda geliştiricinin çok net görülebilecek bir hata yaptığını farkediyoruz.

Answer parametresinde doğru captcha değerininde bulunduğu görülüyor. Buradan şöyle bir sonuç çıkarılabilir. Demekki captcha parametresiyle alınan değer answer parametresiyle karşılaştırılıyor.

Biz yukarıdaki gibi hacker=1&answer=1 gibi aynı değerleri gönderdiğimizde kontrolü başarıyla bypass ettiğimizi görüyoruz.

Example 3

Bu örneğimizde yine istek yaptığımızda doğru captcha değerinin cookie ile gönderildiğini görüyoruz.

Yani bu örnekte de captcha parametresindeki değer ile cookie değeri aynı olduğunda rahatlıkla bypass edebileceğimiz durum mevcut.

Forward ettiğimizde captcha kontrolünü geçiyoruz.

Example 4

Bu örnekte istek yaptığımızda herhangi bir açıklık fark edemiyoruz ilk başta.

Fakat doğru captcha’yı bir kez girip sayfayı yenilediğimizde tekrar doğrulama yapılmadığını farkediyoruz. Bu da aynı cookie ve captcha değerini tekrar tekrar gönderebilmemizi sağlıyor.

Example 5

Bu örnekte request-response header’larında herhangi bir şey yakalayamıyoruz. Ben birkaç kez refresh ettiğimde aynı kelimelerin tekrar tekrar gösterildiğini fark ettim. Bu şunun işareti olabilir: Sınırlı bir wordlist var captcha buradan oluşturuluyor.

Yazacağımız bir script ile önce bize gösterilen resmin md5 değerini alacağız ve wordlist’imizle karşılaştırıp doğru captcha değerini ekranda göstereceğiz.

Example 6

Bu örnekte gözümüze çarpan captcha görselinin düz metin olarak yazılması. Eğer bir script bu görseli okuyup clear text olarak çıktı üretebilirse kolaylıkla bypass edilebilir.

Tesseract aracı ile görseli tarattığımızda metni rahatlıkla elde edebiliyoruz.

Example 7

Bu örnekte yine tesseract ile tarama yapıyoruz fakat arkada mavi ızgara olduğu için düzgün okuma yapılamıyor.

ImageMagick aracı ile bu ızgara görünümünü silebiliyoruz.

Tesseract ile tekrar tarama yaptığımızda text olarak alabiliyoruz.

Example 8

Bu örnekte hem ızgara var hemde metin düz bir şekilde yazılmamış. Önce ızgarayı silmeye çalışalım.

Yüzdelik değerle oynayarak daha net bir görüntü yakalamaya çalıştım.

Şimdi bu metni düz bir hale getirmemiz gerekiyor. ImageMagick aracının “implode” özelliği var. Aşağıdaki komut metni büyük oranda düzleştiriyor.

Yeni resim:

Tesseract ile taradığımızda text olarak elde edebiliyoruz.

Example 9

Bu örnekte ekranda aritmek işlem var ve doğru sonuç girmemiz isteniyor. Bu şekilde bir captcha’yı aritmetik işlem yapıp sonucu gönderen bir script ile rahatça bypass edebiliriz.

Son örneğimizle birlikte captcha çözümlerinin sonuna gelmiş olduk. Umarım faydalı olmuştur..

 

Başlık görseli: https://souvislosti.wordpress.com/2013/04/26/captcha-zabezpeceni-pocitacu-je-skoro-dokonale-neda-se-to-precist/

Bir Cevap Yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir