業務邏輯漏洞——淺談驗證碼漏洞

在這裏插入圖片描述
幾個月前寫的。。。居然一直待在草稿箱
已經忘了之前想用一些cms來複現常見的業務邏輯漏洞這回事了
最近有時間就繼續慢慢弄吧~~

一、驗證碼漏洞

驗證碼機制主要用於用戶身份識別,常見可分爲圖片驗證碼、數字驗證碼、滑動驗證碼、短信驗證碼、郵箱驗證碼等

根據形成原因可分爲:

1.驗證碼暴力破解

1.1 漏洞成因
服務端未對驗證時間、次數作出限制,存在爆破的可能性。驗證碼常用在批量註冊,任意用戶登錄場景。

1.2 測試
1.2.1 測試流程
輸入信息–>抓包爆破驗證碼–>查看爆破是否成功
1.2.2 PHPYunCMS漏洞演示
PHPYun後臺驗證碼可爆破
(1)測試環境
系統:Win10
環境:PHPStudy集成環境
CMS版本:PHPYunv3.1
(2)測試過程
輸入正確用戶信息
在這裏插入圖片描述
爆破成功
在這裏插入圖片描述
1.3 漏洞修復建議
(1)提高驗證碼的長度、複雜度
(2)可限制錯誤登錄次數、有效時間

2.驗證碼重複使用

2.1原因
在驗證碼首次認證成功後沒有刪除session中的驗證碼,使得該驗證碼可被多次成功驗證,造成危害

2.2測試:
2.2.1 測試流程
填寫正確登錄信息和驗證碼–>抓取提交數據包–>重複提交該數據包–>查看是否登錄成功–>登錄成功則存在驗證碼重複使用問題
2.2.2 帝國CMS漏洞演示
帝國CMS後臺驗證碼顯示重複
(1)測試環境
系統:Windows10
PHPStudy集成環境:PHPv5.3.29+MYSQLv5.5.53
CMS版本:EmpireCMS_6.0
(2)安裝CMS
訪問http://yoursite/e/install/index.php
安裝好後先登錄後臺頁面修改後臺驗證碼顯示設置,步驟如圖
在這裏插入圖片描述
同時將後臺登錄限制增大(eg:100),然後拉到最下方保存設置,退出登錄
(3)測試過程
第一步,輸入正確信息點擊登錄時抓包
第二步,通過修改imageField參數的大小來實現暴力提交,自設一個兩位數數字字典作爲payload
在這裏插入圖片描述
第三步,查看任意響應包是否登錄成功
在這裏插入圖片描述
從結果來看,暴力重複提交的數據包均登錄成功,說明存在驗證碼重複使用的問題。
經過暴力重複提交後,客戶端顯示登陸成功
在這裏插入圖片描述
PHP5.2.17下測試結果同5.3.29
在這裏插入圖片描述
2.2.3 CMS漏洞分析
(1)原因
自 PHP 4.2.0 起,不再需要用mt_srand() 給隨機數發生器播種 ,因爲現在是由系統自動完成的,導致帝國cms的驗證碼會顯示一樣的字符。
(2)解決方法
在每個文件中找到該行將其刪除或註釋即可。
Seay源碼審計系統中全局搜索mt_srand函數,含有mt_srand的文件爲:
在這裏插入圖片描述

2.3 漏洞修復建議
在一次認證成功後服務器端清空認證成功的ssesion

3.驗證碼回顯

3.1 驗證碼直接由客戶端生成,在回顯中顯示,可通過瀏覽器工具直接查看

3.2 分類
3.2.1 在源碼中顯示
F12審計大法,搜索源碼中有無驗證碼
3.2.2 在COOKIE中顯示
抓包時分析COOKIE中是否含有驗證碼

3.3 測試
3.3.1 測試流程
(1)在源碼中顯示
(2)在COOKIE中顯示
3.3.2 在源碼中顯示

3.2.3 在COOKIE中顯示
以某網站找回密碼模塊爲例
第一步,填寫好相關信息並確認提交
在這裏插入圖片描述
步驟二:確認提交時抓取數據包
在這裏插入圖片描述
可以看到str_code回顯在請求包中
步驟三:forward發送請求包,跳轉到輸入驗證碼和新密碼頁面
步驟四:填寫從請求包得到的驗證碼,成功修改用戶密碼
在這裏插入圖片描述
防範:驗證碼由服務端生成且保存在服務端,不能通過任何API獲取

4.驗證碼繞過

4.1 漏洞成因
由於邏輯設計缺陷,可繞過驗證,比如直接刪除COOKIE或驗證碼參數可繞過、當驗證不通過清空session時,驗證碼參數值爲空時繞過等。
4.2 分類
4.2.1刪除COOKIE繞過
4.3 測試
4.3.1 測試流程
4.3.2 測試環境
4.3.3 CmsEasy演示
CmsEasyv5.5刪除COOKIE繞過驗證
第一步,輸入正確賬戶信息和錯誤驗證碼,登錄時抓包
在這裏插入圖片描述
第二步,刪除COOKIE
在這裏插入圖片描述
客戶端登陸成功
在這裏插入圖片描述
74cms 設計缺陷導致全版本驗證碼繞過
https://www.secpulse.com/archives/26839.html
修復:在檢測用戶驗證碼時,先判斷是否存在,是否爲空,再判斷是否正確

5.驗證碼自動識別

這類漏洞主要是指圖片驗證碼,可以通過PKAV工具以及bp插件來識別,也可以用python

二、密碼找回
1.敏感信息泄露

2.郵箱弱token
3.驗證的有效性
4.註冊覆蓋

三、接口盜用
1.重放

四、賬戶越權
1、未授權訪問
2、越權

五、支付漏洞

六、SSRF

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章