什麼是業務邏輯漏洞#
邏輯漏洞是指在系統、應用程式或其他系統組件中存在的邏輯錯誤或缺陷,可能導致安全問題或資料洩漏。這些漏洞通常是由於設計或實現過程中的錯誤、不完整或不合理的邏輯判斷所導致的。攻擊者可以利用這些漏洞來獲取未經授權的訪問權限、篡改資料或執行其他惡意操作。這類漏洞常見於密碼修改、越權訪問、密碼找回、交易支付金額等功能中。
本文將分享一些在業務邏輯漏洞挖掘方面的心得體會。
常見的邏輯漏洞#
由於邏輯漏洞的特性,它們可以出現在任何位置,並且難以通過 WAF 等手段進行防護。邏輯漏洞的玩法多種多樣,常常還會組合出現,例如並發 + 支付、越權 + 支付等。因此,以下分類並不完全、準確,但可以幫助讀者理解歸納。
支付#
購買場景#
修改支付價格
修改支付狀態
修改購買數量為負數
修改金額為負數
重放成功的請求
並發資料庫鎖處理不當
四捨五入
整數溢出
優惠券場景#
複用優惠券
優惠券遍歷
並發使用優惠券
其他還有很多,諸如簽約場景等等。
支付邏輯漏洞的奇淫技巧一時半會說不完,這裡推薦月神的視頻,也可以去網上找一些總結文章。
越權#
越權漏洞無疑是邏輯漏洞中的重中之重,可分為以下四類:
未授權訪問#
訪問靜態檔案
通過特定 URL 防止訪問
水平越權#
攻擊者可以訪問與其擁有相同權限的其他使用者的資源,例如權限類型不變,但 ID 改變。
垂直越權#
低級別攻擊者可以訪問高級別使用者的資源,例如權限 ID 不變,但類型改變。
交叉越權#
權限 ID 和類型均改變的訪問。
驗證碼#
驗證碼複用
驗證碼爆破
簡訊轟炸
返回包洩漏
本地校驗繞過
DDOS 攻擊
任意使用者#
包括任意使用者接管、登入、刪除、遍歷等操作。
找回密碼
修改密碼
邏輯缺陷#
微信登入 API 未作身份驗證
JWT 硬編碼
突破限制#
AI 生成不當內容
突破數量限制(商品、點讚、投票、積分、抽獎等)
如何成為邏輯漏洞挖掘高手#
百樣通,不如一樣精#
當你精通某一方面的技術時,你會在測試過程中產生很多奇思妙想,逐漸形成屬於自己的一套打法,使得這類漏洞在你眼中無處遁形。
心態的轉變尤為重要#
在挖洞初期,挖不到洞或被審核忽略是常有的事,不要因此磨滅對挖洞的熱情。每次提交一個漏洞都視作完成了一項任務,不再過多紛結果。只有保持積極樂觀的心態,才能不斷進步和提升。
在挖洞的路上做一隻 “細狗”#
無論是在挖什麼樣的漏洞,都不能走馬觀花。每一個功能點都要細細琢磨,細緻入微是發現邏輯漏洞的基礎。同時要對參數保持敏銳性。只有做到對細節的敏感和深入理解,才能發現隱藏的邏輯漏洞。
運氣也是實力的一部分#
既要有技術也要有運氣。很多時候,發現漏洞需要一定的運氣成分,有時漏洞的發現確實需要一定的運氣,但運氣往往會眷顧那些有準備的人。通過不斷的努力和積累,提高自己的技術水平和敏銳度,自然會增加成功的幾率。
持續學習與分享#
保持學習的熱情,關注最新的安全動態和漏洞案例。同時,通過分享你的心得和經驗,與同行交流,可以獲得更多的靈感和思路。
實踐出真知#
多參與實際專案和 CTF 比賽,通過不斷的實戰提升自己的漏洞挖掘能力。理論知識固然重要,但實踐經驗同樣不可或缺。
使用自動化工具輔助#
善於利用各種自動化工具進行輔助檢測,但不要完全依賴工具。工具可以幫助提高效率,但最終還是需要通過人工分析來發現一些隱藏較深的邏輯漏洞。
結語#
通過不斷的學習、實踐和分享,你將逐漸成為一名優秀的邏輯漏洞挖掘高手。在這條路上,保持一顆好奇心和探索精神是成功的關鍵。