- 業務邏輯
不同的專案有不同的功能,不同的功能需要不同的代碼實作,實作這些核心功能的代碼就叫業務邏輯, - 業務邏輯漏洞
業務邏輯漏洞是指由于程式邏輯不嚴謹或邏輯太復雜,導致一些邏輯分支不能正常處理或處理錯誤, - 常見的業務邏輯漏洞

- 業務邏輯漏洞挖掘程序
確定業務流程—>尋找流程中可以被操控的環節—>分析可被操控環節中可能產生的邏輯問題—>嘗試修改引數觸發邏輯問題
業務邏輯漏洞
- 1.URL跳轉漏洞
- 1.1.URL跳轉概述
- 1.2.觸發方式及繞或技巧
- 1.3.修復方法
- 2.短信郵箱轟炸漏洞
- 2.1.短信郵箱轟炸概述
- 2.2.產生位置及繞過技巧
- 2.3.修復方法
- 3.任意密碼修改漏洞
- 3.1.簡述
- 3.2.表現
- 3.2.1.驗證碼不失效
- 3.2.2.驗證憑證回傳及未系結
- 3.2.3.本地驗證繞過
- 3.2.4.跳轉驗證步驟
- 3.2.5.憑證可預測
- 3.2.6.同時向多個賬戶發送憑證
- 4.任意用戶登錄漏洞
- 4.1.簡述
- 4.2.表現
- 4.2.1.手機登錄驗證碼回顯
- 4.2.2.修改回傳包可以登錄
- 4.2.4.sql注入萬能密碼
- 4.2.5.系統默認弱口令及撞庫
- 4.2.6.cookie混淆(遍歷id)
- 5.越權漏洞
- 5.1.概述
- 5.2.分類
- 5.2.1.水平越權
- 5.2.2.垂直越權
- 5.3.修復方法
- 6.支付邏輯漏洞
- 6.1.簡述
- 6.2.表現
- 6.3.修復方法
1.URL跳轉漏洞
1.1.URL跳轉概述
URL跳轉也叫做重定向,301和302狀態碼都表示重定向,瀏覽器在拿到服務器回傳的這個狀態碼后會自動跳轉到一個新的URL地址,這個地址可以從回應的Location首部中獲取,
301跳轉是指頁面永久性移走,通常叫做301跳轉,也叫301重定向(轉向)
302重定向又稱之為暫時性轉移,也被稱為是暫時重定向,
產生原因:服務端未對傳入的跳轉 url 變數進行檢查和控制,可能導致可惡意構造任意一個惡意地址,誘導用戶跳轉到
惡意網站,
1.2.觸發方式及繞或技巧
觸發方式:
redirect redirect_to redirect_url url
jump jump_to target to link linkto domain
繞過技巧:
利用問號繞過限制:url=https://www.baidu.com?www.xxxx.me
利用@繞過限制:url=https://www.baidu.com@www.xxxx.me
利用斜杠反斜杠繞過限制:url=http://www.evil.com/www.xxxx.me
利用子域名繞過:https://www.baidu.com.xxx.com
1.3.修復方法
修復該漏洞最有效的方法之一就是校驗傳入的跳轉url引數值,判斷是否為預期域名,
2.短信郵箱轟炸漏洞
2.1.短信郵箱轟炸概述
網站在對資訊發送的次數、時間沒有做限制,或者只在前端做了限制,導致可以無限制發送資訊,簡單的說就是發送短信/郵件的包可以無限制的發送,
2.2.產生位置及繞過技巧
產生位置:
會員賬號注冊功能,忘記密碼找回功能上,會員系結手機郵箱功能,設定取款密碼使用手機驗證,或者是某項重要的操作,提現,充值等功能上需要手機短信驗證碼,再一個是網站活動領取獎品功能上,
繞過技巧:
1.嘗試在mobile引數后面加空格
2.嘗試對引數進行多次疊加
3. 利用呼叫介面繞過短信&郵箱轟炸限制
4.利用大小寫繞過郵箱轟炸限制
2.3.修復方法
合理配置后臺短信服務器的功能,對于同一手機號碼,發送次數不超過3-5次,并且可對發送的時間間隔做限制,
頁面前臺代碼撰寫時,加入禁止針對同一手機號進行的次數大于N次的發送,或者在頁面中加入驗證碼功能,并且限制發送的時間間隔,
3.任意密碼修改漏洞
3.1.簡述
網站在對密碼修改的時候,未對修改密碼的憑證做嚴格的限制,導致可以被繞過進行任意個密碼修改,
3.2.表現
3.2.1.驗證碼不失效
通過列舉法找到正確的驗證碼,進行登錄,
3.2.2.驗證憑證回傳及未系結
直接輸入目標手機號,點擊獲取驗證碼,驗證碼在客戶端生成,并觀察回傳包即可,在回傳包中得到目標手機號獲取的驗證碼,完成驗證,
3.2.3.本地驗證繞過
將回傳包的狀態修改為登陸成功的狀態,棋牌你服務器,登陸成功,
3.2.4.跳轉驗證步驟
首先使用自己的賬號走一次流程,獲取每一個步驟的頁面鏈接,然后記錄輸入新密碼頁面的鏈接,重置他人用戶時,獲取驗證碼后直接跳轉鏈接輸入密碼重置成功,
3.2.5.憑證可預測
使用郵件接受重置密碼的連接時,一般會帶有一個token用于判斷鏈接是否被修改過,但是token是可預測的,這樣攻擊者可以通過構造鏈接來重置任意用戶的密碼,
表現:token有規律
1.基于時間戳生成的Token
2.基于遞增序號生成的Token
3.基于關機欄位生成的Token
3.2.6.同時向多個賬戶發送憑證
在資料包中添加多個賬戶,在發包,發現所寫的有效欄位均發送了憑證,
4.任意用戶登錄漏洞
4.1.簡述
邏輯錯誤導致可以登錄任意用戶,撞庫獲得用戶名,通過驗證碼登錄,抓包修改接收驗證碼的手機號或者郵箱,然后能使撞庫獲得的用戶登錄,產生漏洞,
4.2.表現
4.2.1.手機登錄驗證碼回顯
修改登陸包中接收驗證碼的手機號,通過短信驗證登錄
4.2.2.修改回傳包可以登錄
將回傳包的狀態修改為登陸成功的狀態,棋牌你服務器,登陸成功,
4.2.4.sql注入萬能密碼
4.2.5.系統默認弱口令及撞庫
系統在搭建時,設定了默認的口令,通過嘗試注冊獲取已注冊的用戶名,再利用通用密碼進行登錄,
4.2.6.cookie混淆(遍歷id)
在登陸的時候根據cookie中的某一個欄位來判斷登錄的角色,這個cookie欄位可以任意修改,例如userid,
5.越權漏洞
5.1.概述
顧名思義,越權漏洞就是由于設計上的缺陷對應用程式的權限做的不好,通俗點來說,就是用戶A可以通過某種方式查看到用戶B的個人資訊,或者可以查看管理員C的一些相關資訊,
成因:越權漏洞的成因主要是因為開發人員在對資料進行增、刪、改、查詢時對客戶端請求的資料過分相信而遺漏了權限的判定 ,
5.2.分類

