Jianyuan Lab
發布時間:2023-10-09 作者:上海工業控制安全創新科技有限公司 點擊次數:次
01
前 言
當談及安全測試時,邏輯漏洞挖掘一直是一個備受關注的話題,它與傳統的安全漏洞(如SQL注入、XSS、CSRF)不同,無法通過WAF、殺軟等安全系統的簡單掃描來檢測和解決。這類漏洞往往涉及到權限控制和校驗方面的設計問題,通常在系統開發階段未充分考慮相關功能的安全性。
舉例來說,攻擊者可以利用這些邏輯漏洞,通過利用程序員在設計中的疏忽,實施交易數據篡改、敏感信息盜取以及資產竊取等操作。這種類型的漏洞潛在危害極大,可能導致企業遭受資產損失和聲譽受損的風險,而傳統的安全防御設備和措施往往無法有效應對這些問題,顯得力不從心。
02
挖掘思路總結(部分)
當提到邏輯漏洞時,有各種各樣的漏洞類型。其中,賬戶、驗證碼、越權這三個模塊是最常見且相對較容易被攻擊的部分。下面,我們可以看一下這三個模塊中常見的挖洞姿勢。
03
一些挖掘實例
3.1 驗證碼
3.1.1 修改返回包繞過
這種方法基于返回的狀態碼來驗證用戶憑證的正確性,通常情況下,正確的驗證碼返回狀態碼為1,錯誤則為0。因此,攻擊者可以通過抓取響應包,并將錯誤的狀態碼修改為1,從而成功繞過驗證。
3.1.2 驗證碼傳遞特殊參數繞過
驗證碼安全控制的失效問題。通常,常見的系統安全措施包括設置6位數驗證碼,有效期為30分鐘或更短,驗證失敗6次后驗證碼會直接失效。然而,有些系統采用標志位來控制驗證碼的狀態和生命周期。當標志位為1時,系統將驗證碼標記為失效,用戶無法再使用該驗證碼來修改密碼;而當標志位為0時,系統將驗證碼標記為有效,用戶可以繼續完成密碼修改流程。
3.2 賬戶
3.2.1 遍歷猜解已有賬號
這種漏洞可能存在于用戶注冊、密碼重置或驗證碼驗證流程中。在注冊過程中,如果系統內部已存在相同賬戶,通常無法成功注冊。對于密碼重置策略不夠安全的網站,比如允許用戶通過相對簡單的信息(如用戶名、電子郵件地址或手機號碼)來重置密碼,攻擊者可以通過遍歷或猜測這些信息來找到有效的用戶賬號。此外,如果網站在驗證碼驗證過程中沒有足夠的限制或防護機制,攻擊者可以嘗試多次提交驗證碼,通過遍歷可能的驗證碼值來找到有效的組合。
3.3 越權
3.3.1 越權修改賬戶密碼
網站未能有效驗證和控制用戶在修改郵箱地址時的權限。攻擊者可以繞過身份驗證,訪問其他用戶的郵箱地址修改頁面,并進行未經授權的郵箱地址修改。這表明在系統設計階段可能沒有進行全面的用戶身份驗證,或者存在身份驗證方面的漏洞,因此可能導致任意賬戶密碼的重置。
3.3.2 越權修改其他用戶密碼
在正常情況下,當用戶試圖修改他們自己的密碼時,系統應該首先驗證用戶的身份,以確保他們有權訪問和修改他們自己的帳戶信息。身份驗證通常包括要求用戶提供當前密碼或其他身份驗證憑證。然而,在某些情況下,系統未充分執行身份驗證檢查,例如將 "id" 參數設置為目標用戶的帳戶標識。這使得攻擊者可以通過篡改請求中的 "id" 參數來偽裝成其他用戶的帳戶,而無需提供正確的身份驗證憑證。
3.3.3 越權登陸
通常情況下,登錄過程應依賴于用戶提供的憑據,例如用戶名和密碼。然而,在某些系統中,存在由客戶端提供的參數,如certSn,用于標識用戶會話。攻擊者可以修改certSn參數以繞過授權檢查,導致服務器未能正確驗證會話是否屬于請求的用戶。這種漏洞使得攻擊者能夠手動修改certSn的數值,從而進行賬戶猜解攻擊。