這幾天看一些邏輯漏洞的資料,整理了一下關於邏輯漏洞的思路可能不是很全以后慢慢補充。
與傳統漏洞相比,邏輯漏洞具有不易發現、不易防護的特點,不像SQL注入、XSS漏洞可以上WAF等一些防護手段就可以控制;重點應該放在比如:個人信息區域、密碼修改區域、密碼忘記區域、支付區域、手機號區域等。這幾個區域一般都是嚴重高危漏洞的始發點,任何一個地方出問題,都有可能造成企業、用戶損失。而且每個公司的應用系統邏輯也都參差不齊,邏輯漏洞也肯定不盡相同。
一、越權
平行越權:權限類型不變,權限ID改變
垂直越權:權限ID不變,權限類型改變
預防思路:
1.cookie中設定多個驗證,比如自如APP的cookie中,需要sign和ssid兩個參數配對,才能返回數據。
2.用戶的cookie數據加密應嚴格使用標准加密算法,並注意密鑰管理。
3.用戶的cookie的生成過程中最好帶入用戶的密碼,一旦密碼改變,cookie的值也會改變。
4.cookie中設定session參數,以防cookie可以長時間生效。
二:驗證碼回傳
這個漏洞主要是發生在前端驗證處,只要攔截數據包就可以獲取敏感信息,並且經常發生的位置在於:賬號密碼找回、賬號注冊、支付訂單等
預防思路:
response數據內不包含驗證碼,驗證方式主要采取后端驗證,但是缺點是服務器的運算壓力也會隨之增加;要進行前端驗證的話使用加密進行。
三.未進行登陸憑證驗證
有些業務的接口,因為缺少了對用戶的登陸憑證的效驗或者是驗證存在缺陷,導致黑客可以未經授權訪問這些敏感信息甚至是越權操作。
預防思路:
對敏感數據存在的接口和頁面做cookie,ssid,token或者其它驗證。
四:訂單金額任意修改
關於支付的邏輯漏洞的一般思路。一種是少充多得,比如充值100元時通過篡改金額改成10元,最終充值完畢后賬戶變成了100元,而實際付款卻只有10元;一種是繞過活動頁金額限制,比如很多公司做活動強制用戶充值金額不能低於10000,而通過攔截修改金額,可以充值任意金額。
預防思路:
增加多重檢驗,訂單較大時增加人工審核。
五、密碼重置
重置密碼對一個系統來說是非常重要的存在,所以存在的問題也是非常致命。用戶在重置密碼頁面,通過修改用戶ID對所改用戶密碼進行重置;對密碼重置頁面驗證碼繞過,然后爆破進行等。
預防思路:
系統后台在重置密碼頁面驗證是否為本用戶等。