Anda pasti sudah tau captcha. Yaa minimal pernah ketemu makhluk ini waktu register email atau waktu ngisi guestbook blog teman. Captcha merupakan metode security untuk memfilter botnet/scripting sehingga melindungi website dari tujuan tidak baik. Katakanlah ada botnet spesialis “nyampah komen 1000x dalam satu kali eksekusi” di form guestbook anda. Tinggal tambahkan captcha, jadi deh si scirpt tidak segampang itu nyampah di guestbook anda.
Cara kerja captcha dengan challenge-response, yaitu memberikan challenge berupa tebak gambar yang selalu berubah (ini contoh captcha yang umum), beberapa ditemui juga captcha soal hitungan, dsb. Kita sebagai manusia kemudian memberi input (response)-nya. Captcha merupakan cara yang sangat ampuh mengeliminasi robot yang tentu bakal kesusahan menebak huruf (ataupun mengenal angka kemudian menghitungnya). Sehingga efektifitas captcha menurut saya seharusnya ada 2 saja dan tidak neko-neko.. yaitu hanya:
- Menyulitkan robot
- Tidak menyulitkan manusia.

Nah bagaimana kalau malah sebaliknya? Kehadiran captcha di form guestbook nya justeru gampang ditebak oleh robot/scripting? Ini sama aja dengan gak usah pake captcha aja sekalian hehe, karena malah mbikin repot orang yang mau ngisi guestbook hahaha. Inilah yang terjadi di guestbook sebuah website yang saya temui di internet. Challenge captchanya hanya merupakan text biasa (bisa di drag seperti text lainnya). Apa akibatnya? Sangat mudah bagi saya untuk mengambil valuenya dan merespon challengenya dengan tingkat ketepatan 100%.

Cracking da Captcha
Yang dibutuhkan untuk break captcha di atas adalah mencari nilai pertama dan kedua itu kemudian dijumlahkan. Dalam contoh breaking captcha yang khususon dibuat teruntuk aplikasi web ini, saya menggunakan PHP sederhana dengan code seperti di bawah ini (mohon maaf kalo codenya belepotan, gegara coding mode FYWIWA –fuck yeah whatever, it works anyway!).
<?php $url = "http://www.*******"; $str = file_get_contents($url); $pos1 = strpos($str,"easycalccheck"); $pos2 = strpos($str,"<td>",$pos1); $pos3 = strpos($str,"=",$pos2); $equation = trim(substr($str,$pos2+10,$pos3-$pos2-11)); $equation = str_replace(" ", "", $equation); eval("\$captcha=$equation;"); print $equation."=".$captcha."\n"; ?>
Beginilah hasil eksekusi script PHP di atas. Yeah, walaupun ada 10 challenge captcha si target, semuanya dengan mudah di pecahkan oleh program.

Well, seperti yang sudah sering dibahas para praktisi IT, security berbanding terbalik dengan convenience (kenyamanan). Semakin banyak aspek security akan membuat kenyamanan user menurun katanya.. Untuk contoh di atas ini misalnya, ngisi guestbook aja harus ngitung dulu. Ribet ya ‘kan? Haha. Web target kita di atas ini adalah salah satu contoh web yang menggunakan “captcha salah kaprah” yang bisa di pecahkan oleh script sederhana.
Pemasangan captcha tetap perlu untuk menyaring robot tetapi dengan syarat tentu saja menggunakan captcha yang benar, bukan captcha asal-asalan. Seharusnya menggunakan image ditambah dengan noise atau variasi-variasi gaya huruf sehingga tidak bisa ditebak juga dengan menggunakan metode optical character recognition (OCR) script/robot. Di bawah ini contoh sederhana menebak captcha menggunakan metode OCR dengan bantuan tools linux GOCR. Percobaan dilakukan dengan challenge bernilai “kAMpr3t”, yang mana salah satunya tidak diberikan noise sedikitpun.


Untuk gambar di atas itu, sangat mudah ditemukan dengan teknik OCR… gak lebih dari 1 detik. Nama image file di atas ini adalah “welengsek1.png”. Nah.. kalau gambar di bawah ini “welengsek2.png”, adalah contoh terakhir kita, dimana hanya dengan menambahkan 1 garis noise pada latar kata “kAMpr3t” nya… bisa terbacakah pada program GOCR? Hehe..


pak saya newbie mau coba menerjemahkan capthca lionair bisa bantu untuk belajar pak
ini linknya
https://agent.lionair.co.id/lionairagentsportal/CaptchaGenerator.aspx
mohon bantuanya