5.2.1.水平越權
水平越權漏洞是可以操作同一個層次的賬號權限之間進行操作,以及訪問到一些賬號敏感資訊,比如可以修改任意賬號的資料,包括 查看會員的手機號,姓名,充值記錄,撤單記錄,提現記錄,注單記錄等等,
5.2.2.垂直越權
垂直越權漏洞可以使用低權限的賬號來執行高權限賬號的操作,比如可以操作管理員的賬號功能,隱藏式后臺也屬于垂直越權的一種,
5.3.修復方法
1.基礎安全架構,完善用戶權限體系,
2.鑒權,服務端對請求的資料和當前用戶身份做校驗;
3.不要直接使用物件的實名或關鍵字,
4.對于可控引數進行嚴格的檢查與過濾!
6.支付邏輯漏洞
6.1.簡述
開發人員往往會為了方便,直接在支付的關鍵步驟資料包中直接傳遞需要支付的金額,而這種金額后端沒有做校驗,傳遞程序中也沒有做簽名,導致可以隨意篡改金額提交,
6.2.表現
測驗方法:
1.在購買產品程序中修改產品數量、價格;
2.在支付時修改總價格或者優惠價格;
3.訂單生成后,編輯訂單把A商品的價格改成B商品的價格,實作低價支付,測驗時,修改數量、單價,優惠價格引數為負數、小數,無限大,看是否能生成訂單,能生成進入支付即說明存在邏輯漏洞了,
常見型別:
? 修改購買數量
? 修改支付價格
? 修改支付對應的商品
? 修改支付的狀態
? 修改附屬優惠、領取優惠
? 測驗資料包未洗掉
6.3.修復方法
1.在后端檢查訂單的每一個值,包括支付狀態;
2.校驗價格、數量引數,比如產品數量只能為整數,并限制最大購買數量 ;
3.與第三方支付平臺檢查,實際支付的金額是否與訂單金額一致;
4.另外,如果給用戶退款,要使用原路、原訂單退回,比如:退押金,按用戶原支付訂單原路退回;
5.MD5 加密、解密、數字簽名及驗證,這個可以有效的避免資料修改,重放攻擊中的各種問題;
6.金額超過指定值,進行人工審核等,
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/291784.html
標籤:其他
