2011年4月20日

用 Groovy + tesseract-ocr 破解很遜的驗證碼圖片

驗證碼(Captcha)是網站用來阻擋惡意程式的一種解決方案,可以保護網站不受到SPAM攻擊。但是,真的有用嗎?

網友kellyrob99分享的一段Groovy程式碼(同時也提供Python版本),示範了太過簡單的圖片驗證碼怎麼破解,需要的程式碼可以說比迷你裙還短!

很遜的驗證碼圖片,可能長得像這樣:

第一個步驟是去除背景雜訊,處理完就變成下面這張文字比較清楚的圖片。

下一步就是用OCR(文字辨識)軟體,把圖片中的文字轉出來。

剛好有一套開放源碼的 tesseract-ocr 軟體,可以用command-line方式執行,跨平台支援Linux/Mac OSX/Windows等作業系統,又恰好可以正確辨識此範例圖片的文字。

原始碼在 kellyrob99 的 github 網址 https://github.com/kellyrob99/catcha-breaker 可以找到。

原文出處為 http://www.kellyrob99.com/blog/2010/03/14/breaking-weak-captcha-in-slightly-more-than-26-lines-of-groovy-code/ ,簡體版翻譯請看 http://www.groovyq.net/node/133

雖然這種簡單的方法只能破解很遜的驗證碼,但萬一網站開發者偷懶,剛好用了很遜的驗證碼,就只是平白無故增加使用者的不便了!

沒有留言:

張貼留言

lyhcode by lyhcode
歡迎轉載,請務必註明出處!