危險係數排名前5的注入攻擊

zktq2021發表於2022-06-09

注入攻擊針對注入漏洞——這是一種非常廣泛的網路安全漏洞,其中包括一些嚴重的應用程式安全風險。在OWASP的2021年十大風險中,注入是web應用安全的第三大風險。儘管攻擊載體種類繁多,但幾乎所有注入攻擊的共同點都是,攻擊者能夠將未經驗證的使用者輸入直接插入到執行的應用程式程式碼中。

根據漏洞的型別和攻擊目標的不同,攻擊者可能會注入資料庫查詢、JavaScript程式碼、本機應用程式程式碼、作業系統命令等等。成功的注入攻擊可能會產生各種後果,包括資料洩露、拒絕服務、特權提升、繞過身份驗證,甚至透過遠端程式碼執行徹底破壞目標系統。

1、SQL隱碼攻擊 (SQLi)

絕大多數web應用都是由資料庫支援的,最流行的資料庫管理系統仍然使用SQL(結構化查詢語言)作為資料訪問語言。為了執行SQL隱碼攻擊,網路犯罪分子將SQL語句插入到web表單、評論欄位、查詢字串或其他外部使用者可訪問的輸入通道中的資料中。惡意程式碼通常是用於提取敏感資料的SQL查詢,但也可以用於修改資料庫內容的SQL語句,包括刪除(刪除)資料庫表。

如果目標應用程式容易受到SQL隱碼攻擊的攻擊,它將直接將資料傳送到資料庫,而不檢查資料是否安全。然後,資料庫伺服器將執行攻擊者注入的惡意SQL語句,而不是儲存註釋或檢索某些帳戶資料。即使脆弱的應用程式沒有直接暴露資料,攻擊者也可能使用盲SQL隱碼攻擊來間接發現資訊。

SQL隱碼攻擊是最古老和最危險的Web應用程式漏洞之一。在 Common Weakness Enumeration 中列為CWE-89:SQL命令中使用的特殊元素的不當中和,SQL隱碼攻擊在2021 年 CWE前25名中排名第6 。Invicti 檢測到多種型別的SQL隱碼攻擊漏洞,從典型的帶內 SQL隱碼攻擊到盲 SQL隱碼攻擊(包括基於布林的)和帶外SQL隱碼攻擊。

SQL隱碼攻擊是web應用程式古老而又危險的漏洞之一。在常見缺陷列舉中被列為CWE-89:在SQL命令中使用特殊元素的不當中和,SQL隱碼攻擊在2021年的CWE前25名中排名第6。WuKong靜態軟體安全測試可以在軟體開發期間查詢SQL隱碼攻擊漏洞,提高軟體安全性。

2、跨站指令碼(XSS)

雖然名稱中沒有“注入”,但跨站點指令碼 (XSS)本質上是一個指令碼注入漏洞。任何未能對包含指令碼程式碼(通常是JavaScript)的使用者輸入進行清理的web應用程式都可能容易受到跨站指令碼攻擊(XSS)。要利用XSS漏洞,攻擊者提供一個包含惡意程式碼的文字字串,例如將其作為使用者ID引數放在URL中。攻擊有效負載隨後由受害者的瀏覽器執行,而不是作為常規引數值處理。

XSS攻擊可能會產生嚴重的後果,從將使用者重定向到惡意站點,到竊取會話cookie和劫持使用者會話。雖然使用者輸入過濾可以在一定程度上降低成功攻擊的風險,但有許多方法可以規避XSS過濾器,因此編寫安全程式碼比較穩妥。

XSS被列入CWE缺陷分類CWE-79:網頁生成過程中輸入的不當中和,並在2021年CWE前25個最危險的軟體弱點中排名第二。

3、作業系統命令注入

Web 應用程式有時可能需要在底層作業系統中執行系統命令。如果應用程式存在命令注入漏洞,攻擊者可以在使用者輸入中提供自己的作業系統命令。成功的命令注入(又名 shell 注入)可能非常危險,因為它可以讓攻擊者獲取有關作業系統和伺服器配置的資訊,升級他們的許可權,甚至執行任意系統命令以完全破壞系統。

防範勝於治療,因此最好避免從 Web 應用程式呼叫系統命令。當需要執行系統命令時,仔細驗證使用者輸入並透過白名單嚴格進行限制。

作業系統命令注入在CWE的前25列表中排名第5名CWE-78:作業系統命令中使用特殊元素的不當中和。

4、程式碼注入(遠端程式碼執行)

如果攻擊者能夠提供應用程式程式碼作為使用者輸入並讓伺服器執行它,則應用程式存在程式碼注入漏洞(也稱為遠端程式碼執行或 RCE)。例如,如果易受攻擊的應用程式是用 PHP 編寫的,則攻擊者可以注入PHP程式碼,這些程式碼由Web伺服器上的PHP直譯器執行。

程式碼注入與作業系統命令注入不同,因為注入的是應用程式程式碼,而不是系統命令(儘管如果應用程式接受呼叫系統命令的惡意程式碼,兩者可能會導致另一個)。如果攻擊者設法使遠端程式碼執行,那麼應該認為目標系統受到了破壞,因此這是一個關鍵的漏洞。

程式碼注入歸類為CWE-94:程式碼生成的不當控制。

5、XXE注入

最後一個是XML外部實體 (XXE) 注入。如果應用程式接受XML輸入並配置為支援具有弱XML解析器安全性的遺留文件型別定義 (DTD),則攻擊者可以向其傳送特製的 XML文件,以執行從路徑遍歷到伺服器端請求偽造 (SSRF)和遠端程式碼執行。

與之前的四種注入攻擊不同,這次注入攻擊不會利用未經驗證的使用者輸入,而是利用 XML 解析器中固有的不安全遺留功能,因此可能特別危險。如果應用程式處理XML文件,避免此漏洞的方法是禁用對dtd的支援,或者至少禁用對外部實體的支援。

與XML外部實體相關的攻擊向量被分類為CWE-611: XML外部實體引用的不當限制。XXE注入在2017年OWASP十大榜單中排名第四,2021年合併到安全配置錯誤類別中。

防止注入攻擊

多數注入攻擊都依賴於Web應用程式執行的不受信任的輸入。不正確的輸入驗證在 CWE 前 25 名列表中排在第4位。對所有使用者控制的輸入進行仔細的清理、過濾和編碼有助於防止絕大多數注入漏洞。


除了讓開發人員注意此類安全問題外,在開發生命週期中直接整合有效的靜態程式碼安全測試工具有助於在快速開發的節奏中及時發現並修復安全問題。


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

相關文章