1. 程式人生 > >網站安全檢測之圖片驗證碼

網站安全檢測之圖片驗證碼

在對網站安全進行整體的安全檢測的時候,使用者登陸以及使用者留言,評論,設定支付密碼,以及一些網站功能方面都會用到圖片驗證碼,針對於驗證碼我們SINE安全對其進行了詳細的網站安全檢測,以及圖片驗證碼安全防護方面,都會詳細的跟大家講解一下。驗證碼分很多種,圖片形式的驗證碼是目前網站用的最多的,還有一些簡訊的驗證碼,手機語言驗證碼,答題驗證碼,都是屬於網站所用到的驗證碼,今天主要跟大家講解的就是圖片驗證碼。

首先要了解一下什麼是圖片驗證碼,英文叫"CAPTCHA",其作用就是防止使用者對網站進行惡意的登陸以及暴力破jie,防止一些惡意的使用者對網站進行多次的重複性的攻擊,比如:留言,評論,點選,刷票,嘗試性的用弱口令去登陸使用者的賬號,針對這些網站攻擊,圖片驗證碼很好的進行了阻止,防止了惡意攻擊。

圖片驗證碼生成的流程,我們來看下這個圖:

首先使用者會去請求這個圖片驗證碼,第一次會在資料庫裡生成一個相應的session值,然後返回給使用者一個圖片驗證碼,客戶看到圖片裡的驗證碼,會手動錄入進去,並點登陸,驗證碼會第二次的請求到伺服器中,伺服器後端收到請求後會進行安全對比,與資料庫裡的session進行比對,如果值是一樣的,那麼就會判定驗證碼成功,反之如果不對那麼就會把第一次儲存的session值進行刪除操作,防止機器人對其進行暴力的猜解,因為驗證碼唯一,只能驗證一次,多次驗證就會失效。

我們SINE安全在對網站驗證碼安全檢測的同時,會出現很多安全方面的隱患,以及驗證碼的漏洞,比較常出現的就是網站的驗證碼重複利用漏洞,該驗證碼漏洞可以導致攻擊者對其複製,重複使用一個驗證碼,進而對使用者的賬號密碼進行暴力破jie。攻擊的特徵是POST資料裡的session值不變,以及驗證碼也不變,唯一變的就是使用者的賬號以及密碼。

圖片驗證碼的預設配置導致存放位置被洩露,這個驗證碼漏洞的產生原因主要是把session這個值寫到了網站檔案目錄裡,以及一些cookies值都會寫到圖片檔案裡。另外一種驗證碼的漏洞是驗證碼在對比後,會再進行一次對比,導致不停的進行邏輯運算,多次的請求驗證碼,會導致整個驗證碼對比失敗。

在對其他網站進行驗證碼安全檢測時,也發現了一種驗證碼上的安全問題,驗證驗證碼後,並沒有將驗證碼刪除,導致可以重複使用,應該對其驗證碼效驗的時候進行返回MD5值,每個請求的返回都不相同,防止使用者密碼遭到暴力破jie。

甚至目前有些網站使用的圖片驗證碼都會遭到軟體的自動識別,有些圖片識別技術使用的是一些第三方的資源,會對圖片裡的字母進行識別並自動填入到輸入框中,可以對其進行暴力破jie。

針對於驗證碼安全的防護以及漏洞修復方案

對驗證碼的安全時效時間進行安全限制,一般限制30秒或者50秒之間失效,對於同一IP在同一時間進行多次的驗證碼請求頻率上做安全防護,限制1分鐘請求的次數或者是10分鐘內的請求次數。對於圖片驗證碼的圖片進行噪點渲染,防止圖片被團