一、可信任的用戶組織機制被繞過
1、攻擊者可以偽造或盜用可信用戶賬戶,在系統中執行非法操作。
2、攻擊者可以通過修改參數等方式,模擬成可信用戶進行非法操作。
3、攻擊者可以竊取可信用戶的 cookie,來冒充用戶執行相應的操作。
1.1 案例分析
if (user.is_admin) { allowAccess(); } else { denyAccess(); }
以上代碼中,只檢查了用戶是否為管理員,但未檢查用戶是否具有其他權限,例如刪除用戶、修改配置等功能。攻擊者可以通過修改用戶的權限參數,即可繞過管理員身份檢測,實現非法操作。
1.2 防範措施
1、檢查用戶是否具有相應的操作權限。
if (user.is_admin && user.can_delete_user) { deleteUser(userId); } else { denyAccess(); }
2、使用 CSRF token 防禦。
二、賬戶管理漏洞
1、攻擊者可以修改賬戶的密碼、郵箱等敏感信息。
2、攻擊者可以通過修改賬戶的賬號、昵稱等信息,冒充他人進行非法操作。
3、攻擊者可以利用找回密碼等功能,通過驗證漏洞獲取目標賬戶信息。
2.1 案例分析
if (user.id == targetId) { allowAccess(); } else { denyAccess(); }
以上代碼中,只檢查了用戶 ID 是否匹配,沒有檢查用戶名是否匹配,攻擊者可以偽造 ID,繞過身份驗證。
2.2 防範措施
1、使用雙因素認證。
2、禁止使用弱密碼、強制修改密碼等措施。
3、添加手機或郵箱驗證,限制賬戶信息修改頻率等。
三、業務流程漏洞
1、攻擊者可以利用業務流程中的安全漏洞,非法操作系統。
2、攻擊者可以利用業務流程中的異常情況非法獲得系統權限。
3、攻擊者可以利用業務流程中的未授權功能給系統帶來損失。
3.1 案例分析
if (order.status == 'paid') { startShipping(); } else { cancelShipping(); }
以上代碼中,訂單支付後直接開始發貨,但沒有考慮到退款、取消訂單等情況,導致在這些情況下仍然執行發貨操作,進而給系統帶來損失。
3.2 防範措施
1、對業務流程進行全面分析,考慮所有異常情況。
2、對敏感操作設置流程間的驗證,避免在業務流程鏈中出現任何非法操作。
// 驗證訂單狀態和操作者身份 if (order.status == 'paid' && user.role == 'admin') { startShipping(); } else { cancelShipping(); }
3、及時更新流程中的安全漏洞,增強安全性,限制非法操作。
四、注入漏洞
1、攻擊者可以通過注入相關代碼,獲取系統敏感信息。
2、攻擊者可以通過注入操作,修改系統數據以達到非法目的。
3、攻擊者可以通過注入惡意代碼,獲取用戶瀏覽器的敏感信息,如 cookie 等。
4.1 案例分析
var sql = "SELECT * FROM users WHERE username='" + username + "'"; db.execute(sql);
以上代碼中,直接將用戶輸入的用戶名拼接到 SQL 語句中執行,如果用戶輸入了 SQL 注入代碼,攻擊者可通過注入代碼獲取系統的敏感信息。
4.2 防範措施
1、使用預編譯語句和參數化查詢。
var sql = "SELECT * FROM users WHERE username=?"; db.execute(sql, [username]);
2、對所有用戶輸入進行過濾和驗證,過濾危險字符。
username = sanitizeInput(username);
3、使用 ORM 或其他框架,降低代碼漏洞率。
五、文件上傳漏洞
1、攻擊者可以上傳惡意文件,執行非法操作。
2、攻擊者可以利用上傳文件漏洞,獲取系統敏感信息。
3、攻擊者可以通過上傳文件漏洞,給系統帶來嚴重破壞。
5.1 案例分析
file = request.files['file'] if file.filename.lower().endswith(('.jpg', '.png', '.gif')): file.save('uploads/' + file.filename)
以上代碼中,未對上傳的文件類型進行過濾,攻擊者可以上傳含有惡意代碼的文件,執行非法操作。
5.2 防範措施
1、限制上傳文件的類型。
accepted_types = set(['jpg', 'jpeg', 'png', 'gif']) if file.filename.lower().split('.')[-1] in accepted_types: file.save('uploads/' + file.filename)
2、對上傳文件進行嚴格的後台處理,例如圖像大小、尺寸、合法性等規範檢測。
六、結語
業務邏輯漏洞威脅着系統的安全,攻擊者利用漏洞不斷發起攻擊,給企業帶來不可估量的損失,因此,我們需要重視業務邏輯漏洞,並努力採取相應的防範措施來保護系統的安全。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/259588.html