近日,深信服發現Apache axis 元件遠端指令執行漏洞利用方式。這個漏洞本質是由於管理者對AdminService設定錯誤,當enableRemoteAdmin
屬性設定為true時,攻擊者可以遠端利用AdminService介面自行發佈建構的WebService,再次存取產生的WebService介面時,就可以觸發內部引用的類別進行遠端命令執行漏洞的利用。
axis 元件介紹
axis 全名Apache EXtensible Interaction System
即Apache可擴充互動系統。 axis 為建立伺服器端、客戶端和網關SOAP等操作提供基本架構。 axis 目前版本主要面向Java,面向C 的版本正在開發中。 axis 並不完全是一個SOAP引擎,還可以作為一個獨立的SOAP伺服器和一個嵌入Servlet引擎(例如Tomcat)的伺服器。
漏洞分析
漏洞本質是管理員對AdminService
的設定錯誤。當enableRemoteAdmin屬性設定為true時,攻擊者可以建構WebService
呼叫freemarker
元件中的template.utility.Execute
類,遠端利用AdminService介面進行WebService發布,再次存取產生的WebService接口,傳入要執行的命令,就可以進行遠端命令執行漏洞的利用。
漏洞複現
建置#axis 1.4 tomcat6
的環境,將AdminService設定中的enableRemoteAdmin屬性設為true 。
傳入建構好的資料進行WebService發布,如下圖:
#再呼叫WebService介面傳入指令並執行,如下圖:
修正建議
1、設定URL 存取控制策略:部署於公網的axis 伺服器,可透過ACL 禁止對/services/AdminService
及/services/FreeMarkerService
路徑的存取。
2、停用 axis 遠端管理功能:axis WEB-INF 資料夾中的server-config.wsdd
文件,將其中"enableRemoteAdmin
"的值設定為false。
想了解更多關於web安全的知識,請造訪:web伺服器安全性
#以上是如何修復Apache axis元件遠端指令執行漏洞的詳細內容。更多資訊請關注PHP中文網其他相關文章!