引言
在當今數字化時代,網絡安全問題日益凸顯,其中Web應用的安全更是備受關注。Struts 2作為一款流行的Java Web框架,其OGNL注入漏洞一直是黑客攻擊的熱點。為了幫助企業有效防范這一風險,本文將為您詳細介紹如何編寫一款高效檢測Struts 2 OGNL注入漏洞的插件,深入的了解核心技能,為企業的網絡安全保駕護航。
漏洞掃描器原理
漏洞掃描器一般會附帶一個用于識別主機漏洞的特征庫,并定期進行更新。
在漏洞掃描的時候,就是利用特征庫里的腳本與目標系統的反饋信息進行匹配,如果能夠匹配上,就說明存在某一個漏洞。
漏洞掃描器在識別漏洞的過程中,會向目標發送大量的數據包,有時候會導致目標系統拒絕服務或被掃描數據包阻塞,掃描行為也會被對方的入侵檢測設備發現。
漏洞掃描器掃描出的結果通常會有很多誤報(報告發現的漏洞實際并不存在)或者漏報(未報告發現漏洞但漏洞實際存在)。
因此,需要對掃描結果進行人工分析,確定哪些漏是實際存在的,這個過程就叫做漏洞驗證,這是滲透測試過程中不可缺少的一步,只有驗證漏洞存在的真實性,才能對漏洞進行深度利用。
博智Web漏洞掃描子系統介紹
博智Web漏洞掃描子系統是一款功能強大、模塊化設計的網絡爬蟲和漏洞掃描工具,專門用于自動檢測Web應用程序中的安全漏洞,集成在博智工控漏洞掃描系統中。該系統旨在幫助網站所有者、管理員以及安全專家快速識別潛在的安全風險,從而采取必要的措施來保護Web應用程序的安全性。
主要特點
全面的漏洞檢測:博智Web漏洞掃描子系統集成了大量的常見Web漏洞掃描規則和插件,能夠全面檢測Web應用程序中的SQL注入、跨站腳本(XSS)、跨站請求偽造(CSRF)、文件包含、命令注入等多種安全漏洞。
高度模塊化:系統采用模塊化的設計思路,使得用戶可以根據實際需求選擇并啟用相應的掃描模塊。同時,用戶也可以自定義開發新的掃描模塊,以滿足特定的安全檢測需求。
自動化掃描:系統支持自動化的Web應用程序漏洞掃描,用戶只需配置好掃描參數和范圍,系統即可自動執行掃描任務,并生成詳細的掃描報告。
智能爬蟲技術:系統內置智能爬蟲引擎,能夠自動發現并遍歷Web應用程序的頁面和鏈接,確保掃描的全面性和準確性。
靈活的報告輸出:系統支持多種報告輸出格式,如HTML、PDF、Excel等,用戶可以根據需求選擇適合的報告輸出方式。同時,系統還支持將掃描結果導入到第三方安全管理平臺,方便進行統一管理和分析。
易用性:博智Web漏洞掃描子系統擁有直觀的用戶界面和簡潔的操作流程,用戶無需具備專業的安全知識即可輕松上手使用。
可擴展性:系統支持自定義插件的開發和集成,用戶可以根據實際需求開發新的掃描插件,以滿足特定的安全檢測需求。同時,系統還支持與其他安全工具的集成,形成更強大的安全檢測體系。
應用場景
博智Web漏洞掃描子系統適用于各類Web應用程序的安全檢測,包括但不限于:
(1)電子商務網站
(2)政府機關網站
(3)企業門戶網站
(4)金融行業網站
(5)教育行業網站
為Apache Struts 2漏洞編寫檢測插件
搭建靶標環境
docker pull vulhub/struts2:2.5.25
docker run --name=struts2 -itd -p 8080:8080 vulhub/struts2:2.5.25
漏洞介紹:Apache Struts2使用了表達語言和對象圖導航語言語法,這兩種語言可能存注入漏洞的情況。
表達語言注入:表達語言使用了${EL}語法,所以很容易找到表達式語言的缺陷。例如,一個簡單的數學運算,例如${9999+1}將被評估10000,可能在響應中可見。使用表達式語言的默認范圍來檢索實際信息,例如${applicationScope}或${requestScope}。深入利用這個特性就會產生遠程代碼執行,表達式語言注入可以允許會話對象修改和提升用戶權限的管理員級別:
${pageContext.request.getSession().setAttribute("admin",true)}。
對象圖導航語言注入:對象圖導航語言(OGNL)是一種用于Java的開源表達式語言。OGNL的主要功能是獲取和設置對象屬性:“在Java中可以做的大部分工作都可以在OGNL中實現。”OGNL是一種功能強大的語言,但在Apache Struts中將用戶提供的輸入視為OGNL會影響安全性。
3.1 插件編寫流程
Apache Struts 2 OGNL 遠程代碼執行漏洞(CVE-2019-0230)是近年來發現的一個遠程代碼執行漏洞,使用WEB漏洞子系統原生內置漏洞檢測規則無法掃出該漏洞,需要為該漏洞編寫對應的插件。新的插件需要注意三點:
(1)繼承Check::Base類。
(2)根據漏洞POC,進行payloads的組裝。
(3)實現run方法,用于具體的漏洞規則匹配。
3.2 插件漏洞掃描效果
(1)更新Apache Struts 2 OGNL漏洞檢測插件到指定目錄。
(2)新建一web掃描任務,填寫的URL地址為Apache Struts 2 OGNL 遠程代碼執行漏洞靶標地址。
(3)檢測插件只選擇Struts,以提高掃描效率。
(4)查看掃描結果
(5)漏洞驗證
通過回放playload,檢測響應信息中是否存在${EL}語法漏洞,如果存在${EL}語法漏洞則表明漏洞驗證成功。
總結
在設計Web漏洞掃描子系統時,我們必須面對一個不可忽視的現實:未來漏洞的不可預測性。隨著技術的快速發展和攻擊手段的不斷演變,新的安全威脅如影隨形。因此,系統采用了靈活的架構設計,以確保能夠迅速地整合新的POC漏洞,并對潛在的新漏洞進行有效的檢測和驗證。
在設計Web漏洞掃描子系統時,我們必須面對一個不可忽視的現實:未來漏洞的不可預測性。隨著技術的快速發展和攻擊手段的不斷演變,新的安全威脅如影隨形。因此,系統采用了靈活的架構設計,以確保能夠迅速地整合新的POC漏洞,并對潛在的新漏洞進行有效的檢測和驗證。
在這個信息化、網絡化的時代,網絡安全已經成為企業發展的關鍵因素。漏洞掃描系統的設計,正是為了幫助企業更好地應對網絡安全挑戰,確保企業的信息安全和業務連續性。我們相信,通過不斷的技術創新和優化,博智工控漏洞掃描系統將筑就企業網絡安全的堅固防線,守護企業穩健前行。