Buka CHATBox

BLOGNYA GOJI Blog tentang Goji yang Geje dan Ubuntunya yang Keren | 08650096

29Jan/113

Menjebol CAPTCHA (DECAPTCHA) Login SIAKAD UIN Maliki Malang dengan OCR

Apa itu CAPTCHA?

CAPTCHA adalah akronim dari Completely Automated Public Turing test to tell Computers and Humans Apart. Maksudnya apa? Yaitu sebuah test yang completely automated untuk membedakan manusia dan komputer. Ujian CAPTCHA ini dibuat sedmikian rupa sehingga komputer tidak bisa mengerjakannya, namun manusia akan sangat mudah mengerjakannya dengan sempurna. Saya rasa teman-teman sudah pada ngerti apa dan bagaimana CAPTCHA ini.

Biasanya CAPTCHA berupa sebuah gambar yang didalamnya ada sebuah kode. Nah kode ini akan sangat mudah dibaca oleh manusia, akan tetapi komputer tidak akan bisa membaca kode tersebut. Ingat, bagi komputer, sebuah gambar adalah kumpulan kode-kode warna pada sitiap pixelnya. Sedangkan bagi manusia, dalam hitungan detikpun sudah bisa membaca kode dalam gambar tersebut.

Beberapa contoh CAPTCHA

OCR (Optical Character Recognition)

OCR adalah teknologi untuk mengubah gambar menjadi teks. OCR biasanya dipakai untuk mengubah file gambar dari dokumen yang discan menjadi file teks untuk selanjutnya diolah secara digital. Namun, tidak semua gambar bisa dibaca dengan sempurna oleh OCR. OCR akan bekerja dengan sangat baik apabila gambarnya jelas, bila gambar mengandung banyak distorsi, kemiringan, variasi ukuran font dan noise, maka OCR akan kesulitan membacanya.

Program OCR yang dipakai dalam eksperimen ini adalah GNU OCR. GOCR ini pun juga hanya dapat membaca CAPTCHA dengan baik apabila gambarnya tidak terdapat banyak distorsi. Maka dari itu, sebelum diproses oleh GOCR ini, gambar CAPTCHA biasanya akan diproses dulu untuk meminimalkan distorsi pada gambar.

Saya akan menjalankan GOCR ini di sistem operasi Linux Ubuntu, bagi teman-teman yang mau mencoba, silahkan menginstall GOCR dulu

$ sudo apt-get install gocr 

CAPTCHA di SIAKAD UIN Maliki Malang

Pemberian CAPTCHA di SIAKAD bermanfaat untuk menangkal serangan bot-bot spammer yang mencoba login ke sistem. Nah dengan CAPTCHA, bot-bot tersebut tidak akan bisa berkutik. Selain itu CAPTCHA akan memastikan bahwa yang login ke SIAKAD adalah bener-bener manusia, bukan robot.

Berikut ini adalah screenshot CAPTCHA di SIAKAD:

CAPTCHA di login SIAKAD

Berikut ini aadalah variasi dari CAPTCHA di login SIAKAD, tentu saja kode di CAPTCHA ini akan berubah-ubah setiap kali kita membukan halaman login,

Kalau diperhatikan, CAPTCHA SIAKAD ini memiliki kelemahan:

  • Objek dan Background Terpisah:  Sepintas terlihat captcha ini cukup rumit karena banyak gangguan berupa coretan dan bintik-bintik. Namun sebenarnya gangguan itu tidak ada artinya karena terpisah jelas dengan warna yang berbeda cukup kontras. Jadi antara objek dengan background terpisah dengan baik, dengan sedikit pengolahan akan didapatkan gambar yang bersih dari gangguan.
  • Tidak adan rotasi, semua karakter horisontal posisinya, tidak ada yang miring ke atas atau ke bawah.
  • Font yang monoton dan konsisten.
  • Warna yang konsiten.

Hilangkan Distorsi CAPTCHA dengan CONVERT

Convert adalah utility command line dari ImageMagick yang bisa melakukan berbagai jurus pengolahan gambar, dari yang sederhana hingga yang rumit. Untuk memecahkan captcha ini kita pakai operasi threshold, operasi ini bekerjanya sangat sederhana. Kita hanya perlu menetapkan suatu nilai batas, kemudian semua pixel yang memiliki kode warna di bawah atau di atas nilai itu akan diubah menjadi warna putih atau hitam.

Agar bisa menggunakan convert, kita harus menginstall dulu paket imagemagick ke ubuntu kita:

$ sudo apt-get install imagemagick

Setelah teristall, maka convert bisa kita gunakan.

Dari contoh-contoh captcha yang ada terlihat bahwa warna yang paling gelap adalah warna kode, kemudian diikuti dengan warna noise dan yang paling terang adalah warna background. Dengan demikian kita bisa tetapkan warna teks sebagai nilai threshold (batas), kemudian semua pixel yang memiliki warna lebih terang dari itu akan diubah menjadi putih. Dengan cara ini maka yang tertinggal hanyalah warna teks, warna background dan warna noise akan lenyap karena warnanya jadi putih.

Langkah pertama adalah kita harus mendownload gambar captcha yang asli, di URL:

 http://siakad.uin-malang.ac.id/kode.php?width=100&height=40&characters=5 

Contoh gambar captcha yang asli adalah: (captcha1.jpg) Kemudian kita lakukan operasi threshold menggunakan convert dengan perintah berikut: (kita jalankan lewat terminal ubuntu)

$ convert captcha1.jpg -white-threshold 20000 captcha2.jpg 

Opsi white-threshold 20000, itu artinya semua pixel yang nilai warnanya lebih tinggi (lebih terang) dari itu, akan diubah menjadi putih. Hasilnya terlihat bahwa pada gambar ke-2 terlihat noise dan background menjadi putih bersih karena warna background dan noise lebih tinggi dari 20000.
akan didapat file baru (captcha2.jpg) dengan penampakan sebagai berikut: Terlihat jelas gambar kedua lebih mudah dibaca oleh GOCR karena noise yang ada di gambar asli sudah dihilangkan.

Breaking Captcha dengan GOCR

Kini setelah gambar dibersihkan dari gangguan, telah siap untuk dibaca dengan GOCR. Mari kita lihat kemampuan GOCR membaca captcha yang asli, bila GOCR mencoba membaca gambar yang asli, hasilnya adalah karakter kacau seperti di bawah ini:

$ gocr captcha1.jpeg
__?__?_c?9____n __   0
?_? d H ^

Namun setelah diproses dengan threshold, maka hasilnya adalah:

$ gocr captcha2.jpeg
zbzx9

Ternyata GOCR mampu mengenali kode CAPTCHA dengan sempurna!

Referensi: http://url.geje.tk/2


Posted by Ghozy Arif Fajri

Comments (3) Trackbacks (0)
  1. Trus apa manfaatnya?
    cuma proof of concept??
    kenapa tidak sekalian membobol siakadx? lol ^_^

  2. terima kasih tanggapannya..
    iyap.. bisa dibilang cuma proof of concept saja..
    tujuannya memang tidak menjebol siakadnya. tapi konsep bahwa CAPTCHA yang kurang baik juga bisa ditembus..
    Saya membayangkan bahwa kita bisa membuat sistem/bot yang dilengkapi dengan decaptcha ini, sehingga bisa otomatis nembus CAPTCHA.

    btw, coba sampean cari-cari, CAPTCHA model yg kayak dipakai siakad ini masih banyak dipake juga lo di luar sana..
    ziddu.com misalnya..

  3. like this..
    suka org2 kreatif.. :)


Leave a comment

(required)

*


No trackbacks yet.