<dd id="sga4y"><optgroup id="sga4y"></optgroup></dd>
<nav id="sga4y"><code id="sga4y"></code></nav>
  • <optgroup id="sga4y"></optgroup>

    原文地址:http://drops.wooyun.org/web/5459

    0x00 前言


    [email protected] [email protected] 相應的文章,只是覺得應該有個入門級的“測試用例”。本文不涉及OCR,不涉及暴力四六位純數字驗證碼,不涉及沒有驗證碼的情況(神馬?沒有驗證碼?沒有驗證碼還討論什么,要不人家不 care,要不人家已經胸有成竹有更牛逼的方法)。本文可能會與之前的某些文章有重合,可能與drops的“最嚴肅的安全原創平臺”氣質不符,請在家長指導下閱讀。

    首先,我們來看下整個驗證碼實現的原理

    圖一

    enter image description here

    0x01 安全問題及案例


    根據上面的實現流程,我們大概可以從四個方面入手,客戶端問題、服務端問題、驗證碼本身問題,還有一個驗證碼流程設計問題。

    1. 客戶端問題


    客戶端生成驗證碼

    驗證碼由客戶端js生成并且僅僅在客戶端用js驗證

    WooYun: 南開大學信息門戶網站設計不當可以爆破用戶密碼(利用密碼猜用戶)

    驗證碼輸出客戶端

    輸出在html中(神一樣的程序員)

    WooYun: 索尼驗證碼實現缺陷

    WooYun: 某會考報名系統驗證碼繞過可暴力破解(可導致用戶信息泄露)

    驗證碼輸出在cookie中,這個在烏云中案例也是比較多的。

    WooYun: 吉祥航空任意客票遍歷

    WooYun: 5173驗證碼可被繞過

    2. 服務端


    驗證碼不過期,沒有及時銷毀會話導致驗證碼復用

    這個是最常見的,烏云上面有大量的案例。

    WooYun: 蘇寧易購某系統后臺多個超級管理員弱口令(驗證碼可重復利用)

    沒有進行非空判斷

    很多時候,我們會遺留掉了驗證過程中驗證碼為空的情況

    比如去掉cookie中的某些值或者請求中驗證碼參數

    WooYun: cmseasy后臺暴力破解驗證碼繞過

    WooYun: ecshop后臺暴力破解驗證碼繞過

    WooYun: ecshop繞過驗證碼暴利破解2

    產生的驗證碼問題集內的答案非常有限 ?

    WooYun: 139郵箱圖驗證碼繞過漏洞(目前圖形驗證碼的可預測案例)

    3. 其他類型驗證碼繞過


    “調試功能”還是設計缺陷?

    WooYun: 阿里巴巴某員工登錄接口驗證碼繞過可撞弱密碼

    WooYun: 凡客某處驗證碼繞過漏洞

    WooYun: 財付通商戶版登錄驗證碼繞過

    WooYun: 正方教務管理系統設計錯誤,可繞過驗證碼進行暴破或掃弱口令

    “逗你玩”類型

    有驗證碼,你輸入什么 ,它都給你過,不驗證

    WooYun: 網宿某站SQL注入漏洞及驗證碼繞過

    萬能驗證碼(后門?)

    WooYun: 百度空間用戶登錄繞過驗證碼驗證

    4. 驗證碼太簡單,容易被機器識別


    直接引用豬豬俠的兩個金融案例

    WooYun: 銀行業(招商銀行)設計缺陷可被窮舉攻擊

    WooYun: 光大證券交易系統資金賬號可被窮舉攻擊

    0x03修改建議


    梳理清楚驗證碼實現邏輯。(包括不限于驗證碼會話及時銷毀等) 驗證碼不要太簡單。扭曲、粘連等。

    推薦Google的ReCaptcha

    0x04 參考


    https://www.owasp.org/index.php/Testing_for_Captcha_(OWASP-AT-008) http://www.mcafee.com/uk/resources/white-papers/foundstone/wp-attacking-captchas-for-fun-profit.pdf http://www.lijiejie.com/safe-issues-of-captcha/ http://*.wooyun.org

    最后,祝大家愚人節快樂!

    97av