程式碼安全測試第十八期:呼叫System.exit()存在安全漏洞
一、為什麼呼叫System.exit()存在安全漏洞?
J2EE應用程式呼叫System.exit(),會關閉其容器。
System.exit()其實是Java中結束程式的方法,呼叫它將關閉當前的JVM虛擬機器。對於web應用程式來說,嘗試關閉應用程式容器絕不是一個值得推薦的方法,因為呼叫可以關閉應用程式的函式可以作為拒絕服務(DoS)攻擊的一種途徑。
二、呼叫System.exit()漏洞構成條件有哪些?
滿足以下條件,就構成了一個該型別的安全漏洞:
J2EE伺服器程式存在某個功能呼叫System.exit()。
三、呼叫System.exit()漏洞會造成哪些後果?
關鍵詞:DoS;崩潰、退出或重新啟動;
攻擊者訪問具有System.exit()的功能,可能會導致程式崩潰、退出或重啟,實現Dos攻擊。
四、呼叫System.exit()漏洞的防範和修補方法有哪些?
1、特權分離:具有關閉程式的功能應該是特權功能,只有具有授權的管理使用者才能使用。
2、Web應用不應該呼叫如System.exit()這樣可以導致虛擬機器退出的方法。
3、Web應用程式不應該將任何異常丟擲到伺服器,這可能會產生負面影響。
4、非Web應用程式可能具有含有System.exit()的main()方法,但不應該在其他位置呼叫。
五、呼叫System.exit()漏洞樣例:
用悟空 靜態程式碼檢測工具分析上述程式程式碼,則可以發現程式碼中存在著“呼叫System.exit()” 導致的 程式碼缺陷,如下圖:
呼叫System.exit()在CWE中被編號為CWE-382: J2EE Bad Practices: Use of System.exit()
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70000012/viewspace-2776504/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 呼叫System.exit()存在安全漏洞
- 程式碼安全測試第八期:Switch中缺少default導致的程式碼缺陷
- 程式碼安全測試第十二期:LDAP注入漏洞LDA
- 程式碼安全測試第十五期:跨站指令碼漏洞指令碼
- 程式碼安全測試第二十八期:未使用的變數缺陷漏洞變數
- 程式碼安全測試第十期:日誌偽造漏洞
- 程式碼安全測試第十一期:記憶體洩漏漏洞記憶體
- 程式碼安全測試第十六期:使用不安全的隨機值漏洞隨機
- 程式碼安全測試第十三期:敏感資訊的明文傳輸漏洞
- 前端週刊第十八期前端
- 靜態加密:存在代理混淆的安全漏洞加密
- window.open()和target= blank存在安全漏洞
- 程式碼安全測試第十九期:用不安全的授權建立臨時檔案漏洞
- 波音洩漏程式碼暴露 787 安全漏洞
- 滲透測試網站安全漏洞檢測大體方法網站
- FastJson引入存在DDos攻擊安全漏洞案例分析ASTJSON
- 常見的Web安全漏洞及測試方法介紹Web
- 錢包網站安全漏洞測試服務詳情網站
- 程式碼安全測試第十七期:物件只定義了Equals和Hashcode方法之一的漏洞物件
- 軟體測試與程式碼安全詳解
- 銳龍處理器不存在Spoiler安全漏洞
- APP安全測試 該如何滲透檢測APP存在的漏洞APP
- 黑帽大會:HTTPS和SSL協議存在安全漏洞HTTP協議
- 測試程式碼
- 安全測試|網路安全漏洞分類分級指南、CVSS、DREAD的通用思路
- 網站安全漏洞測試對抓包嗅探埠講解網站
- 每個 node 應用可能存在的 timing-attack 安全漏洞
- 程式碼安全測試第十四期:使用已破解或危險的加密演算法導致的漏洞加密演算法
- 2019年APP安全漏洞檢測安全工具報告APP
- 流行 VPN 包含允許執行任意程式碼的安全漏洞
- 安全漏洞本質扯談之決戰彙編程式碼
- MYSQL程式碼顯示測試測試MySql
- 測試程式碼高亮
- 從JDK原始碼看System.exitJDK原始碼
- 早餐|第十八期 · 開始使用模型優化器模型優化
- 魔獸爭霸自定義地圖直譯器存在安全漏洞地圖
- 程式碼安全測試第七期:不安全的反射漏洞缺陷反射
- 程式碼安全測試方法有什麼?網路安全知識學習