漏洞解析——通用異常缺陷及字串比較缺陷

zktq2021發表於2021-08-31

本期主題為丟擲通用異常缺陷漏洞和字串比較缺陷漏洞的相關介紹,歡迎大家一起探討!

▲ 丟擲通用異常缺陷漏洞

丟擲過於寬泛的異常會導致複雜的錯誤處理程式碼,這些程式碼很可能包含安全漏洞。

宣告丟擲Exception或Throwable的方法會使呼叫方難以執行正確的錯誤處理和錯誤恢復。例如,Java的異常機制的設定使呼叫者能夠輕鬆地預測可能出現的錯誤,並編寫程式碼來處理每個特定的異常情況。

二、丟擲通用異常缺陷的構成條件有哪些?

丟擲過於寬泛的異常。

三、丟擲通用異常缺陷會造成哪些後果?

宣告一個方法丟擲泛型形式的異常會使系統失敗。

四、丟擲通用異常缺陷的防範和修補方法有哪些?

將方法丟擲異常的型別具體詳細化。

五、丟擲通用異常缺陷樣例:

上述程式程式碼,則可以發現程式碼中存在著“丟擲通用異常”Secure屬性” 導致的程式碼缺陷,如下圖:

丟擲通用異常缺陷在CWE中被編號為CWE-397:Declaration of Throws for Generic Exception

▲ 使用錯誤的運算子進行字串比較缺陷漏洞

一、什麼是使用錯誤的運算子進行字串比較缺陷?

比較字串時,使用了錯誤的運算子,例如當應使用equals()方法代替時,使用“==”。

二、使用錯誤的運算子進行字串比較缺陷的構成條件有哪些?

使用“==”運算子比較字串。

三、使用錯誤的運算子進行字串比較缺陷會造成哪些後果?

在Java中,使用”==”或”!=”比較兩個字串是否相等,實際上是比較兩個物件是否相等,而不是它們的值。兩個物件很可能永遠不會相等。雖然該缺陷通常隻影響程式的正確性,但如果將相等性用於安全決策,則可能會影響程式的安全性。

四、使用錯誤的運算子進行字串比較缺陷的防範和修補方法有哪些?

使用equals()比較字串。

五、使用錯誤的運算子進行字串比較缺陷樣例:

 

用Wukong軟體檢測上述程式程式碼,則可以發現程式碼中存在著“使用錯誤的運算子進行字串比較” 導致的程式碼缺陷,如下圖:

 

使用錯誤的運算子進行字串比較缺陷在CWE中被編號為CWE-597:Use of Wrong Operator in String Comparison


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70000012/viewspace-2789608/,如需轉載,請註明出處,否則將追究法律責任。

相關文章