暴力破解的繞過和防范(驗證碼&token)
-
暴力破解之不安全的驗證碼分析
---on client
---on server -
token可以防暴力破解嗎?
-
暴力破解常見的防范措施
聊一聊“驗證碼”
我們一般用驗證碼來做什么?
登陸暴力破解
防止機器惡意注冊
搞清楚驗證碼的認證流程
客戶端request登陸頁面,后台生成驗證碼:
1.后台使用算法生成圖片,並將圖片response給客戶端
2.同時將算法生成的值全局賦值存到SESSION中
校驗驗證碼:
1.客戶端將認證信息和驗證碼一同提交
2.后台對提交的驗證碼與SESSION里面的進行比較
客戶端重新刷新頁面,再次生成新的驗證碼:
1.驗證碼算法中一般包含隨機函數,所以每次刷新都會改變
2.驗證碼會過期
驗證碼可以防暴力破解,但你怎么證明你的驗證碼安全呢?
- 不安全的驗證碼-on client-繞過實驗演示
- 代碼演示
測試一下登陸和抓包

查看頁面源代碼,看看驗證碼是不是前端做的,發現所有的驗證碼邏輯在JavaScript里面實現的

一旦JavaScript被調用,它就會生成驗證碼操作,看看它在哪里被調用的

點擊一下,它就會調用JavaScript的函數去生成新的驗證碼

在前端生成驗證碼並核對驗證碼,在安全性上面是非常不靠譜的。
我們在看看它后端到底有沒有驗證,請求包發生給Repeater模塊,數據包重放的


或者不輸入驗證碼,看看后端有沒有驗證機制

兩次測試發現,后台是沒有驗證碼機制的

后面的步驟,直接對賬號,密碼兩個變量進行爆破,驗證碼就不管了。
所有的漏洞源碼都在這里

暴力破解的在這里

瀏覽后台源代碼發現,它只對傳過來的賬戶密碼做判斷,並沒有驗證碼的

- 不安全的驗證碼-on client常見問題
- 使用前端js實現驗證碼(紙老虎)
- 將驗證碼在cookie中泄露,容易被獲取
- 將驗證碼在前端源代碼中泄露,容易被獲取(已圖片的方式,而不是字符串,驗證碼提前泄露了)
