逻辑漏洞——业务逻辑问题
普及常見業務邏輯漏洞與測試業務邏輯漏洞方法
業務邏輯
? 不同的項目有不同的功能,不同的功能需要不同的實現,實現這些核心功能的代碼就叫業務邏輯。
? 比如實現兩個數求和功能,所寫的如何獲得任意給定的兩個數的和,這個程序實現過程即可成為?? 業務邏輯處理。
? 業務是指一個實體單元向另一個實體單元提供的服務。
? 邏輯是指根據已有的信息推出合理的結論的規律。
? 業務邏輯是指一個實體單元為了向另一個實體單元提供服務,應該具備的規則與流程
業務邏輯的內容包括四個部分:
? 領域實體:定義了業務中的對象,對象有屬性和行為
? 業務規則:定義了需要完成一個動作,必須滿足的條件
? 數據完整性:某些數據不可少
? 工作流:定義了領域實體之間的交互關系
以用戶網購衣服為例:
? 領域實體:用戶、資金賬戶、訂單、衣服、發貨單
? 業務規則:用戶點擊購買就會生成訂單,但必須付了錢才會發貨,生成發貨單
數據完整性:網購必須登錄網購平臺賬號,沒有賬號就不能成功購買
? 工作流:搜索衣服->找到合適衣服->下單購買->付款->收貨
? 每個業務系統都具有不同的業務邏輯,而業務邏輯背后就是人的邏輯,充分了解業
務邏輯有助于找出其中的問題所在。
? 業務邏輯漏洞是指由于程序邏輯不嚴謹或邏輯太復雜,導致一些邏輯分支不能正常
處理或處理錯誤。
? 業務邏輯漏洞出現于業務流程中(模塊功能),也就是說網站的部分都有可能存在
邏輯錯誤漏洞。
常見業務邏輯問題:
支付邏輯漏洞
支付邏輯漏洞是指系統的支付流程中存在業務邏輯層面的漏洞。
支付流程通常為:
?? 選擇商品和數量→選擇支付和配送方式→生成訂單訂單支付→完成
?? 最常見的支付邏輯漏洞通常是由于服務器端沒有對客戶端請求數據中金額、數量等敏感信息做校驗。
?? 支付邏輯漏洞一般在電子商務網站上容易出現,在支付流程中由于沒有對客戶端請求數據中的金額、數量等敏感信息作校驗,帶來“0元購”、“1分購”等漏洞,會對商家帶來大量經濟損失。
支付邏輯漏洞一般有以下幾種情況:
支付過程中修改支付金額
支付過程中修改商品商量
支付過程中修改商品編號
隨便買 一個
?修改URL
案例:修改支付金額
選擇商品和數量
提交訂單確認支付
抓包,修改支付金額
訂單支付,觀察跳轉到某寶的URL
案例:修改商品數量
查看余額
生成訂單
查看不同編號的商品
預防思路
多重校驗
人工審核(訂單數值較大)
其他業務邏輯問題
其他業務邏輯問題一般有以下幾種情況:
API邏輯漏洞
客戶端與API通信無加密
客戶端與API通信無身份驗證
其他安全問題
API邏輯漏洞常見的安全問題
參數校驗不完善
短信、郵箱炸彈
?抓包發給intruder模塊
?清除標記
選擇炸位置
??開炸
?起風了
關鍵參數不加密
客戶端與API通信無加密
未加密風險
憑據
傳輸數據公開
資源信息泄露
中間人攻擊
我靶場有問題,不過無所謂,新建一個前面加上zzcms即可
隨便輸入個名字
輸入驗證碼抓包,666改為yes,即可成功
任意用戶密碼修改成功
修改
客戶端與API通信無身份驗證
信息泄露
應用程序被克隆
難以應對大規模拒絕服務攻擊
其他安全問題
重放攻擊的模式:
短信炸彈
重復下單
防止重放攻擊
時間截和隨機數的方式防止請求被重放
總結
以上是生活随笔為你收集整理的逻辑漏洞——业务逻辑问题的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 逻辑漏洞——权限控制问题
- 下一篇: zzcms靶场搭建